<?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>The Little Grasshopper</title>
	<atom:link href="http://prideout.net/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://prideout.net/blog</link>
	<description>Tips and Tricks from a Graphics Programmer</description>
	<lastBuildDate>Thu, 05 Apr 2012 15:19:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Homage to Structure Synth</title>
		<link>http://prideout.net/blog/?p=72</link>
		<comments>http://prideout.net/blog/?p=72#comments</comments>
		<pubDate>Tue, 02 Aug 2011 10:21:29 +0000</pubDate>
		<dc:creator>Philip Rideout</dc:creator>
				<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[RenderMan]]></category>

		<guid isPermaLink="false">http://prideout.net/blog/?p=72</guid>
		<description><![CDATA[<img src="http://prideout.net/blog/p72/Art-Thumbnail.png" alt="L-System Art" class="alignright" style="border:0;clear:right;" />
Some fun with Python, L-Systems, and RenderMan.  This is a follow-up to a post I wrote exactly one year ago, <i>Mesh Generation with Python</i>.]]></description>
		<wfw:commentRss>http://prideout.net/blog/?feed=rss2&#038;p=72</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebGL Extension Viewer</title>
		<link>http://prideout.net/blog/?p=70</link>
		<comments>http://prideout.net/blog/?p=70#comments</comments>
		<pubDate>Sun, 15 May 2011 22:07:31 +0000</pubDate>
		<dc:creator>Philip Rideout</dc:creator>
				<category><![CDATA[WebGL]]></category>
		<category><![CDATA[webgl extension viewer]]></category>
		<category><![CDATA[webgl extensions]]></category>

		<guid isPermaLink="false">http://prideout.net/blog/?p=70</guid>
		<description><![CDATA[Convenient little page that lists the WebGL extensions your browser supports, along with hyperlinks to the specification documents for each extension.]]></description>
		<wfw:commentRss>http://prideout.net/blog/?feed=rss2&#038;p=70</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deep Opacity Maps</title>
		<link>http://prideout.net/blog/?p=69</link>
		<comments>http://prideout.net/blog/?p=69#comments</comments>
		<pubDate>Wed, 16 Feb 2011 14:55:56 +0000</pubDate>
		<dc:creator>Philip Rideout</dc:creator>
				<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[fluid simulation]]></category>

		<guid isPermaLink="false">http://prideout.net/blog/?p=69</guid>
		<description><![CDATA[<img src="http://prideout.net/blog/p69/thumbnail.png" alt="GPU Fluid" class="alignright" style="border:0;clear:right;" />
Just a quick video to show off the latest iteration of my real-time fluid simulation, which now builds a deep opacity map for shadowing.]]></description>
		<wfw:commentRss>http://prideout.net/blog/?feed=rss2&#038;p=69</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Noise-Based Particles, Part II</title>
		<link>http://prideout.net/blog/?p=67</link>
		<comments>http://prideout.net/blog/?p=67#comments</comments>
		<pubDate>Sat, 29 Jan 2011 21:35:58 +0000</pubDate>
		<dc:creator>Philip Rideout</dc:creator>
				<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[opengl particles]]></category>
		<category><![CDATA[opengl transform feedback]]></category>
		<category><![CDATA[transform feedback]]></category>

		<guid isPermaLink="false">http://prideout.net/blog/?p=67</guid>
		<description><![CDATA[<img src="http://prideout.net/blog/p67/Thumbnail.png" alt="GPU Particles" class="alignright" style="border:0;clear:right;" />

I updated my old noise-based particle demo so that it now builds a large 3D texture to represent velocities, performing advection on the GPU instead of the CPU.  This allowed me to increase my particle count by two orders of magnitude and maintain interactivity.  In this post, I cover the basics of GL_TRANSFORM_FEEDBACK (known as stream-out in DirectX land), which is used to perform advection with a vertex shader.]]></description>
		<wfw:commentRss>http://prideout.net/blog/?feed=rss2&#038;p=67</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3D Eulerian Grid</title>
		<link>http://prideout.net/blog/?p=66</link>
		<comments>http://prideout.net/blog/?p=66#comments</comments>
		<pubDate>Sun, 23 Jan 2011 18:06:09 +0000</pubDate>
		<dc:creator>Philip Rideout</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[fluid simulation]]></category>
		<category><![CDATA[opengl fluid simulation]]></category>
		<category><![CDATA[opengl fluids]]></category>

		<guid isPermaLink="false">http://prideout.net/blog/?p=66</guid>
		<description><![CDATA[<img src="http://prideout.net/blog/p66/Thumbnail.png" alt="Liquid Nitrogen" class="alignright" style="border:0;clear:right;" />

I finally extended my OpenGL-based Eulerian fluid simulation to 3D and managed to get it to run at interactive rates on my GeForce GTS 450.  As with almost all my blog entries, I've provided source code for you to play with, but only at your own risk.   <tt> &#58;&#41;</tt>]]></description>
		<wfw:commentRss>http://prideout.net/blog/?feed=rss2&#038;p=66</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Single-Pass Raycasting</title>
		<link>http://prideout.net/blog/?p=64</link>
		<comments>http://prideout.net/blog/?p=64#comments</comments>
		<pubDate>Sun, 16 Jan 2011 02:59:38 +0000</pubDate>
		<dc:creator>Philip Rideout</dc:creator>
				<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[raycasting]]></category>

		<guid isPermaLink="false">http://prideout.net/blog/?p=64</guid>
		<description><![CDATA[<img src="http://prideout.net/blog/p64/SmallCloud.png" class="alignright" style="border:0;clear:right;" alt="" />

GPU raycasting over a volume requires ray start and stop points.  Commonly these intervals are computed by drawing a cube (with perspective) into two surfaces: one with front faces, the other with back faces.  The final pass is the actual raycast.  In this post, I show how to avoid the overhead of the offscreen surfaces by performing a simple ray-cube intersection.]]></description>
		<wfw:commentRss>http://prideout.net/blog/?feed=rss2&#038;p=64</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Noise-Based Particles, Part I</title>
		<link>http://prideout.net/blog/?p=63</link>
		<comments>http://prideout.net/blog/?p=63#comments</comments>
		<pubDate>Sun, 02 Jan 2011 02:55:41 +0000</pubDate>
		<dc:creator>Philip Rideout</dc:creator>
				<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[noise]]></category>
		<category><![CDATA[particles]]></category>

		<guid isPermaLink="false">http://prideout.net/blog/?p=63</guid>
		<description><![CDATA[<img src="http://prideout.net/blog/p63/Thumbnail.png" class="alignright" style="border:0;clear:right;" alt="" />

Robert Bridson, that esteemed guru of fluid simulation, wrote an interesting 2007 SIGGRAPH paper about using Perlin noise to create turbulent effects in a velocity field.  In this post, I play with this approach to create a simple smoke simulation with particles, and I discuss some of the rendering issues with OpenGL.  For now, I'm moving the particles with the CPU rather than the GPU.  
]]></description>
		<wfw:commentRss>http://prideout.net/blog/?feed=rss2&#038;p=63</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tron, Volumetric Lines, and Meshless Tubes</title>
		<link>http://prideout.net/blog/?p=61</link>
		<comments>http://prideout.net/blog/?p=61#comments</comments>
		<pubDate>Fri, 31 Dec 2010 04:28:20 +0000</pubDate>
		<dc:creator>Philip Rideout</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[opengl light saber]]></category>
		<category><![CDATA[opengl tron]]></category>

		<guid isPermaLink="false">http://prideout.net/blog/?p=61</guid>
		<description><![CDATA[<img src="http://prideout.net/blog/p61/SmallHilbert.png" class="alignright" style="border:0;clear:right;" alt="" />

Volumetric lines are handy for a variety of effects, including lightsabers, lightning, and particle traces.  In this article, I show how a geometry shader can emit a chamfered cuboid for each line segment.  The fragment shader can then perform a variety of effects within the screen-space region defined by the cuboid, including Gaussian splats and raytraced tubes.]]></description>
		<wfw:commentRss>http://prideout.net/blog/?feed=rss2&#038;p=61</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Volumetric Splatting</title>
		<link>http://prideout.net/blog/?p=60</link>
		<comments>http://prideout.net/blog/?p=60#comments</comments>
		<pubDate>Sun, 28 Nov 2010 20:22:23 +0000</pubDate>
		<dc:creator>Philip Rideout</dc:creator>
				<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[streamlines]]></category>
		<category><![CDATA[volume rendering]]></category>

		<guid isPermaLink="false">http://prideout.net/blog/?p=60</guid>
		<description><![CDATA[<img src="http://prideout.net/blog/p60/Thumbnail.png" class="alignright" style="border:0;clear:right;" alt="" />

Volumetric splatting can be implemented efficiently with instancing.  In this article, I show how to use splatting to extrude a streamline into a vector field.  This technique would allow an artist to design a space-filling velocity field (e.g., for a particle system), simply by specifying an animation path through space.  My article also covers some basics of modern-day volume rendering on the GPU.]]></description>
		<wfw:commentRss>http://prideout.net/blog/?feed=rss2&#038;p=60</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple Fluid Simulation</title>
		<link>http://prideout.net/blog/?p=58</link>
		<comments>http://prideout.net/blog/?p=58#comments</comments>
		<pubDate>Sun, 21 Nov 2010 05:12:20 +0000</pubDate>
		<dc:creator>Philip Rideout</dc:creator>
				<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[smoke]]></category>

		<guid isPermaLink="false">http://prideout.net/blog/?p=58</guid>
		<description><![CDATA[<img src="http://prideout.net/blog/p58/ArticleThumb.png" alt="Smoke" class="alignright" style="border:0;clear:right;" />

In this post, I discuss a simple implementation of two-dimensional smoke using GLSL fragment shaders.  I provide C source that builds with Visual Studio 2010 and gcc.]]></description>
		<wfw:commentRss>http://prideout.net/blog/?feed=rss2&#038;p=58</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

