<?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>numb3r23 &#187; Physically Based Rendering</title>
	<atom:link href="https://www.numb3r23.net/category/research/pbr/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.numb3r23.net</link>
	<description>&#039;bout coding grafx &#38; more</description>
	<lastBuildDate>Tue, 27 Oct 2015 00:22:25 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.38</generator>
	<item>
		<title>Video: Spectral rendering on the GPU &#8211; soap bubble!</title>
		<link>https://www.numb3r23.net/2013/04/03/video-spectral-rendering-on-the-gpu-soap-bubbles/</link>
		<comments>https://www.numb3r23.net/2013/04/03/video-spectral-rendering-on-the-gpu-soap-bubbles/#comments</comments>
		<pubDate>Wed, 03 Apr 2013 09:55:30 +0000</pubDate>
		<dc:creator><![CDATA[numb3r23]]></dc:creator>
				<category><![CDATA[Physically Based Rendering]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.numb3r23.net/?p=232</guid>
		<description><![CDATA[I came up with an idea for a soap-bubble shader! More generally speaking it does dynamic thin-film interference of hollow convex two-sided objects in a deferred rendering configuration. In two passes front and back are rendered and the ray is traced through the object. To give you a better idea I screen-captured my demo-program and [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I came up with an idea for a soap-bubble shader!</p>
<p><a href="http://www.numb3r23.net/wp-content/uploads/2013/04/bubble.png"><img class="size-medium wp-image-233 aligncenter" alt="Two-sided soap bubble thin-film interference" src="http://www.numb3r23.net/wp-content/uploads/2013/04/bubble-300x261.png" width="300" height="261" /></a></p>
<p>More generally speaking it does dynamic thin-film interference of hollow convex two-sided objects in a deferred rendering configuration. In two passes front and back are rendered and the ray is traced through the object. To give you a better idea I screen-captured my demo-program and uploaded it:</p>
<p><iframe width="625" height="352" src="http://www.youtube.com/embed/sXLLn-gsqPk?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>As before all physical parameters of the shader can be changed at runtime (as seen in the above video). Bear in mind, that the program uses OpenGL 3.2 core and runs on my late iMac 2011 &#8211; it uses a Radeon 6960M, a mobile GPU.</p>
<p>The cube maps are from <a title="Emil Persson" href="http://twitter.com/_humus_" target="_blank">Emil Persson</a> and can be found at <a title="humus cube maps" href="http://www.humus.name/index.php?page=Textures" target="_blank">humus&#8217;s textures</a>. The head model is copyrighted to <a href="http://www.ir-ltd.net/infinite-3d-head-scan-released">© I-R Entertainment Ltd.</a>, taken from <a title="Morgan McGuire" href="https://twitter.com/morgan3d" target="_blank">Morgan McGuire</a>&#8216;s <a title="McGuire's Graphics Data" href="http://graphics.cs.williams.edu/data/meshes.xml" target="_blank">Graphics Data</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.numb3r23.net/2013/04/03/video-spectral-rendering-on-the-gpu-soap-bubbles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spectral Rendering on the GPU &#8211; now with bumps</title>
		<link>https://www.numb3r23.net/2013/03/26/spectral-rendering-on-the-gpu-now-with-bumps/</link>
		<comments>https://www.numb3r23.net/2013/03/26/spectral-rendering-on-the-gpu-now-with-bumps/#comments</comments>
		<pubDate>Tue, 26 Mar 2013 01:55:41 +0000</pubDate>
		<dc:creator><![CDATA[numb3r23]]></dc:creator>
				<category><![CDATA[Physically Based Rendering]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.numb3r23.net/?p=205</guid>
		<description><![CDATA[My GLSL spectral rendering shader (here &#38; here) is now able to do some (environmental) bump-mapping. It does physical wavelength-based thinfilm interference with sampled SPD&#8216;s on the GPU in realtime. All parameters are adjustable at runtime. I&#8217;ve implemented five distinct &#8220;film-setups&#8221; that have different ways to interpret/change film thickness and normals of film and object [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>My GLSL spectral rendering shader (<a title="wavelength-based thinfilm interference" href="http://www.numb3r23.net/2012/12/24/wavelength-based-thinfilm-interference/" target="_blank">here</a> &amp; <a title="Skybox from Screen-aligned quad + Cubemap" href="http://www.numb3r23.net/2012/12/26/skybox-from-screen-aligned-quad-cubemap/" target="_blank">here</a>) is now able to do some (environmental) bump-mapping. It does physical wavelength-based thinfilm interference with sampled <a title="Spectral Power Distribution (wiki)" href="http://en.wikipedia.org/wiki/Spectral_power_distribution" target="_blank">SPD</a>&#8216;s on the GPU in realtime. All parameters are adjustable at runtime. I&#8217;ve implemented five distinct &#8220;film-setups&#8221; that have different ways to interpret/change film thickness and normals of film and object surface. The setups are outlined in this sketch:</p>
<p><a href="http://www.numb3r23.net/wp-content/uploads/2013/03/setups_small.png"><img class="alignnone  wp-image-206" alt="setups_small" src="http://www.numb3r23.net/wp-content/uploads/2013/03/setups_small.png" width="800" height="124" /></a></p>
<p>Here&#8217;s a textual description:</p>
<ol>
<li><span style="line-height: 14px;">A simple film with constant thickness covers the object.</span></li>
<li>The surface of the object is &#8220;bumped&#8221; and the film has a constant thickness.</li>
<li>Both object and film use regular normals, but the thickness of the film varies. This is fake but looks nice:D.</li>
<li>The object remains unchanged while the film (thickness + normal) is bumped. Basically 3, but correct.</li>
<li>The object is bumped and the thickness is modulated such that the film&#8217;s surface is &#8220;flat&#8221;(like setup 1). The inverse scenario of 4.</li>
</ol>
<p>Finally some screenshots from the same angle and same film settings: refraction index=1.09, tilm-thickness:550-1170nm, CIE D65 light, silver material. The matte <a title="utah teapot" href="http://www.sjbaker.org/wiki/index.php?title=The_History_of_The_Teapot" target="_blank">utah teapot</a> is shown on the left, the shiny teapot on the right:</p>
<p><a href="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Matte_Setup1.png"><img class="alignnone  wp-image-208" alt="Teapot_Matte_Setup1" src="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Matte_Setup1-300x206.png" width="300" height="206" /></a> <img class="alignnone size-medium wp-image-213" alt="Teapot_Shiny_Setup1" src="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Shiny_Setup1-300x206.png" width="300" height="206" /><a href="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Matte_Setup2.png"><img class="alignnone size-medium wp-image-209" alt="Teapot_Matte_Setup2" src="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Matte_Setup2-300x206.png" width="300" height="206" /></a> <img class="alignnone size-medium wp-image-214" alt="Teapot_Shiny_Setup2" src="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Shiny_Setup2-300x206.png" width="300" height="206" /><a href="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Matte_Setup3.png"><img class="alignnone size-medium wp-image-210" alt="Teapot_Matte_Setup3" src="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Matte_Setup3-300x206.png" width="300" height="206" /></a> <img class="alignnone size-medium wp-image-215" alt="Teapot_Shiny_Setup3" src="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Shiny_Setup3-300x206.png" width="300" height="206" /><a href="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Matte_Setup4.png"><img class="alignnone size-medium wp-image-211" alt="Teapot_Matte_Setup4" src="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Matte_Setup4-300x206.png" width="300" height="206" /></a> <img class="alignnone size-medium wp-image-216" alt="Teapot_Shiny_Setup4" src="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Shiny_Setup4-300x206.png" width="300" height="206" /><a href="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Matte_Setup5.png"><img class="alignnone size-medium wp-image-212" alt="Teapot_Matte_Setup5" src="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Matte_Setup5-300x206.png" width="300" height="206" /></a> <a href="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Shiny_Setup5.png"><img class="alignnone size-medium wp-image-217" alt="Teapot_Shiny_Setup5" src="http://www.numb3r23.net/wp-content/uploads/2013/03/Teapot_Shiny_Setup5-300x206.png" width="300" height="206" /></a></p>
<p style="text-align: center;">(Click on image to enlarge)</p>
<p>I hope to be able to record a demo video soon (~ this week). While going through the sourcecode I also noticed that th<span style="line-height: 14px;">ere&#8217;s no dispersion as the refraction index is const. This should be easily adjustable, I just need some data. </span></p>
<p>Also, while the <a title="uffizi gallery (wiki)" href="http://en.wikipedia.org/wiki/Uffizi" target="_blank">uffizi gallery</a> is nice I&#8217;d like to try out some other cubemaps (m.be. from <a title="humus" href="http://www.humus.name/index.php?page=Textures" target="_blank">Humus</a>) and some other models. Maybe a wobbling soapbubble?</p>
]]></content:encoded>
			<wfw:commentRss>https://www.numb3r23.net/2013/03/26/spectral-rendering-on-the-gpu-now-with-bumps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wavelength-based thinfilm interference</title>
		<link>https://www.numb3r23.net/2012/12/24/wavelength-based-thinfilm-interference/</link>
		<comments>https://www.numb3r23.net/2012/12/24/wavelength-based-thinfilm-interference/#comments</comments>
		<pubDate>Mon, 24 Dec 2012 01:35:07 +0000</pubDate>
		<dc:creator><![CDATA[numb3r23]]></dc:creator>
				<category><![CDATA[Physically Based Rendering]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[GLSL]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[SpectralRendering]]></category>

		<guid isPermaLink="false">http://www.numb3r23.net/?p=153</guid>
		<description><![CDATA[I managed to successfully port some cg shaders over to glsl, gave them a spring-cleaning and integrated them into an OpenGL 3.2 core renderer (yeah, OS X 10.8 if you have to ask &#8211; bummer). It is kinda &#8220;the real deal&#8221;: thinfilm interference evaluated per lambda with interactive refraction indices, light + material spectral power [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I managed to successfully port some cg shaders over to glsl, gave them a spring-cleaning and integrated them into an OpenGL 3.2 core renderer (yeah, OS X 10.8 if you have to ask &#8211; bummer). It is kinda &#8220;the real deal&#8221;: thinfilm interference evaluated per lambda with interactive refraction indices, light + material spectral power distributions and thickness. I might have more results soon, so far these images below have to do:</p>
<p><a href="http://www.numb3r23.net/2012/12/24/wavelength-based-thinfilm-interference/screen-shot-2012-12-24-at-2-21-20-am/" rel="attachment wp-att-156"><img src="http://www.numb3r23.net/wp-content/uploads/2012/12/Screen-Shot-2012-12-24-at-2.21.20-AM-133x300.png" alt="Alien, smooth surface, film: 400nm" width="133" height="300" class="alignnone size-medium wp-image-156" /></a><a href="http://www.numb3r23.net/2012/12/24/wavelength-based-thinfilm-interference/screen-shot-2012-12-24-at-2-28-13-am/" rel="attachment wp-att-155"><img src="http://www.numb3r23.net/wp-content/uploads/2012/12/Screen-Shot-2012-12-24-at-2.28.13-AM-132x300.png" alt="Alien, semi-rough surface, film: 340nm" width="132" height="300" class="alignnone size-medium wp-image-155" /></a><a href="http://www.numb3r23.net/2012/12/24/wavelength-based-thinfilm-interference/screen-shot-2012-12-24-at-2-25-50-am/" rel="attachment wp-att-154"><img src="http://www.numb3r23.net/wp-content/uploads/2012/12/Screen-Shot-2012-12-24-at-2.25.50-AM-132x300.png" alt="Alien, rough surface, film: 430nm" width="132" height="300" class="alignnone size-medium wp-image-154" /></a></p>
<p>Besides I still have other work todo, writing down my ph.d thesis&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.numb3r23.net/2012/12/24/wavelength-based-thinfilm-interference/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SpectralLibrarian</title>
		<link>https://www.numb3r23.net/2012/12/24/spectrallibrarian/</link>
		<comments>https://www.numb3r23.net/2012/12/24/spectrallibrarian/#comments</comments>
		<pubDate>Mon, 24 Dec 2012 01:12:46 +0000</pubDate>
		<dc:creator><![CDATA[numb3r23]]></dc:creator>
				<category><![CDATA[Physically Based Rendering]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[SpectralRendering]]></category>

		<guid isPermaLink="false">http://www.numb3r23.net/?p=149</guid>
		<description><![CDATA[I just uploaded my SpectralLibrarian to github.com: https://github.com/numb3r23/SpectralLibrarian It&#8217;s written in C# and allows you to create, edit and manage spectral data. Spectras can be manually entered, imported from CSV, captured from an image, &#8230;. Libraries can be saved/loaded/exchanged Spectras can be put together in collections and stored into various filetypes Spectral points are interpreted [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I just uploaded my SpectralLibrarian to github.com:<br />
<a href="https://github.com/numb3r23/SpectralLibrarian" title="github.com/numb3r23/SpectralLibrarian" target="_blank">https://github.com/numb3r23/SpectralLibrarian</a></p>
<p>It&#8217;s written in C# and allows you to create, edit and manage spectral data.</p>
<ul>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Spectras can be manually entered, imported from CSV, captured from an image, &#8230;.</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Libraries can be saved/loaded/exchanged</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Spectras can be put together in collections and stored into various filetypes</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Spectral points are interpreted as peaks or as linear interpolation guides</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Few lights &amp; material spectras are provided in data-subfolder</span></li>
</ul>
<p>I needed it for a spectral-rendering project to manage and export textures containing the spectral data.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.numb3r23.net/2012/12/24/spectrallibrarian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
