<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Leif Node</title>
	<atom:link href="https://leifnode.com/category/programming/vr/feed/" rel="self" type="application/rss+xml" />
	<link>https://leifnode.com</link>
	<description>Leif Erkenbrach&#039;s programming blog</description>
	<lastBuildDate>Wed, 22 Jul 2015 23:00:42 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>Video Reel</title>
		<link>https://leifnode.com/2015/04/video-reel/</link>
		<comments>https://leifnode.com/2015/04/video-reel/#comments</comments>
		<pubDate>Tue, 28 Apr 2015 00:17:15 +0000</pubDate>
		<dc:creator><![CDATA[Leif Erkenbrach]]></dc:creator>
				<category><![CDATA[DirectX]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[VR]]></category>

		<guid isPermaLink="false">http://leifnode.com/?p=447</guid>
		<description><![CDATA[It&#8217;s been a while since I&#8217;ve done any updates, and I need to write some updates on specifics of stuff I&#8217;ve been doing. I put together a reel of some of my older projects along with some of my more recent projects that I have not had a chance to update about for a show my college was doing so …<p> <a class="continue-reading-link" href="https://leifnode.com/2015/04/video-reel/">Continue reading<i class="icon-right-dir"></i></a></p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://leifnode.com/wp-content/uploads/2015/04/Novus-VXGITest-2015-04-18-20-11-08-03.png"><img class="alignnone size-large wp-image-448" src="http://leifnode.com/wp-content/uploads/2015/04/Novus-VXGITest-2015-04-18-20-11-08-03-1024x576.png" alt="VXGI" width="920" height="517" /></a></p>
<p>It&#8217;s been a while since I&#8217;ve done any updates, and I need to write some updates on specifics of stuff I&#8217;ve been doing. I put together a reel of some of my older projects along with some of my more recent projects that I have not had a chance to update about for a show my college was doing so I&#8217;ll post that here.</p>
<p>Most of my work over the past four months has been on learning and implementing some more advanced shading techniques so I did some work on tiled deferred shading, physically based shading, and voxel cone traced global illumination.<br />
<iframe src="https://www.youtube.com/embed/Z0sUNbnZmjk?rel=0" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>https://leifnode.com/2015/04/video-reel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LEAP Motion + Oculus Rift Particle Interactions</title>
		<link>https://leifnode.com/2014/10/leap-motion-oculus-rift-particle-interactions/</link>
		<comments>https://leifnode.com/2014/10/leap-motion-oculus-rift-particle-interactions/#comments</comments>
		<pubDate>Wed, 15 Oct 2014 09:34:17 +0000</pubDate>
		<dc:creator><![CDATA[Leif Erkenbrach]]></dc:creator>
				<category><![CDATA[DirectX]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[VR]]></category>

		<guid isPermaLink="false">http://leifnode.com/?p=280</guid>
		<description><![CDATA[I recently put together a demo for the art hop in Burlington. This demo renders 2.5 million particles and colors them based upon their velocity. This demo was written in C++ using Direct3D 11. The particles are simulated on a compute shader that I pass finger positions reported by the LEAP motion in world space. The LEAP is velcroed to …<p> <a class="continue-reading-link" href="https://leifnode.com/2014/10/leap-motion-oculus-rift-particle-interactions/">Continue reading<i class="icon-right-dir"></i></a></p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://leifnode.com/wp-content/uploads/2014/10/LEAP_Particles.png"><img class="alignnone size-large wp-image-281" src="http://leifnode.com/wp-content/uploads/2014/10/LEAP_Particles-1024x576.png" alt="LEAP Particles" width="920" height="517" /></a></p>
<p>I recently put together a demo for the art hop in Burlington. This demo renders 2.5 million particles and colors them based upon their velocity.</p>
<p>This demo was written in C++ using Direct3D 11. The particles are simulated on a compute shader that I pass finger positions reported by the LEAP motion in world space. The LEAP is velcroed to the front of my Oculus Rift DK1 (waiting on my DK2). The finger positions are used as attractors for the particles. I ended up using no distance falloff on the force that the fingers exert on particles. Instead of using just the tips of fingers as attractors I use all finger joints reported by the LEAP v2 SDK and give more weight to the attractors as they move further up the fingers.</p>
<p>The hands in the picture are my own hands captured using the infrared cameras on the LEAP motion which give a black and white video feed. The hands are rendered by just putting a textured quad that is offset on the Z axis in camera space using the palm position reported by the LEAP. The black and white color is then shifted to be closer to my skin color and any pixels with a brightness below 0.9 are clipped. This is a quick hack that works decently. I want to try rendering screen aligned quads spanning between each of the joints on my fingers using screen space texture coordinates. This will probably provide somewhat higher occlusion quality.</p>
<p>Lining up the images of the hands to match the positions reported by the LEAP was somewhat difficult, especially since most of the sample code provided by LEAP for the infrared image integration is pretty obfuscated by a lot of complex code to manually attempt to account for the Oculus Rift&#8217;s chromatic aberration shaders, distortion shaders, and other stuff like color grading. It&#8217;s still not quite accurate and because of how I&#8217;m attempting to compensate for the difference of IPD between the stereo infrared cameras in the LEAP and my eyes (about a 30mm difference) if the video feed is shown without clipping all of the video apart from the hands appears to distort when you move your hands close to your face. It&#8217;s actually a pretty interesting effect since visually it seems like the hands are the only things unaffected by the warping.</p>
<p>Something I forgot to do in this demo was twirl my fingers which gives a pretty cool effect.</p>
<p><iframe src="//www.youtube.com/embed/_SJh_3231mk?rel=0" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>https://leifnode.com/2014/10/leap-motion-oculus-rift-particle-interactions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
