<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Projects, photos, or things I just thought were cool. Enjoy!</description><title>Walter Blaurock</title><generator>Tumblr (3.0; @walterblaurock)</generator><link>http://blog.walterblaurock.com/</link><item><title>My new favorite way to cross browser.</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_kwpidtOOE71qzneszo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;My new favorite way to cross browser.&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/349120091</link><guid>http://blog.walterblaurock.com/post/349120091</guid><pubDate>Sat, 23 Jan 2010 10:44:17 -0500</pubDate></item><item><title>Ray Tracing</title><description>&lt;p&gt;&lt;b&gt;Intersecting With the Objects in Your Scene&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The first and simplest step in a ray tracer is simply finding the objects in your scene and showing them on the screen.  For each pixel in your image, you have to send out a ray from the “eye” (the position of the virtual camera) through that pixel in order to determine what object, if any, it intersects with.  If the ray hits multiple objects, we simply take the closest one to the “eye.” The black areas are where the rays didn’t find any objects, while the colored circles are made up of pixels where the rays did find an object.  While there is no lighting, shadows, reflections, or texture yet, at least we have a sense of the way objects are layered — objects nearer to us are on top of those further away.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_ktlvkjBCjm1qznabs.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Adding Some Lights&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Now that we know where our objects are in the scene, it is a simple upgrade to figure out how the light is playing off of them.  It turns out that the light we see is, for the most part, not dependent on where you are viewing it from (specular highlights are, however, but we aren’t that fancy yet).  This means that the only two important factors left are the surface normal at our intersection point and the direction of the light rays.  Using the angle between these two things, we can determine how much light falls on a particular pixel in the image.  This makes the 2D image we computed above look much more realistic by adding a sense of depth.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_ktlvktJVg71qznabs.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Shadows&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In the above image, there are three lights positioned around your left shoulder.  Although we do see the light from these lights, we are currently seeing too much light.  In the above image, even if the lights were placed a million miles away, we would see the same amount of light.  Obviously, this is not how light works in real life, so we have to add some factor to scale it down as the light moves further away. We also need to account for situation where an object is blocking the light source — we need to worry about shadows.  Shadows are a rather simple add-on, given the functionality already present.  This time, instead of sending a ray from our “eye”, we will send it from the point of intersection with the object towards the light.  If we happen to find something in the way, we will then ignore that light.  The resulting image looks much more realistic.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_ktlvl0dvYZ1qznabs.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Specular Highlights&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The image above is looking better, but it still looks a little flat.  The spheres all look like they are painted with matte paint — they have absolutely no reflection or shininess.  We won’t tackle the first yet, but we can rather easily tackle the second.  As we mentioned before, our current lighting scheme doesn’t depend on the viewers position.  However, as we also mentioned, there is one important component that does depend on it: specular highlights.  When you look at a shiny surface, the highlights are a function of where the light is, the orientation of the object, and where you are as the viewer of the scene.  With this in mind, we can compute the amount of light that should form this specular highlight.  The result of this is shown below.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_ktlvl8KdtP1qznabs.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Reflections and Some Texture&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;For the sake of not making this post too long, I have combined these last two steps.  Though these spheres take it to the extreme, most objects in real life reflect light from other objects.  Even my desk reflects a little bit of what is sitting on it, though it may be hard to see at times.  Since the spheres in this scene are very shiny (as we can tell from the sharp specular highlights), it follows that the reflections should be quite clear.  In fact, the way the ray tracer has been coded, the reflections will be perfect.  This is not true for very many objects in real life, but adding the ability to have fuzzier reflections slows down the rendering by a substantial amount, so we have not dealt with that here.&lt;/p&gt;
&lt;p&gt;The second thing we have done is to add an image wrapping our spheres in order to give them a bit more texture than they had above.  The resulting image looks much more realistic — the added texture gives the spheres a metallic look and feel, which is much better suited to the type of reflections and highlights we are generating.  The final result is shown below.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_ktlvlfdpKg1qznabs.jpg"/&gt;&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/255461759</link><guid>http://blog.walterblaurock.com/post/255461759</guid><pubDate>Tue, 24 Nov 2009 04:20:00 -0500</pubDate></item><item><title>Finally, I have a computer that can run more than two displays!</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_kr9rsaUx1y1qzneszo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Finally, I have a computer that can run more than two displays!&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/208757500</link><guid>http://blog.walterblaurock.com/post/208757500</guid><pubDate>Fri, 09 Oct 2009 18:57:46 -0400</pubDate></item><item><title>thecool:

davidhoffman:
Next Big Sound
</title><description>&lt;img src="http://28.media.tumblr.com/Q9nHtB1HWqtleb8bpn5hX3t7o1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://thecool.tumblr.com/post/157463063/davidhoffman-next-big-sound"&gt;thecool&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://sponge-ing.com/post/157448241/next-big-sound"&gt;davidhoffman&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;a href="http://nextbigsound.com"&gt;Next Big Sound&lt;/a&gt;&lt;/blockquote&gt;
&lt;/blockquote&gt;</description><link>http://blog.walterblaurock.com/post/157464298</link><guid>http://blog.walterblaurock.com/post/157464298</guid><pubDate>Thu, 06 Aug 2009 18:44:45 -0400</pubDate></item><item><title>thecool:

khancrete:

2nd largest aquarium in the world....</title><description>&lt;object width="400" height="336"&gt;&lt;param name="movie" value="http://www.youtube.com/v/u7deClndzQw&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/u7deClndzQw&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1" type="application/x-shockwave-flash" width="400" height="336" allowFullScreen="true" wmode="transparent"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://thecool.tumblr.com/post/145917191/khancrete-2nd-largest-aquarium-in-the-world"&gt;thecool&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://khancrete.tumblr.com/post/145510068"&gt;khancrete&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;2nd largest aquarium in the world. incredible. no reason one could not stand there for hours and hours. beautiful. beautiful. beautiful.&lt;/p&gt;
&lt;p&gt;if anyone is interested, the pretty song in the background is called ‘Please Don’t Go’ by Barcelona.&lt;/p&gt;
&lt;p&gt;(by way of waeiz)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;</description><link>http://blog.walterblaurock.com/post/145917281</link><guid>http://blog.walterblaurock.com/post/145917281</guid><pubDate>Tue, 21 Jul 2009 03:26:38 -0400</pubDate></item><item><title>I wish I made movies.</title><description>&lt;object width="400" height="336"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2_HXUhShhmY&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/2_HXUhShhmY&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1" type="application/x-shockwave-flash" width="400" height="336" allowFullScreen="true" wmode="transparent"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;I wish I made movies.&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/145913994</link><guid>http://blog.walterblaurock.com/post/145913994</guid><pubDate>Tue, 21 Jul 2009 03:19:09 -0400</pubDate></item><item><title>Finally got the room back in order!  Won’t be used for...</title><description>&lt;img src="http://29.media.tumblr.com/gxFxKfQqJnkuvpya8jsCyviao1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Finally got the room back in order!  Won’t be used for long, but it’s nice to have even if only for a day or two.&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/108906453</link><guid>http://blog.walterblaurock.com/post/108906453</guid><pubDate>Sun, 17 May 2009 01:33:05 -0400</pubDate></item><item><title>Trying to waste points… what fatties we are.</title><description>&lt;img src="http://29.media.tumblr.com/gxFxKfQqJnana2teJQUSnTuoo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Trying to waste points… what fatties we are.&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/105653911</link><guid>http://blog.walterblaurock.com/post/105653911</guid><pubDate>Sat, 09 May 2009 22:02:36 -0400</pubDate></item><item><title>A close up from the previous post.  The key element in this...</title><description>&lt;img src="http://28.media.tumblr.com/gxFxKfQqJmgcqsoccBnNR0h6o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;A close up from the previous post.  The key element in this design?  A safety pin.  Never thought I’d find a use for one of those.&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/97600383</link><guid>http://blog.walterblaurock.com/post/97600383</guid><pubDate>Sat, 18 Apr 2009 17:14:00 -0400</pubDate></item><item><title>No more keys!  I can finally unlock my door with just a card in...</title><description>&lt;img src="http://26.media.tumblr.com/gxFxKfQqJmgcok6p3HCy6xKMo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;No more keys!  I can finally unlock my door with just a card in my wallet.  Useless, perhaps.  But it was fun.&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/97600046</link><guid>http://blog.walterblaurock.com/post/97600046</guid><pubDate>Sat, 18 Apr 2009 17:12:51 -0400</pubDate></item><item><title>This small mess of wires mixed with a few hundred lines of code...</title><description>&lt;img src="http://24.media.tumblr.com/gxFxKfQqJm5elxvzpoReYu6Oo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;This small mess of wires mixed with a few hundred lines of code and a few weekends of my life that I’ll never get back finally add up to a door unlocker!  Instead of using my keys now, all I have to do is touch a card to the outside of my door, and voila, it opens!  Fingerprint scanner is the next step.  That way you will never be locked out.  Unless, of course, the power goes out.  But I’m sure a battery backup could be devised…&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/95078437</link><guid>http://blog.walterblaurock.com/post/95078437</guid><pubDate>Sat, 11 Apr 2009 01:21:20 -0400</pubDate></item><item><title>Rooms I want in my house...</title><description>&lt;img src="http://28.media.tumblr.com/gxFxKfQqJiyxlvflyBTiTLGCo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Rooms I want in my house (&lt;a href="http://www.citypaper.com/digest.asp?id=17354"&gt;http://www.citypaper.com/digest.asp?id=17354&lt;/a&gt;).&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/71960998</link><guid>http://blog.walterblaurock.com/post/71960998</guid><pubDate>Tue, 20 Jan 2009 21:39:39 -0500</pubDate></item><item><title>Just built a screen for the projector.  110 inches!  Try to beat...</title><description>&lt;img src="http://30.media.tumblr.com/gxFxKfQqJiqqu25oUWX95J6Xo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Just built a screen for the projector.  110 inches!  Try to beat that, TVs.&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/70631686</link><guid>http://blog.walterblaurock.com/post/70631686</guid><pubDate>Thu, 15 Jan 2009 04:07:55 -0500</pubDate></item><item><title>Google SketchUp...</title><description>&lt;p&gt;…is dope.&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/63665770</link><guid>http://blog.walterblaurock.com/post/63665770</guid><pubDate>Mon, 08 Dec 2008 04:35:03 -0500</pubDate></item><item><title>And then, when you’re ready to use them, you can take them...</title><description>&lt;img src="http://26.media.tumblr.com/gxFxKfQqJh8enhwx0FLPLQwOo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;And then, when you’re ready to use them, you can take them out!  &lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/63658773</link><guid>http://blog.walterblaurock.com/post/63658773</guid><pubDate>Mon, 08 Dec 2008 03:27:20 -0500</pubDate></item><item><title>My next project.  Space is always an issue, so they fit nicely...</title><description>&lt;img src="http://27.media.tumblr.com/gxFxKfQqJh8en05aEBGCi899o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;My next project.  Space is always an issue, so they fit nicely under the table.&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/63658725</link><guid>http://blog.walterblaurock.com/post/63658725</guid><pubDate>Mon, 08 Dec 2008 03:26:56 -0500</pubDate></item><item><title>My first four-monitor background!  Took long enough to find a...</title><description>&lt;img src="http://30.media.tumblr.com/gxFxKfQqJh3y26bdIQ2Sr6Ayo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;My first four-monitor background!  Took long enough to find a photo that large…&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/63138725</link><guid>http://blog.walterblaurock.com/post/63138725</guid><pubDate>Fri, 05 Dec 2008 00:31:46 -0500</pubDate></item><item><title>If I get anymore cables, I think I might need my own IT guy..</title><description>&lt;img src="http://30.media.tumblr.com/gxFxKfQqJgknv9allIcTSBHmo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;If I get anymore cables, I think I might need my own IT guy..&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/60901826</link><guid>http://blog.walterblaurock.com/post/60901826</guid><pubDate>Fri, 21 Nov 2008 12:38:50 -0500</pubDate></item><item><title>Making up for a lack of AWF this week.  To view, click here.</title><description>&lt;img src="http://28.media.tumblr.com/gxFxKfQqJggsp9dlCAyjZo0uo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Making up for a lack of AWF this week.  To view, &lt;a href="http://g5.walterblaurock.com/awf.html"&gt;click here&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.walterblaurock.com/post/60382095</link><guid>http://blog.walterblaurock.com/post/60382095</guid><pubDate>Tue, 18 Nov 2008 19:43:03 -0500</pubDate></item><item><title>"an astonishing 14 on the [Forbes 75 richest people in history] list are Americans born within nine..."</title><description>“an astonishing 14 on the [Forbes 75 richest people in history] list are Americans born within nine years of each other… [snip, snip]… almost 20% of the names come from a single generation - born between 1831 and 1840 in a single country. The list includes industrialists and financiers who are still household names today: John Rockefeller, born in 1839 (the richest of the lot); Andrew Carnegie, 1835; Jay Gould, 1836; and JP Morgan, 1837. [snip, snip] It was when all the rules by which the traditional economy functioned were broken and remade. What that list says is that it was absolutely critical, if you were going to take advantage of those opportunities, to be in your 20s when that transformation was happening. If you were born in the late 1840s, you missed it - you were too young to take advantage of that moment. If you were born in the 1820s, you were too old - your mindset was shaped by the old, pre-civil war ways.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.lifeonashirt.com/2008/11/16/the-impact-of-timing-why-this-financial-crisis-is-our-biggest-break/"&gt;Life on a Shirt by Jana Eggers » The impact of timing: why this financial crisis is our biggest break&lt;/a&gt; (via &lt;a href="http://fredwilson.vc/"&gt;fred-wilson&lt;/a&gt;) (via &lt;a href="http://thecool.tumblr.com/"&gt;thecool&lt;/a&gt;)&lt;/em&gt;</description><link>http://blog.walterblaurock.com/post/60041429</link><guid>http://blog.walterblaurock.com/post/60041429</guid><pubDate>Sun, 16 Nov 2008 21:57:37 -0500</pubDate></item></channel></rss>
