tag:blogger.com,1999:blog-119446462009-03-01T23:21:50.828-07:00SwardPlay - Programming for FunWhen I do spare time programming, I write about it here.Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.comBlogger24125tag:blogger.com,1999:blog-11944646.post-1133068036064847052005-11-26T21:55:00.000-07:002005-11-28T07:34:52.180-07:00Java Ray Tracer - Screenshot<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5355/989/1600/jwarwis-01.0.gif"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/5355/989/320/jwarwis-01.0.gif" alt="" border="0" /></a> <span style="font-family:trebuchet ms;">I spent a good chunk of time today working on my new Java ray tracer. I'm thinking I might post some source code, but for now a screenshot will have to suffice; it's late and I have to get to bed.</span> <br><br> <span style="font-family:trebuchet ms;">I must say, so far this ray tracer translation process has been enlightening. I've lately been reading this book called </span><a style="font-family: trebuchet ms;" href="http://www.cc2e.com/">Code Complete</a><span style="font-family:trebuchet ms;">. One suggestion the author makes is to "program into your language" rather than "programming in your language." The distinction is a subtle one, but the way I understand it, he means to say to solve problems in your head in rather general terms, then only translate them into Java or C++ or SmallTalk or what have you when it comes time to actually do the coding.</span> <br><br> <span style="font-family:trebuchet ms;">In this process of translating my code from C++ to Java, I've found several spots where I was clearly programming in C++ rather than programming into it. Some of it really didn't translate into Java at all, so I've had to restructure it a bit.</span> <br><br> <span style="font-family:trebuchet ms;">So far it's been fun and educational. Just what I wanted!</span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-113306803606484705?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com22tag:blogger.com,1999:blog-11944646.post-1133041777605514042005-11-26T14:32:00.000-07:002005-11-26T14:50:44.810-07:00Java Ray Tracer<a href="http://photos1.blogger.com/blogger/5355/989/1600/java-logo.jpg"><img style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://photos1.blogger.com/blogger/5355/989/320/java-logo.jpg" border="0" /></a><span style="font-family:trebuchet ms;">I decided I would try my hand at porting my C++ ray tracer to Java. I have a few reasons for wanting to do this. Let me list them in no particular order: 1) You'll get to see it in action when I make a Java applet out of it, 2) I'm interested in comparing the performance between my C++ and my Java versions, and 3) Programming is pretty much always fun. <br><br> I've begun some of the groundwork and I'll keep you posted as I make significant progress. </span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-113304177760551404?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com0tag:blogger.com,1999:blog-11944646.post-1129820590590466382005-10-20T09:02:00.000-06:002005-10-20T09:23:09.546-06:00MySecurityVault is FREE!<a href="http://www.whitecanyon.com/mysecurityvault-password-manager.php" target="_blank"><img src="http://www.whitecanyon.com/images-pm/security-vault-box-os.gif" style="margin: 0px 10px 10px 0px; float: left;" alt="MySecurityVault Box Shot" align="left" /></a><span style="font-family:trebuchet ms;">Last Friday was the big release day. We finally released the upgrade to <a href="http://www.whitecanyon.com/mypasswordvault-password-manager.php" target="_blank">MyPasswordVault</a>! We also renamed it to <a href="http://www.whitecanyon.com/mysecurityvault-password-manager.php" target="_blank">MySecurityVault</a>. <br><br> Let me tell you all a little bit about the magnitude of this release. First of all, the program is now FREE! We decided we could increase our "fan base," if you will, by giving away something of value. Coming from one of the authors of the product, you are more than welcome to take everything I say with a grain of salt, but I do believe this free software is packed with value. <br><br> First and foremost, <a href="http://www.whitecanyon.com/mysecurityvault-password-manager.php" target="_blank">MySecurityVault</a> is a password manager. Use one secure password to access all of your other accounts; simple as can be. One of the major updates we made was to add an Internet Explorer plugin to allow you to automatically fill in online forms (such as secure site logins) from data you have stored safely and securely in your vault. <br><br> <a href="http://www.whitecanyon.com/mysecurityvault-password-manager.php" target="_blank">MySecurityVault</a> is a bit more than just a password manager, though. It's a fully-customizable repository for any data that you want to keep safe (encrypted). You can drag and drop documents into your vault to encrypt them, and you can also create customized data categories such as "Books I Want to Read." I personally love it as a very convenient way to keep all kinds of data (both sensitive and not-so-sensitive) in a central location. <br><br> Try it out and let me know what you think! Here's a direct download link: <a href="http://dl.filekicker.com/send/file/167526-NYIK/MySecurityVault.exe">Free Download</a>. </span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-112982059059046638?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com12tag:blogger.com,1999:blog-11944646.post-1129170389775322812005-10-12T19:21:00.000-06:002005-10-12T20:29:57.810-06:00MyPasswordVault<a href="http://www.whitecanyon.com/mypasswordvault-password-manager.php"><img src="http://www.whitecanyon.com/images-pm/mypasswordvault-box-os.jpg" style="margin: 0px 10px 10px 0px; float: left;" alt="MyPasswordVault Box Shot" align="left" /></a><span style="font-family:trebuchet ms;">I know it has been a fantastically long time since I last posted. Even before I stopped writing "regularly," I had invested myself heavily in our latest project at work: upgrading <a href="http://www.whitecanyon.com/mypasswordvault-password-manager.php">MySecurityVault</a>. It has been over a year since we last updated it, and as would be expected, this next release is going to be big. <br><br> For the past few months, my investment in this upgrade has increased and I have found myself without a lot of spare time to write. I anticipate that once we release the new version (very soon, I hope!), I'll have much more time for things like blogging, spare-time-programming, and most importantly, my family. <br><br> I'll be sure to let you all know when the new update is released! Then tell me if you like it! :) </span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-112917038977532281?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com0tag:blogger.com,1999:blog-11944646.post-1122690600116888882005-07-29T20:22:00.000-06:002005-07-29T20:32:36.423-06:00Tetris Scoring<table cellspacing="0" cellpadding="0" align="right" border="0"><tbody><tr><td width="3"> </td><td><a href="http://www.wardfam.com/~stephen/warwis-blog/swardtris/004/" target="_blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/tetris.gif" align="right" border="0" /></a></td></tr></tbody></table><span style="font-family:trebuchet ms;">I made some quick progress on tetris today. There is now an element of scoring! And you can pass levels, although now that I think about it, the way I've implemented the levels is rather silly. You simply pass a level each time you break a multiple of 1,000 points. Dumb, dumb. But I don't think I'm changing it now.</span> <span style="font-family:Trebuchet MS;"></span><br><br> <span style="font-family:Trebuchet MS;"><a href="http://www.wardfam.com/~stephen/warwis-blog/swardtris/004/" target="_blank">Enjoy!</a></span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-112269060011688888?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com9tag:blogger.com,1999:blog-11944646.post-1122606497187964332005-07-28T20:50:00.000-06:002005-07-28T21:10:08.383-06:00Bitten by the Summer Book Bug<a href="http://photos1.blogger.com/blogger/5355/989/1600/historian.jpg"><img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/5355/989/320/historian.jpg" border="0" /></a> <p><span style="font-family:trebuchet ms;">I apologize to my dear faithful readers for the 3-week delay between posts. I have been caught up reading two very gripping books: "The Historian" by Elizabeth Kostova, and "Harry Potter and the Half-Blood Prince" by, of course, J. K. Rowling.</span></p><p><span style="font-family:Trebuchet MS;">I have heard of several people who have read "Harry Potter" in two days or less. I am not one of those people. I just don't read that fast; nor do I have all the time in the world. I read each as quickly as I was able and enjoyed each immensely.</span></p><p><span style="font-family:Trebuchet MS;">I do love to read, nearly as much as I love programming. I will, of course, try to continue to program some more of my own stuff this summer, but there may be some books that continue to distract me here and there. If any of you can recommend some good ones, I'm all ears. A couple I have on my list already are: "The Mysterious Flame of Queen Loana" by Umberto Eco, and "The World Is Flat" by Thomas L. Friedman. "The World Is Flat" is on the recommendation of a friend, while "The Mysterious Flame of Queen Loana" is one I stumbled upon today. I think it looks interesting.</span></p><p><span style="font-family:Trebuchet MS;">Again, I'm interested in your suggestions! Oh, and there's more tetris to come. This is a programming blog, after all...</span></p><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-112260649718796433?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com2tag:blogger.com,1999:blog-11944646.post-1120793717659250712005-07-07T21:27:00.000-06:002005-07-07T21:35:48.233-06:00Cursed Microsoft Java<a href="http://photos1.blogger.com/blogger/5355/989/1600/java-logo.jpg"><img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/5355/989/320/java-logo.jpg" border="0" /></a> Today I discovered a problem with my Tetris game: it doesn't work for 90% of you! In spite of all my efforts to make it compatible with the lowest common denominator (Internet Explorer, Microsoft's JVM), I had never actually tested it on a machine without Sun's JVM installed until today. <br><br> It appears as though when I compile my java classes, I need to add a compiler option telling it to target Java 1.1 (my SDK is 1.4). I will try to do this either tomorrow or later this weekend. <br><br> Thanks for your patience. While you're waiting, <a href="http://java.sun.com/j2se/1.5.0/download.jsp">why don't you install true (Sun's) Java?</a><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-112079371765925071?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com7tag:blogger.com,1999:blog-11944646.post-1120745192534928862005-07-07T07:55:00.000-06:002005-07-07T08:28:41.876-06:00Nearing the Finish Line on Tetris<table align="right" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td width="3"> </td><td><a href="http://www.wardfam.com/%7Estephen/warwis-blog/swardtris/003/" target="_blank"><img src="http://www.wardfam.com/%7Estephen/warwis-blog/images/thumbnails/tetris.gif" align="right" border="0" /></a></td></tr></tbody></table> I realized yesterday it has been far too long since I updated you all on Tetris. Progress has been going well, albeit slowly. This week's additions include: <ul> <li>Completed lines vanish!</li> <li>There is now a panel indicating what the next falling piece will be!</li> </ul> Please <a href="http://www.wardfam.com/%7Estephen/warwis-blog/swardtris/003/" target="_blank">try it out</a> and let me know what you think. The next component I'll be completing (it's already in the works) is a score. Stay tuned.<div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-112074519253492886?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com0tag:blogger.com,1999:blog-11944646.post-1119889113214694942005-06-27T09:47:00.000-06:002005-06-30T22:08:15.923-06:00Tetris Development Slowing<table align="right" border="0" cellpadding="0" cellspacing="0"><tbody><tr><td width="3"> </td><td><a href="http://www.wardfam.com/%7Estephen/warwis-blog/swardtris/002/" target="_blank"><img src="http://www.wardfam.com/%7Estephen/warwis-blog/images/thumbnails/tetris.gif" align="right" border="0" /></a></td></tr></tbody></table><span style="font-size:85%;">My first round of development on tetris went pleasantly quickly. Unfortunately, since my first tetris post, I have become busy enough that advancements have been displeasurably few and far between. Such is the life of a new dad (although other factors have contributed as well: "Batman Begins," new responsibilities at work, etc.). <br><br> So that none of you think development has halted entirely, I am posting a link to my latest version of tetris. The animated image is a clickable link, <a href="http://www.wardfam.com/%7Estephen/warwis-blog/swardtris/002/">as is this entire phrase</a>. Included on the page with the playable game is a list of instructions, as well as a list of features I still need to add. <br><br> Updates in this version that didn't exist in the previous post are: </span> <ul> <li><span style="font-size:85%;">A smaller playing screen (for screens like my parents')</span></li> <li><span style="font-size:85%;">Space bar drops a piece.</span></li> <li><span style="font-size:85%;">Down arrow makes pieces fall faster.</span></li> <li><span style="font-size:85%;">Improved painting routine for sub-cool hardware.</span></li> </ul> <span style="font-size:85%;">I know it's a very modest list, but it's the best I've been able to do given the circumstances. There are a handful of other things I've added, but they're not complete yet so I can't put them on the list.</span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111988911321469494?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com12tag:blogger.com,1999:blog-11944646.post-1118894375083293642005-06-15T21:30:00.000-06:002005-06-15T22:15:46.116-06:00New Development - Tetris<table border="0" cellspacing="0" cellpadding="0" align="left"><tr><td><a href="http://www.wardfam.com/~stephen/warwis-blog/swardtris/001/" target="_blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/tetris.gif" align="left" border="0" /></a></td><td width="3"></td></tr></table><span style="font-size:85%;">Thank you everyone who left your congratulatory notes. Mallory and Mom are doing well. We know Mallory is growing because some of her clothes are actually starting to fit. This should be no surprise, though, since she eats all the time!</span> <br><br> <span style="font-size:85%;">In the meantime, I decided I needed to change the topic of this blog. Henceforth this blog will no longer be dedicated solely to my ray tracer. It will now be a place where I can write about all of my "extra-curricular" programming projects.</span> <br><br> <span style="font-size:85%;">First in line is the game of tetris. A few weeks ago I decided I liked the idea of writing simple games. Since my co-worker wrote his own little game of tetris last year, it was somewhat fresh in my mind.</span> <br><br> <span style="font-size:85%;">I started writing a tetris Java applet a little over a week ago. I wanted not only to write a simple game, but I also wanted to test my <a href="http://ootips.org/mvc-pattern.html">Model-View-Controller</a> (MVC) skills. In the case of my tetris game, my view and my controller are the same class (they are the applet class), and then I also created a Game class which is the Model.</span> <br><br> <span style="font-size:85%;">I'll explain the implementation further in future posts. For now, I just wanted to introduce everyone to SwardTris. Click on this <a href="http://www.wardfam.com/~stephen/warwis-blog/swardtris/001/" target="_blank">play tetris link</a>. Enjoy!</span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111889437508329364?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com10tag:blogger.com,1999:blog-11944646.post-1117769964748601762005-06-02T21:24:00.000-06:002005-06-03T09:19:11.180-06:00Happy Birthday, Mallory!<span style="font-size:85%;"><span style="font-family:trebuchet ms;"><a href="http://www.wardfam.com/%7Estephen/warwis-blog/images/leaving-hospital.jpg" alt="Leaving the Hospital" align="right" target="_blank"><img src="http://www.wardfam.com/%7Estephen/warwis-blog/images/thumbnails/leaving-hospital.jpg" border="0" /></a><br>Dear faithful readers, <br><br> I'm sorry I've been out of blogging/programming commission for a little while. I've been a little busy of late. The picture you see above is of me with my wife and our first baby, Mallory, leaving the hospital. I promised I would keep you posted, so even though it has nothing to do with ray tracing, I'm posting it here nonetheless. <br> Mallory was born at 6:55 a.m. on Tuesday, May 31, 2005. A memorable day in our family to be sure. Thanks for your patience while I enjoy these first few days of being a dad. </span></span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111776996474860176?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com12tag:blogger.com,1999:blog-11944646.post-1117031338967575312005-05-25T08:17:00.000-06:002005-05-25T08:30:03.730-06:00Texture Mapping - Back Again<span style="font-size:85%;"><span style="font-family:trebuchet ms;"><a href="http://www.wardfam.com/%7Estephen/warwis-blog/images/mug_bottle_beethoven_monster.jpg" target="_blank"><img src="http://www.wardfam.com/%7Estephen/warwis-blog/images/thumbnails/mug_bottle_beethoven_monster.jpg" align="right" border="0" /></a>Last week there was a point when I had some spare programming time, but I didn't have my latest 3ds code with me. So I turned my attention to the problem I was having with texture mapping. The problem I was having earlier with texture mapping simply had to do with building the interface for manipulating the textures in the scene. Specifically, I was trying to figure out how to make a simple tabbed control using only Win32 API calls. <br><br> Fortunately, in that spare moment, I was able to solve the problem. In exhilaration, I created the thumbnailed image you see here in this post (click on it for the larger version). <br><br> In other (related) news, last night I accidentally destroyed some of my 3ds code! I mistakenly overwrote my current 3ds work with the solution to the tabbed control code. It was disheartening for a moment, until I realized that I really hadn't created very much useful 3ds code. Most of what I had in there was just experimental code (trying to learn how to interface with the library), and it shouldn't be too hard to reproduce, fortunately. <br><br> Although the prospect of loading 3ds files into my scene editor/ray tracer is very exciting, I'm also very anxious to see what I can do with more robust texture mapping features. I don't know for sure where I'll devote my energies in the upcoming days, but I can assure you the results will be spectacular! <br><br> Speaking of the upcoming days, my wife was due to deliver our first baby (it's a girl) two days ago. The little one could obviously come any day now, and honestly, that's more exciting than texture mapping and 3ds combined. I'll surely keep you all posted. </span></span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111703133896757531?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com3tag:blogger.com,1999:blog-11944646.post-1116344825919933292005-05-17T09:34:00.000-06:002005-05-23T17:34:41.873-06:003ds - Not Trivial<span style="font-size:85%;"><span style="font-family:trebuchet ms;">I've run into a couple of difficulties with this latest 3ds endeavor. First and foremost has been a lack of time. I stay fairly busy with my regular job, and I stay fairly busy with my life at home. The second problem I've run into is a matter of debugging the 3ds library from sourceforge. I decided it would be advantageous to be able to step through the code as I attempt to integrate it into my project, so I added all of the source files in the library to my Visual Studio project. Unfortunately, some of the files in the library conflict with names in my project. For instance, I have a camera class that outputs a camera.obj file, but so does this 3ds library. The solution I have come up with for now is just to link to the binary .lib file I compiled out of the 3ds library files. Sadly, it means I'm not able to step through the code of the library, but I'm at least able to call the functions it provides. I'm making progress, but it's slow. Just keeping you faithful readers posted. :) </span></span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111634482591993329?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com0tag:blogger.com,1999:blog-11944646.post-1115762833050363992005-05-10T16:00:00.000-06:002005-05-12T20:16:20.840-06:003ds Max - Progress<span style="font-size:85%;"><span style="font-family:trebuchet ms;">Doing a quick search on Google, I found a page describing the file format (link: <a href="http://www.spacesimulator.net/tut4_3dsloader.html" target="blank">http://www.spacesimulator.net/tut4_3dsloader.html</a>) and I started working on implementing it. That was going along fairly well when my co-worker (his name is Derek Davis, for those of you with a hankering for personal information) reminded me of an open source library that already does the work for me. He had pointed it out to me a good long while ago and it turns out that I bookmarked it. What luck! The link to that is <a href="http://lib3ds.sourceforge.net/" target="blank">http://lib3ds.sourceforge.net/</a>. I haven't downloaded it yet, but I'm keeping my fingers crossed that it will turn out to be helpful. I thought it would be fun to parse the files with my own code, but then I realized there are other things I'd rather work on. Why reinvent the wheel? Thank you, everyone, for your support in this. Tell your friends! And if any of your have any suggestions about what libraries I should use, please leave a comment. :) </span></span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111576283305036399?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com0tag:blogger.com,1999:blog-11944646.post-1115660354073361842005-05-09T11:37:00.000-06:002005-05-09T11:39:14.086-06:003ds Max<span style="font-size:85%;"><span style="font-family: trebuchet ms;">I've decided that my next little project will be to add 3ds model support. I know, I haven't finished working out texture mapping. The user interface problem is really bugging me. I will come back to it, no doubt. But for now, I would like to work on something that would add some really broad appeal to my program. After all, I think it would be cool to give this program away someday. We'll see how 3ds support goes. I'll be sure to keep you all posted. </span></span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111566035407336184?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com0tag:blogger.com,1999:blog-11944646.post-1114783794034053342005-04-29T08:03:00.000-06:002005-04-29T08:09:54.036-06:00Texture Mapping - Bitmap<span style="font-size:85%;"><span style="font-family:trebuchet ms;">Folks, I got hung up for a long time trying to add a feature to my scene editor that would give me more control and flexibility over my texture maps. Sadly, I still haven't figured out how to solve the problem, and I may have to come up with something else. Fortunately for you, however, I decided there was a feature I could add with relative ease to keep you interested. I added the ability to use a 24-bit bitmap file as a texture in my scenes. It has been fun to put real bitmaps on my table tops. Here is one of my favorites. <a href="http://www.wardfam.com/%7Estephen/warwis-blog/images/texture-coffee-bean.jpg" target="blank" alt="Bitmap Texture Map"><img src="http://www.wardfam.com/%7Estephen/warwis-blog/images/thumbnails/texture-coffee-bean.jpg" border="0" /></a> </span></span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111478379403405334?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com1tag:blogger.com,1999:blog-11944646.post-1113589813077361342005-04-15T12:27:00.000-06:002005-04-15T12:32:00.833-06:00Texture Mapping - Continued<span style="font-size:85%;"><span style="font-family:trebuchet ms;">I haven't changed any code yet to make the texture mapping any more useful than it was before. However, I did change the color of the default texture and applied it to a different scene. I think it turned out looking pretty nice, and I wanted everyone to see it. <a href="http://www.wardfam.com/%7Estephen/warwis-blog/images/second-texture-map.jpg" target="blank"><img src="http://www.wardfam.com/%7Estephen/warwis-blog/images/thumbnails/second-texture-map.jpg" border="0" /></a> </span></span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111358981307736134?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com1tag:blogger.com,1999:blog-11944646.post-1113538148553145572005-04-14T22:04:00.000-06:002005-04-14T22:09:51.656-06:00Texture Mapping - First Attempt<span style="font-size:85%;"><a href="http://www.wardfam.com/~stephen/warwis-blog/images/first-texture-mapping.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/first-texture-mapping.jpg" align="right" border="0" /></a>Tonight I am treating you to my first successful (albeit severely limited) texture mapping. Each polygon group that happens to be flatter than it is wide or deep got a red and white checkerboard texture mapped onto it, based simply on the x and z coordinates of each point on the surface. Like I said, it's limited. But it's functional!</span> <span style="font-size:85%;"></span> <span style="font-size:85%;">Click the picture to see the larger version.</span> <span style="font-size:85%;"></span> <span style="font-size:85%;">Time for bed. But don't worry. I'll keep at this more tomorrow and over the weekend. Good night!</span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111353814855314557?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com0tag:blogger.com,1999:blog-11944646.post-1113419144192944332005-04-13T12:51:00.000-06:002005-04-13T13:07:07.893-06:00Texture Mapping - Ray Tracer<span style="font-size:85%;"><span style="font-family:trebuchet ms;"><span style="font-family:trebuchet ms;">Okay, all you faithful readers out there, it's time I started actually working on my ray tracer again. I have decided that the next feature I need to add to it is <a href="http://www.siggraph.org/education/materials/HyperGraph/mapping/r_wolfe/r_wolfe_mapping_1.htm" target="blank">texture mapping</a>. I have been intimidated by texture mapping thus far for one simple reason: the scene editor. Allow me to elaborate. Many of you saw my last post about having first created an <a href="2005/04/opengl-scene-editor-ray-tracer.html">interactive scene editor</a> before having actually done any ray tracing. The scene editor has turned out to be both a boon and a curse. It's great because it gives me a wonderful idea of what my scene will look like before I ray trace it; but it is also a pain because for most of the features I want to add to my ray tracer, I have to add them to my scene editor as well. To make a long story short, I have not implemented texture mapping yet because I haven't felt like figuring out how to add an interface for it in my scene editor. But my days of fear are over and I am going to start working on texture mapping now. I'll keep you posted on my progress. Wish me luck! </span></span></span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111341914419294433?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com0tag:blogger.com,1999:blog-11944646.post-1113348404151411462005-04-12T17:22:00.000-06:002005-04-12T20:10:22.913-06:00OpenGL Scene Editor - Ray Tracer<span style="font-size:85%;"><span style="font-family:trebuchet ms;">When I began rewriting my ray tracer, I decided the first order of business was to create an interactive scene editor. A few years ago I purchased a copy of the <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0321173481/qid=1113348503/sr=8-1/ref=pd_csp_1/104-0852770-4572715?v=glance&s=books&amp;n=507846" target="blank">OpenGL Programming Guide</a>, thinking I would someday get into some serious OpenGL. That day came when I decided I needed my scene editor.</span></span> <span style="font-family:Trebuchet MS;font-size:85%;"></span> <span style="font-family:Trebuchet MS;"></span><span style="font-family:trebuchet ms;"><span style="font-size:85%;">Another decision I made at that point was to forego any visual component layout managers and use pure Win32 API calls. There are times I regret having done that, because my work really has been cut out for me. But I've been glad at times because I have become much more familiar with the windows programming API.</span></span> <span style="font-family:trebuchet ms;"><span style="font-size:85%;"></span></span> <span style="font-family:trebuchet ms;"><span style="font-size:85%;">Using my scene editor, I'm able to open model files I downloaded from the <a href="http://www.cs.byu.edu/" target="blank">BYU Computer Science Department</a>. Using the mouse, I can interactively rotate, scale, and translate all of my scene objects. Doing so, I am able to compose scenes that are much more complex (and interesting) than my original ray tracer. I created menu options to create spheres, simple point light sources, and cameras (currently, my ray tracer only supports rendering from the perspective of the first camera in the scene).</span></span> <span style="font-family:trebuchet ms;"><span style="font-size:85%;"></span></span> <span style="font-family:trebuchet ms;"><span style="font-size:85%;">I also created a tool window for modifying the properties of each scene object. The controls on the tool window are dynamically displayed based on what type of object you select with the mouse.</span></span> <span style="font-family:trebuchet ms;"><span style="font-size:85%;"></span></span> <span style="font-family:trebuchet ms;"><span style="font-size:85%;">Now I'll post some scene editor screenshots. <a href="http://www.wardfam.com/~stephen/warwis-blog/images/scene-editor-1.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/scene-editor-1.jpg" border="0" /></a> <a href="http://www.wardfam.com/~stephen/warwis-blog/images/scene-editor-2.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/scene-editor-2.jpg" border="0" /></a> <a href="http://www.wardfam.com/~stephen/warwis-blog/images/scene-editor-3.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/scene-editor-3.jpg" border="0" /></a> <a href="http://www.wardfam.com/~stephen/warwis-blog/images/scene-editor-4.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/scene-editor-4.jpg" border="0" /> Tools for modifying a polygon group</a> <a href="http://www.wardfam.com/~stephen/warwis-blog/images/scene-editor-5.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/scene-editor-5.jpg" border="0" /> Tools for modifying a sphere</a> </span></span> <span style="font-family:trebuchet ms;"> </span><span style="font-family:trebuchet ms;"><span style="font-size:85%;"> </span> </span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111334840415141146?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com1tag:blogger.com,1999:blog-11944646.post-1113270506882303692005-04-11T19:45:00.000-06:002006-09-05T19:33:03.476-06:00Screenshots - Ray TracerDear readers, I have decided it is time for me to post some of my favorite screenshots thus far. So without further ado, here are some of my best creations. <table valign="top"><tbody valign="top"><tr><td align="middle"><a href="http://www.wardfam.com/~stephen/warwis-blog/images/airplane_first_soft_shadow.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/airplane_first_soft_shadow.jpg" border="0" /><br> My first soft shadow render</a></td><td align="middle"><a href="http://www.wardfam.com/~stephen/warwis-blog/images/angled_plane_and_bishop_bright.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/angled_plane_and_bishop_bright.jpg" border="0" /><br> One of my first successful refraction renders</a></td></tr><tr> <td align="middle"><a href="http://www.wardfam.com/~stephen/warwis-blog/images/angled_plane_and_bishop.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/angled_plane_and_bishop.jpg" border="0" /><br> A new angle on things</a></td><td align="middle"><a href="http://www.wardfam.com/~stephen/warwis-blog/images/two_flowers.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/two_flowers.jpg" border="0" /><br> Point light vs sphere light</a></td></tr><tr><td align="middle"><a href="http://www.wardfam.com/~stephen/warwis-blog/images/warwis-starwars.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/warwis-starwars.jpg" border="0" /><br> A glass TIE Fighter</a></td><td align="middle"><a href="http://www.wardfam.com/~stephen/warwis-blog/images/spheres.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/spheres.jpg" border="0" /><br> Sheer beauty</a></td></tr><tr><td align="middle"><a href="http://www.wardfam.com/~stephen/warwis-blog/images/airplane2.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/airplane2.jpg" border="0" /><br> A little airplane</a></td><td align="middle"><a href="http://www.wardfam.com/~stephen/warwis-blog/images/airplane3.jpg" target="blank"><img src="http://www.wardfam.com/~stephen/warwis-blog/images/thumbnails/airplane3.jpg" border="0" /><br> Another airplane</a></td> </tr></tbody></table><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111327050688230369?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com2tag:blogger.com,1999:blog-11944646.post-1112829827319062252005-04-08T09:20:00.000-06:002005-04-11T19:49:11.166-06:00History - Part 2<span style="font-size:85%;"><span style="font-family:trebuchet ms;">And so the history continues. When I last wrote, I promised the story of "why I am still working on what was originally just another project for school." True to my word, here is the story. <a href="http://tom.cs.byu.edu/~455/" target="blank">CS 455</a> was my very first senior-level class at <a href="http://www.byu.edu/" target="blank">BYU</a>. I was somewhat nervous about taking it since I had never before taken even a 300-level class, but I spoke with <a href="http://cagd.cs.byu.edu/~tom/" target="blank">Dr. Tom Sederberg</a> (for whom I had worked as a teaching assistant, and from whom I had already taken one class) who assured me I could handle it. I found early on that I enjoyed the class a great deal. Somehow I had gotten the idea in my head at an early age that a programmer really knew a lot if he could make cool graphics. (This is not necessarly an untruth, but there are certainly other things a programmer can specialize in.) Finally I was writing programs I could show to people without getting that "So what?" look! <img alt="Robert the Brown" src="http://www.wardfam.com/%7Estephen/warwis-blog/images/robert.gif" align="right" /> A brief story may illustrate just how cool I was. At that time (and for a long time thereafter), I had a roommate named Robert. You may view his photo to the right. He was always a deceiver. In this photo he was trying to convince the photographer that he was his twin brother Juan (who in actuality does not exist). From time to time, however, he had brief moments of honesty. During one such moment, he informed me that he really liked one particular image I had rendered using my ray tracer. It was the image of spheres above an infinite plane which can be seen below. Robert had recently spent a small fortune on some photo paper for our printer, and to my great honor, he demanded that I print a copy of my spherical artwork on a sheet of his precious paper. Folks, it hardly gets better than that. <img alt="Ray Tracer Spheres" src="http://www.wardfam.com/%7Estephen/warwis-blog/images/spheres-robert.gif" align="right" /> In truth, however, it does actually get better than that. In addition to the visual payoff as well as my new-found popularity, I found that I was getting high marks in the class. That was great encouragement. I truly was becoming the master programmer I had always wanted to be. :D Lest you be persuaded to believe that I actually was a master programmer at that time, I must admit my ray tracer had some serious flaws, certainly not least of which was the fact that in order to render a different scene than the last, I had to recompile my program. Do you know what that means? It means that if I were to send you a copy of my ray tracer from back then, it would always render exactly the same scene every time you ran it. No matter what! Ok, I'm signing out now with the full realization that the answer to "w</span></span><span style="font-family:Trebuchet MS;font-size:85%;">hy I am still working on what was originally just another project for school" is still left largely unanswered. Not only do you have other things to do, but I do as well. Yet worry not, faithful readers. More answers are yet to come. </span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111282982731906225?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com2tag:blogger.com,1999:blog-11944646.post-1112754007370480142005-04-05T21:00:00.000-06:002005-04-08T08:32:10.006-06:00History - Part 1<span style=";font-family:trebuchet ms;font-size:85%;" ><img src="http://www.wardfam.com/%7Estephen/warwis-blog/images/skull-proj4.gif" alt="3DDDA Skull" align="right" width="248" height="274" />To the right you will see an image I rendered using my very first ray tracer ever. It was called "Project 4", as it was the fourth project I wrote for <a href="http://tom.cs.byu.edu/%7E455/" target="blank">CS 455</a> at <a href="http://www.byu.edu/" target="blank">BYU</a> (Go <a href="http://www.byucougars.com/" target="blank">Cougars</a>!).</span> <span style=";font-family:Trebuchet MS;font-size:85%;" ></span> <span style=";font-family:Trebuchet MS;font-size:85%;" >I just now rendered that image in "Project 4" on my laptop, which is a Pentium III - 1.0 GHz machine, with 256 MB of RAM. The process took 2:07 of CPU time (from now on, I will refer only to CPU time, unless otherwise stated; if you don't know what that means, <a href="mailto:warwis@gmail.com">drop me an email</a>).</span> <span style=";font-family:Trebuchet MS;font-size:85%;" ></span> <span style=";font-family:Trebuchet MS;font-size:85%;" >I don't know whether you're impressed by that or not, but for the sake of comparison, I loaded that same simple skull scene into Warwis3D (the program to which this page is dedicated) and the scene was rendered in just over 1 second! Now that's improvement!</span> <span style=";font-family:Trebuchet MS;font-size:85%;" ></span> <span style=";font-family:Trebuchet MS;font-size:85%;" >(Side note: Years ago, when I first wrote "Project 4", I created a web page on which I laid out a handful of renders along with how long it took to render each one. They were all rendered on my old Pentium III - 450 MHz named Ruth, which now belongs to my parents. The page uses terms like "anti-aliasing," "3DDDA" and "beauty." If you don't know what those mean, be sure to keep tuning in to this blog; I'm sure I'll define them on here eventually. At any rate, to see that page, click here: <a href="http://students.cs.byu.edu/%7Eguarts/455/final.htm" target="blank">3DDDA Final Project</a>.)</span> <span style=";font-family:Trebuchet MS;font-size:85%;" >Ok, folks. So as to hold your interest, I'll end this post. (Who likes reading paragraph after paragraph online? This is the age of high speed and low attention span.) I'll be back, though, with more exciting history of what will someday be considered historic: Warwis3D.</span> <span style=";font-family:Trebuchet MS;font-size:85%;" ></span> <span style=";font-family:Trebuchet MS;font-size:85%;" >Coming up next time: Why I am still working on what was originally just another project for school. Stay tuned!</span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111275400737048014?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com0tag:blogger.com,1999:blog-11944646.post-1112717029808059472005-04-05T11:05:00.000-06:002005-04-07T15:07:00.196-06:00Welcome<span style="font-family:arial;"><span style="font-family:trebuchet ms;"><span style="font-size:85%;">This morning, my co-worker Derek gave me the truly fascinating idea of creating a blog for my ray tracer (graphics program) called Warwis3D. Well, folks, this is it! The project is already quite far along, which means that for historical purposes, my first few entries will have to be summaries of events that have long since passed. However, I feel that I am up to the challenge and that they will be of benefit to you. So come here for periodic (but probably not regular) updates on the progress of my ever-so-addicting spare-time project.</span> </span></span><div class="blogger-post-footer"><script type="text/javascript"><!-- google_ad_client = "pub-5630848073165809"; google_ad_width = 160; google_ad_height = 600; google_ad_format = "160x600_as"; google_ad_channel =""; google_color_border = ["6699CC","003366","003366"]; google_color_bg = ["003366","003366","000000"]; google_color_link = ["FFFFFF","FF6600","FFFFFF"]; google_color_url = ["AECCEB","99CCFF","FF6600"]; google_color_text = ["AECCEB","FFFFFF","FF6600"]; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11944646-111271702980805947?l=ray-tracer.blogspot.com'/></div>Stephen Wardhttp://www.blogger.com/profile/03805583345764878908noreply@blogger.com1