<?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>Independent Developer &#187; computer graphics</title>
	<atom:link href="http://www.independentdeveloper.com/archive/tag/computer-graphics/feed" rel="self" type="application/rss+xml" />
	<link>http://www.independentdeveloper.com</link>
	<description>Code, Art and Everything In-Between</description>
	<lastBuildDate>Tue, 11 Aug 2009 21:32:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>AC3D Plugin: Material by Crease Angle and Planar Map by Material</title>
		<link>http://www.independentdeveloper.com/archive/2009/06/15/ac3d-plugin-material-by-crease-angle-and-planar-map-by-material</link>
		<comments>http://www.independentdeveloper.com/archive/2009/06/15/ac3d-plugin-material-by-crease-angle-and-planar-map-by-material#comments</comments>
		<pubDate>Tue, 16 Jun 2009 01:10:31 +0000</pubDate>
		<dc:creator>Lisa</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tools and Plugins]]></category>
		<category><![CDATA[3d graphics]]></category>
		<category><![CDATA[ac3d]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[plug ins]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[render]]></category>
		<category><![CDATA[texture map]]></category>

		<guid isPermaLink="false">http://www.independentdeveloper.com/?p=628</guid>
		<description><![CDATA[Two new plugins today! The first plugin, Set Material by Crease Angle, sets the materials of a model based on the crease angle of the mesh. For each selected area, the plugin creates a new color in the palette and &#8220;flood-fills&#8221; the area until the angle between the surfaces exceeds the crease angle of the [...]]]></description>
			<content:encoded><![CDATA[<p>Two new plugins today!</p>
<p>The first plugin, <strong>Set Material by Crease Angle</strong>, sets the materials of a model based on the crease angle of the mesh. For each selected area, the plugin creates a new color in the palette and &#8220;flood-fills&#8221; the area until the angle between the surfaces exceeds the crease angle of the mesh. The result is that contiguous areas are all set with the same palette material, and a new material is applied wherever a discontinuity occurs. This allows you to easily break a model into sections along its creases for easier texture mapping, or many other purposes.</p>
<p align="center"><a href="/images/materialbycreaseangle.jpg" rel="lightbox" title="Material by Crease Angle"><img src="/images/materialbycreaseangle_thumb.jpg" /></a></p>
<p>The second plugin, <strong>Planar Map by Material</strong>, actually includes <em>three</em> new commands. </p>
<p>The first command is <strong>Fit UV Coordinates to Map</strong>. This command is essentially the same as the &#8220;max&#8221; button in the TCE, forcing all UV coordinates into the 0-1 range, but unlike &#8220;max&#8221; this scales the map proportionally instead of independently on each axis.</p>
<p>The second command is <strong>Adjust UVs for Bilinear Filter</strong>. This is useful for game developers. This command scales your texture coordinates by a ratio of 240/256. The purpose is to create a small seam along the edge of the texture map so that if your game is using mipmapping with a bilinear or trilinear filter, the texture won&#8217;t bleed into its neighbors in your texture cache nor will it bleed into itself if you haven&#8217;t clamped the edges. </p>
<p>The last command, <strong>Planar Map by Surface Material</strong>, is probably the most useful of the three. Planar Map by Surface Material applies a &#8220;best fit&#8221; planar projection to all surfaces grouped by material in the current selection. If you section your model by material, this will treat each material color as a contiguous group and apply whichever planar projection fits it best in the TCE. You&#8217;ll still need to do some manual adjustment after you map it this way&#8211;especially texture packing, as this leaves plenty of room between areas so the surfaces aren&#8217;t too difficult to select&#8211;but it can save a lot of time in laying down a base mapping before you manually refine each area.</p>
<p>More information about each plugin is available in the readme.</p>
<p><a href="http://www.independentdeveloper.com/files/materialbyangle.zip">Download the Material by Crease Angle plugin. (Requires Windows XP, AC3D 6.2 or above.)</a></p>
<p><a href="http://www.independentdeveloper.com/files/autoplanaruv.zip">Download the Planar Map by Material plugin. (Requires Windows XP, AC3D 6.2 or above.)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.independentdeveloper.com/archive/2009/06/15/ac3d-plugin-material-by-crease-angle-and-planar-map-by-material/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AC3D Plugin: Displacement Mapper</title>
		<link>http://www.independentdeveloper.com/archive/2008/05/13/ac3d-plugin-displacement-mapper</link>
		<comments>http://www.independentdeveloper.com/archive/2008/05/13/ac3d-plugin-displacement-mapper#comments</comments>
		<pubDate>Tue, 13 May 2008 17:12:15 +0000</pubDate>
		<dc:creator>Lisa</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tools and Plugins]]></category>
		<category><![CDATA[ac3d]]></category>
		<category><![CDATA[bump map]]></category>
		<category><![CDATA[cg]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[displacement map]]></category>
		<category><![CDATA[height field]]></category>
		<category><![CDATA[heightfield]]></category>
		<category><![CDATA[Mudbox]]></category>
		<category><![CDATA[normal map]]></category>
		<category><![CDATA[POV-Ray]]></category>
		<category><![CDATA[ZBrush]]></category>

		<guid isPermaLink="false">http://www.independentdeveloper.com/?p=96</guid>
		<description><![CDATA[This plugin adds displacement map support to AC3D. Displacement mapping is a technique that deforms the current geometry, displacing the vertices in accordance with elevation values stored in a texture map. This technique is useful for &#8220;painting on&#8221; details onto a very high resolution mesh. Displacement maps can be painted with 2D art tools such [...]]]></description>
			<content:encoded><![CDATA[<p>This plugin adds displacement map support to AC3D. <a href="http://en.wikipedia.org/wiki/Displacement_mapping" target="external">Displacement mapping</a> is a technique that deforms the current geometry, displacing the vertices in accordance with elevation values stored in a texture map. This technique is useful for &#8220;painting on&#8221; details onto a very high resolution mesh.</p>
<p>Displacement maps can be painted with 2D art tools such as Corel, Photoshop or Gimp; or, they can be exported from 3D sculpting programs such as ZBrush or Mudbox. The AC3D displacement map plugin supports 8-bit grayscale and 16-bit red-green (POV-Ray format) displacement maps.</p>
<p>If you are new to displacement mapping, <a href="http://www.mossor.org/Desktop/Tutorials/garbagecan.htm" target="_external">this tutorial</a> explains the process in more detail.</p>
<p><strong><a href="/files/displacementmapper.zip" title="Download">Download the plugin. (Requires Windows XP, AC3D 6.2 or above.)</a></strong>
<p align="center"><a href="/images/displacement2.jpg" rel="lightbox" title="Displacement Mapper"><img src="/images/displacement2_thumb.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.independentdeveloper.com/archive/2008/05/13/ac3d-plugin-displacement-mapper/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Fake Toon Outlines</title>
		<link>http://www.independentdeveloper.com/archive/2008/05/07/fake-toon-outlines</link>
		<comments>http://www.independentdeveloper.com/archive/2008/05/07/fake-toon-outlines#comments</comments>
		<pubDate>Wed, 07 May 2008 19:23:44 +0000</pubDate>
		<dc:creator>Lisa</dc:creator>
				<category><![CDATA[3D Tutorials]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[ac3d]]></category>
		<category><![CDATA[cg]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[non-photorealistic rendering]]></category>
		<category><![CDATA[raytracing]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[toon shading]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://www.independentdeveloper.com/?p=94</guid>
		<description><![CDATA[Here&#8217;s a fun one! Ever wanted to re-create the look of heavy &#8220;toon&#8221; outlines, but didn&#8217;t have a shader for it? Believe it or not, there&#8217;s an easy way to fake it using fixed-function only. Here&#8217;s how to do it: Make sure all your surface normals are unified (facing outwards) and your polygons are set [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a fun one! Ever wanted to re-create the look of heavy &#8220;toon&#8221; outlines, but didn&#8217;t have a shader for it? Believe it or not, there&#8217;s an easy way to fake it using fixed-function only. </p>
<p align="center"><a href="/images/faketoon.jpg" rel="lightbox" title="Fake Toon Shading"><img src="/images/faketoon_thumb.jpg" /></a></p>
<p><strong>Here&#8217;s how to do it:</strong></p>
<ul>
<li>Make sure all your surface normals are unified (facing outwards) and your polygons are set to 1-sided</li>
<li>Make a copy of your object and resize it so it is ever-so-slightly larger than the original</li>
<li>On the copy, set the surface material to black</li>
<li>Invert the surface normals </li>
</ul>
<p>That&#8217;s it! Nifty, eh? The method&#8217;s not perfect&#8211;for best results, stick to convex objects&#8211;but it&#8217;s great for quick renders and on limited hardware platforms where shaders aren&#8217;t an option.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.independentdeveloper.com/archive/2008/05/07/fake-toon-outlines/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AC3D Plugin: Reparent Object</title>
		<link>http://www.independentdeveloper.com/archive/2008/04/01/ac3d-plugin-reparent-object</link>
		<comments>http://www.independentdeveloper.com/archive/2008/04/01/ac3d-plugin-reparent-object#comments</comments>
		<pubDate>Tue, 01 Apr 2008 09:12:29 +0000</pubDate>
		<dc:creator>Lisa</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tools and Plugins]]></category>
		<category><![CDATA[3d modeling]]></category>
		<category><![CDATA[ac3d]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.independentdeveloper.com/?p=85</guid>
		<description><![CDATA[This is actually a really old plugin, but it still has its uses. This plugin allows you to change the parent of a mesh or group by entering the name of the desired parent group in a dialog box. You can accomplish more-or-less the same thing via drag and drop in the hierarchy menu already, [...]]]></description>
			<content:encoded><![CDATA[<p>This is actually a really old plugin, but it still has its uses. This plugin allows you to change the parent of a mesh or group by entering the name of the desired parent group in a dialog box. You can accomplish more-or-less the same thing via drag and drop in the hierarchy menu already, but it&#8217;s still handy when you have a really complex setup and don&#8217;t want to hunt through the list to find what you&#8217;re looking for.</p>
<p><strong><a href="/files/reparentobject.zip" title="Download">Download the plugin. (Requires Windows XP, AC3D 6.2 or above.)</a></strong>
<p align="center"><a href="/images/reparentobject.jpg" rel="lightbox" title="Reparent Object"><img src="/images/reparentobject_thumb.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.independentdeveloper.com/archive/2008/04/01/ac3d-plugin-reparent-object/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Cut Edges and Add Loops in AC3D</title>
		<link>http://www.independentdeveloper.com/archive/2008/03/22/how-to-cut-edges-and-add-loops-in-ac3d</link>
		<comments>http://www.independentdeveloper.com/archive/2008/03/22/how-to-cut-edges-and-add-loops-in-ac3d#comments</comments>
		<pubDate>Sat, 22 Mar 2008 23:45:26 +0000</pubDate>
		<dc:creator>Lisa</dc:creator>
				<category><![CDATA[3D Tutorials]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[ac3d]]></category>
		<category><![CDATA[cg]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[cut edge]]></category>
		<category><![CDATA[divide loop]]></category>
		<category><![CDATA[insert vertex]]></category>
		<category><![CDATA[slice edge]]></category>
		<category><![CDATA[surface]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[vertice]]></category>

		<guid isPermaLink="false">http://www.independentdeveloper.com/archive/2008/03/22/how-to-cut-edges-and-add-loops-in-ac3d</guid>
		<description><![CDATA[From time to time, people ask me how to &#8220;cut edges&#8221; in AC3D since the way AC3D handles edges is a bit different than other programs. Usually, I use the Divide Loop plug-in which is normally the fastest, easiest way to go. But, every now and then you get an edge that isn&#8217;t well suited [...]]]></description>
			<content:encoded><![CDATA[<p>From time to time, people ask me how to &#8220;cut edges&#8221; in AC3D since the way AC3D handles edges is a bit different than other programs. Usually, I use the <a href="http://supercoldmilk.com/ac3dplug/divloop.html" target="_blank">Divide Loop plug-in</a> which is normally the fastest, easiest way to go. But, every now and then you get an edge that isn&#8217;t well suited for Divide Loop. In these cases, I use a combination of Insert Vertex and Slice Surface. </p>
<p>This video shows you how:</p>
<div align="center"><a href="/files/cubeslice.wmv"><img src="/images/cubeslice_thumb.jpg" alt="Click to Download Video" /></a></div>
<p><b>A QUICK SIDE NOTE: It is <em>much</em> faster to use the hotkeys (ctrl+shift+I and ctrl+shift+L) than it is to use the menus&#8230; the whole process can be completed in only a few seconds if you use the hotkeys. However, for the sake of clarity, I use the menus in the video so you can actually see what I&#8217;m doing. <img src='http://www.independentdeveloper.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </b></p>
]]></content:encoded>
			<wfw:commentRss>http://www.independentdeveloper.com/archive/2008/03/22/how-to-cut-edges-and-add-loops-in-ac3d/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plasma HD Render</title>
		<link>http://www.independentdeveloper.com/archive/2008/01/30/plasma-hd-render</link>
		<comments>http://www.independentdeveloper.com/archive/2008/01/30/plasma-hd-render#comments</comments>
		<pubDate>Thu, 31 Jan 2008 05:42:54 +0000</pubDate>
		<dc:creator>Lisa</dc:creator>
				<category><![CDATA[3D Tutorials]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[1080p]]></category>
		<category><![CDATA[cg]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[explosion]]></category>
		<category><![CDATA[hd]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[plasma]]></category>
		<category><![CDATA[POV-Ray]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.independentdeveloper.com/archive/2008/01/30/plasma-hd-render</guid>
		<description><![CDATA[The tiny little 320&#215;240 render of the plasma for the POV-Ray tutorial was a bit hard to see, so I did a render in 1920 x 1080 resolution for those of you interested in seeing the details. It&#8217;s still a bit compressed, but the image is a lot clearer. You&#8217;ll find it here: download the [...]]]></description>
			<content:encoded><![CDATA[<p>The tiny little 320&#215;240 render of the plasma for the <a href="http://www.independentdeveloper.com/archive/2008/01/25/rendering-plasma-in-pov-ray">POV-Ray tutorial</a> was a bit hard to see, so I did a render in 1920 x 1080 resolution for those of you interested in seeing the details. It&#8217;s still a bit compressed, but the image is a lot clearer. <strong>You&#8217;ll find it here: <a href="/files/pov_explosion.wmv">download the video</a>.</strong></p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.independentdeveloper.com/archive/2008/01/30/plasma-hd-render/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rendering Plasma in POV-Ray</title>
		<link>http://www.independentdeveloper.com/archive/2008/01/25/rendering-plasma-in-pov-ray</link>
		<comments>http://www.independentdeveloper.com/archive/2008/01/25/rendering-plasma-in-pov-ray#comments</comments>
		<pubDate>Fri, 25 Jan 2008 12:56:25 +0000</pubDate>
		<dc:creator>Lisa</dc:creator>
				<category><![CDATA[3D Tutorials]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[cg]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[clouds]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[explosions]]></category>
		<category><![CDATA[fog]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[particles]]></category>
		<category><![CDATA[plasma]]></category>
		<category><![CDATA[POV-Ray]]></category>
		<category><![CDATA[render]]></category>
		<category><![CDATA[rendering]]></category>

		<guid isPermaLink="false">http://www.independentdeveloper.com/archive/2008/01/25/rendering-plasma-in-pov-ray</guid>
		<description><![CDATA[POV-Ray has some very powerful commands for rendering realistic plasmas and explosions, but not very many people know how to use them well. This tutorial will show you how. [youtube:http://www.youtube.com/watch?v=CbxqIwk8-e0 350 292]An turntable of a plasma cloud rendered in POV-Ray UPDATE: download the high-res version To render plasmas, there are two basic commands you need [...]]]></description>
			<content:encoded><![CDATA[<p>POV-Ray has some very powerful commands for rendering realistic plasmas and explosions, but not very many people know how to use them well. This tutorial will show you how.</p>
<div class="photocaption" align="center">[youtube:http://www.youtube.com/watch?v=CbxqIwk8-e0 350 292]<br/>An turntable of a plasma cloud rendered in POV-Ray<br/><br />
UPDATE: <a href="http://www.independentdeveloper.com/files/pov_explosion.wmv">download the high-res version</a></p>
</div>
<p><span id="more-70"></span></p>
<p><strong>To render plasmas, there are two basic commands you need to know:</strong></p>
<p>- Media<br />
- Turbulence</p>
<p><strong>Media</strong> is a material parameter in POV-Ray designed to mimic the way the <em>interior</em> of a substance reacts to light. You could think of it as similar to a volumetric texture&#8211;but a more visceral way to describe media would be to visualize it as a gelatin or poured acrylic. You can tint it, swirl it, and pour it into a container of any shape you like.</p>
<p>Media works essentially the same way as other textures and materials in POV-Ray: you can assign colors to it, you can apply patterns to it, you can warp it or bend it, and you can even use it in layers. However, unlike textures, media has <em>volume</em>. The amount of light that is transmitted through media is dependent on the thickness of the media you are viewing it through. It is this property that allows media to be used to simulate fog, deep water, clouds, plasmas and a variety of other effects.</p>
<p>You can read a tutorial on the media command here: <a href="http://www.povray.org/documentation/view/3.6.1/94/" target="_blank">Simple Media Tutorial</a></p>
<p><strong>Turbulence</strong> is a &#8220;pattern modifier&#8221;. Pattern modifiers alter the appearance of your texture or material by deforming them it various ways. POV-Ray had several different types of pattern modifiers. The turbulence modifier adds &#8220;noise&#8221; or chaos to your texture. Typically it has a soft, cloud-like shape; although with various settings it can also take on the appearance of marble, rocky soil or aluminum foil.</p>
<p>You can read a tutorial on the turbulence command here: <a href="http://www.povray.org/documentation/view/3.6.1/77/" target="_blank">Advanced Texture Options</a></p>
<p><strong>By combining media and turbulence, you can create clouds, fog, plasmas and many other effects.</strong> When turbulence is combined with media, it alters the density of the media in a random way. This causes the media to appear as if there were something suspended inside it. By changing the turbulence settings, you can choose the way the media clumps and flows.</p>
<p>In general, the trick to getting great results with media is to use several density layers. Nature tends to be very fractal-like, with lots of interesting things going on both at the macro and the micro level. You want to emulate that in your renders. You can accomplish this by creating layers that simulate the large things that are going on, and then additional layers rendered on top of that that simulate the tiny details. This does slow down your render, but good things come to those who wait. <img src='http://www.independentdeveloper.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Let&#8217;s walk through an example:</strong></p>
<pre>
<code>// global settings: here, we specify which version of
// POV-Ray this file was designed for, as well as our
// default gamma settings for the scene
#version 3.6;
global_settings {
  assumed_gamma 1.0
  max_trace_level 5
}

// camera: this simple camera looks at the origin from
// a slight angle. it is the same camera as used in the
// default POV-Ray scene template
camera {                        

  // this line allows us to create an animation. by
  // changing the camera angle around the y axis based
  // on the clock, the camera will orbit the origin
  rotate &lt;0.0, 360*clock, 0.0&gt;             

  location  &lt;0.0, 0.5, -4.0&gt;
  direction 1.5*z
  right     x*image_width/image_height
  look_at   &lt;0.0, 0.0, 0.0&gt;
}

// a simple, completely black sky sphere
sky_sphere {
  pigment {
    rgb &lt;0.0, 0.0, 0.0&gt;
  }
}

// fireball: let's simulate an explosion. to do this, we're
// going to use the media and turbulence commands to create
// a plasma effect inside of an ordinary sphere.
sphere {
    0, 2.0

    // it's important to make the outer shell of your
    // object transparent... if you can't see through the
    // outside of the object, you won't be able
    // to see the media inside it
    pigment { color rgbt &lt;1, 1, 1, 1&gt; }      

    // media is held within the interior of the object
    interior {

        // we're going to create a single media object, with
        // several different density maps inside it. this works
        // similar to building a layered texture. "density"
        // controls the thickness of the media at a particular
        // point. density can be controlled independently on
        // each color channel, allowing you to have colored
        // media by emitting or blocking certain colors of light.
        // density maps multiply--not add--the density of the
        // layers together. this means that if a point has a zero
        // value on any layer, that the total density for that
        // point will also be zero. this is extremely
        // useful for creating complex patterns and effects
        media {         

         // POV-Ray supports three types of media: emissive,
         // absorbing, and scattering. "emission" is self-illuminated
         // media. it will not cast light on other objects, but it
         // has the appearance of glowing. "absorption" blocks light
         // instead of emits light. absorbing media casts shadows on
         // other objects. "scattering" media is lit by other
         // light sources, and can scatter light. it is substantially
         // slower to render than the other two types, however, it
         // can be used with photons to create effects like
         // visible sunbeams
         emission 1.0
         absorption .2   

         //
         // LAYER 1
         //
         // for our first layer, we'll blend the edge of the sphere
         // to transparent. this will make edges less obvious and help
         // hide the fact that the media is contained inside a sphere.
         // we want it to look free-floating, so it's important to
         // disguise the edges
         density {
            spherical
            density_map {
                [0.0 rgb &lt;0.0, 0.0, 0.0&gt;]
                [1.0 rgb &lt;1.0, 1.0, 1.0&gt;]
            }
         }

         //
         // LAYER 2
         //
         // explosions usually have bright centers. for our second layer,
         // we'll give the explosion a "hot" core by multiplying past
         // the 1.0 range in the center... POV-Ray doesn't support HDRI
         // (the MegaPOV build does) but this trick works nonetheless
         density {
            spherical
            density_map {
                [0.7 rgb &lt;1.0, 1.0, 1.0&gt;]
                [1.0 rgb &lt;8.0, 8.0, 8.0&gt;]
            }
          }              

         //
         // LAYER 3
         //
         // now that we've blocked out the general shape of our media,
         // for our third layer we want to get it looking more cloud-like
         // and less like a ball. we'll do that by adding some soft, low
         // frequency turbulence
         density {
            spherical
            density_map {
                [0.0 rgb &lt;0.0, 0.0, 0.0&gt;]
                [0.2 rgb &lt;0.5, 0.0, 0.0&gt;]
                [0.4 rgb &lt;0.8, 0.4, 0.0&gt;]
                [0.9 rgb &lt;1.0, 1.0, 1.0&gt;]
            }      

            // here's where the magic happens... a low turbulence setting
            // causes our media to take on a soft, cloud-like shape
            warp {
                turbulence .6
                lambda 1.5  

                // low omega values create soft, blurry results;
                // higher values are crisp and wrinkly
                omega 0.25
            }

            // this warp causes the explosion to look like the particulate
            // is ejecting from the center by pulling in all of the color
            // toward the center... I haven't tried it, but I bet you
            // could do some nifty animations by adding a clock term to
            // one of these values
            warp {
                black_hole &lt;0.0, 0.0, 0.0&gt;, 2.0
                strength .95
                falloff 2.5
            }
          }

          //
          // LAYER 4
          //
          // explosions have lots of detail, with many fine swirls and
          // eddies. we can simulate this by using a high-frequency
          // turbulence value. again, we'll multiply past 1.0 to keep
          // the explosion "hot"
          density {
            spherical
            density_map {
                [0.0 rgb &lt;0.0, 0.0, 0.0&gt;]
                [0.1 rgb &lt;1.0, 0.0, 0.0&gt; * .75]
                [0.2 rgb &lt;1.0, 0.5, 0.0&gt; * .75]
                [0.8 rgb &lt;1.0, 1.0, 1.0&gt; * 2.5]
            }           

            warp {
                turbulence 1.5
                lambda 2.5
                omega 0.55
                octaves 7
            }
            scale .75

            warp {
                black_hole &lt;0.0, 0.0, 0.0&gt;, 2.0
                strength .8
                falloff 2.0
             }
          }

          // if you find that you have glitches or black spots in
          // your media, try turning up the number of samples.
          // more samples will cause it to render slower, so don't
          // turn it up more than you need to
          samples 20
          scale 1.25
        }
    }

    // THIS LINE IS VERY IMPORTANT! in order to hold the media, the object
    // needs to be hollow... if the object is solid, the default, then the
    // media won't show correctly. don't forget to include this command!
    hollow
}
</code>
</pre>
<p>As you can see, media is a very powerful tool that will let you create a variety of amazing effects! It does take some practice to get a feel for how it works, but the results are well-worth the time spent learning.</p>
<p><strong>More POV-Ray media examples to explore:<br /></strong>- <a href="http://www.travelnotes.de/rays/media/media.htm" target="_blank">Kurt Bangert and Carola Blaesing-Bangert, Media Examples</a><br />
- <a href="http://www.willamette.edu/~gorr/classes/GeneralGraphics/Media/index.htm" target="_blank">Media and Particle Systems</a> by Jenny Orr<br />
- <a href="http://povray.tashcorp.net/tutorials/ww_media/" target="_blank">Web Walking: Media</a> by Mike Kost</p>
<p>Questions? Ideas? Amazing scenes you&#8217;ve created? Leave a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.independentdeveloper.com/archive/2008/01/25/rendering-plasma-in-pov-ray/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
<enclosure url="http://www.independentdeveloper.com/files/pov_explosion.wmv" length="8901280" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>Gallery: Sea Horse</title>
		<link>http://www.independentdeveloper.com/archive/2008/01/18/gallery-sea-horse</link>
		<comments>http://www.independentdeveloper.com/archive/2008/01/18/gallery-sea-horse#comments</comments>
		<pubDate>Fri, 18 Jan 2008 19:00:09 +0000</pubDate>
		<dc:creator>Lisa</dc:creator>
				<category><![CDATA[Gallery]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[3d model]]></category>
		<category><![CDATA[ac3d]]></category>
		<category><![CDATA[aquarium]]></category>
		<category><![CDATA[aquatic life]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[cg]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[corel]]></category>
		<category><![CDATA[Poser]]></category>
		<category><![CDATA[sea horse]]></category>

		<guid isPermaLink="false">http://www.independentdeveloper.com/archive/2008/01/18/gallery-sea-horse</guid>
		<description><![CDATA[Click for larger view, or download the high-res image. This image was 3D modeled in AC3D using the box modeling method. The textures were hand-painted (no photographs) in Corel Photopaint. The final image was rendered with Poser using image-based lighting.]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="/images/seahorse-final.jpg" rel="lightbox"><img src="/images/seahorse-thumb.jpg" /></a></p>
<p>Click for larger view, or <a href="/images/seahorse-final.jpg">download the high-res image.</a></p>
<p>This image was 3D modeled in <a href="http://www.inivis.com/" target="_blank">AC3D</a> using the box modeling method. The textures were hand-painted (no photographs) in <a href="http://www.amazon.com/gp/search?ie=UTF8&#038;keywords=corel%20graphics%20suite&#038;tag=independevelo-20&#038;index=software&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325" target="_blank">Corel Photopaint</a>. The final image was rendered with <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2FeFrontier-Poser-Figure-Design-Animation%2Fdp%2FB000KK4330%3Fie%3DUTF8%26s%3Dsoftware%26qid%3D1200625832%26sr%3D8-1&#038;tag=independevelo-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325" target="_blank">Poser</a> using image-based lighting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.independentdeveloper.com/archive/2008/01/18/gallery-sea-horse/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AC3D Plugin: NMF (ATI Normal Map) Exporter</title>
		<link>http://www.independentdeveloper.com/archive/2007/12/08/ac3d-plugin-nmf-ati-normal-map-exporter</link>
		<comments>http://www.independentdeveloper.com/archive/2007/12/08/ac3d-plugin-nmf-ati-normal-map-exporter#comments</comments>
		<pubDate>Sat, 08 Dec 2007 11:39:32 +0000</pubDate>
		<dc:creator>Lisa</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tools and Plugins]]></category>
		<category><![CDATA[ac3d]]></category>
		<category><![CDATA[ambient occlusion]]></category>
		<category><![CDATA[ati]]></category>
		<category><![CDATA[bump mapping]]></category>
		<category><![CDATA[cg]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[computer games]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[melody]]></category>
		<category><![CDATA[normal mapping]]></category>
		<category><![CDATA[normalmapper]]></category>
		<category><![CDATA[parallax mapping]]></category>
		<category><![CDATA[realtime 3d]]></category>
		<category><![CDATA[realtime rendering]]></category>
		<category><![CDATA[rendering]]></category>
		<category><![CDATA[video games]]></category>

		<guid isPermaLink="false">http://www.independentdeveloper.com/archive/2007/12/08/ac3d-plugin-nmf-ati-normal-map-exporter</guid>
		<description><![CDATA[This plugin exports your AC3D file into NMF format, the native input format of the ATI NormalMapper utility. NormalMapper allows you to generate normal maps, bent normals and ambient occlusion maps suitable for use in video games and other realtime 3D applications. If you aren&#8217;t familiar with normal maps, normal maps are a way to [...]]]></description>
			<content:encoded><![CDATA[<p>This plugin exports your AC3D file into NMF format, the native input format of the <a href="http://ati.amd.com/developer/tools.html">ATI NormalMapper</a> utility. NormalMapper allows you to generate normal maps, bent normals and ambient occlusion maps suitable for use in video games and other realtime 3D applications. </p>
<p>If you aren&#8217;t familiar with normal maps, normal maps are a way to make your low-polygon model look more detailed by encoding surface information from a high-polygon version of the same model into a texture map. <a href="http://www.bencloward.com/resources_tutorials.shtml">Ben Cloward has an excellent tutorial</a> where you can learn more. </p>
<p><strong>This plug-in requires the free <a href="http://ati.amd.com/developer/tools.html">NormalMapper utility available from AMD</a> in order to process the output files.</strong> The companion NormalMapperUI (Stand Alone) available at the same location is also helpful, but not required. </p>
<p><strong><a href="/files/nmfexport.zip" title="Download">Download the plugin. (Requires Windows XP, AC3D 6.2 or above.)</a></strong>
<p align="center"><a href="/images/normalmapper.jpg" rel="lightbox" title="Example of Normal Mapping"><img src="/images/normalmapper_thumb.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.independentdeveloper.com/archive/2007/12/08/ac3d-plugin-nmf-ati-normal-map-exporter/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why Researching Workflow Matters</title>
		<link>http://www.independentdeveloper.com/archive/2007/11/30/why_researching_workflow_matte</link>
		<comments>http://www.independentdeveloper.com/archive/2007/11/30/why_researching_workflow_matte#comments</comments>
		<pubDate>Fri, 30 Nov 2007 09:52:00 +0000</pubDate>
		<dc:creator>Lisa</dc:creator>
				<category><![CDATA[3D Tutorials]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[auto desk]]></category>
		<category><![CDATA[cg]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[computer graphics]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[photorealistic]]></category>
		<category><![CDATA[procedurals]]></category>
		<category><![CDATA[realism]]></category>
		<category><![CDATA[render]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Autodesk has a fun quiz on their site called the Fake or Foto test. In the quiz, you have to look at each image, and guess whether it is real or a render. Surprisingly, I aced it the very first time! After I took the quiz, I went back and documented all the things that [...]]]></description>
			<content:encoded><![CDATA[<p>Autodesk has a fun quiz on their site called the <a href="http://www.autodesk.com/eng/etc/fake_or_foto/quiz.html" title="Take the Quiz" target="_blank">Fake or Foto test</a>. In the quiz, you have to look at each image, and guess whether it is real or a render. Surprisingly, I aced it the very first time!</p>
<p>After I took the quiz, I went back and documented all the things that made me think a particular image was real or fake. That way I could see what it was that clued me so that I might improve my own work. <strong>In almost all cases, it <em>wasn&#8217;t</em> that the CG images were obviously wrong in any way, it was simply that the real images had more &#8220;detail&#8221; in them.</strong></p>
<p>For years, the limitation has been what the software could do, but I&#8217;m not so sure that&#8217;s true anymore. In games especially, production costs have gone up as graphics have become more realistic simply because making detailed images is very time consuming. The relationship between time, money and graphics detail is linear. The problem, of course, is that neither time nor money are infinite. Limited budget means limited production cycles, which means limited time to spend adding things like scratches, scrapes and nose hairs. Eventually, we&#8217;ll reach a point where we can&#8217;t add more detail not because we&#8217;re out of <em>RAM</em>&#8211;we can&#8217;t add more detail because we&#8217;re out of <em>time</em>! Truthfully, I think we&#8217;re on the horizon of that already.</p>
<p>While I&#8217;m certain that there are still numerous improvements to be made in traditionally researched areas such as lighting, I think technological improvements to <em>workflow </em>have more potential to improve the quality of computer graphics in the near future than virtually any other area. Automated procedural geometry, better methodologies and tools that allow for less restrictive workflow patterns&#8211;such as recent advancements in re-topology interfaces&#8211;can allow us to complete the same job in less time and with far less effort. We know the artists and software <em>can</em> do it; now we need to make it practical.</p>
<p>For the curious, here are my impressions from the Autodesk quiz:</p>
<p><strong>** WARNING ** Spoilers follow. You might want to take <a href="http://www.autodesk.com/eng/etc/fake_or_foto/quiz.html" target="_blank">the quiz</a> yourself before you read my analysis of the images.</strong></p>
<p><span id="more-33"></span></p>
<h4>The Car: Fake</h4>
<p><em>What Gave it Away:</em>  Ok, I have to admit I have an unfair advantage on this one. I&#8217;ve worked on a half dozen racing games in my career, and I&#8217;ve seen a heck of a lot of CG cars. This is a really good image. Interestingly, my first tip-off that it wasn&#8217;t real wasn&#8217;t anything with the rendering itself: it was the composition! I don&#8217;t know why, but over the years car-on-a-cobblestone street has become nearly as ubiquitous as chrome sphere on a checkerboard. The real give-away though was the distance between the fence and the background elements. I&#8217;d bet dollars to donuts the buildings behind the fence are a 2D photo.</p>
<h4>The Coffee Mug: Fake</h4>
<p><em>What Gave it Away:</em> This image was the easiest of the bunch to discerne. It suffers from a very common problem with CG images: the &#8220;too shiny&#8221; effect. Reflections can add a lot of realism to your scenes, but its easy to over-do it. Fewer reflections and a tighter lighting setup would improve this image significantly.</p>
<h4>The Corkscrew: Real</h4>
<p><em>What Gave it Away:</em> On the far right edge of the main cylinder, there is a raised imperfection in the metal. In addition, the brushed metal behind the corkscrew is very difficult to do well in CG because of the unusual way the tiny lines distribute the light. I figured this one had to be real.</p>
<p>In recent years artists and developers have made great strides in making things look more real by making them less perfect, but we still haven&#8217;t reached the point where most images have intentional defects on this scale. Again, it&#8217;s less a technology issue, and more a time and workflow issue&#8230; in a production environment, there just isn&#8217;t time to add scuffs to every screw.  I wouldn&#8217;t be surprised however if we start seeing major advancements to add exactly those kind of details in a completely automated fashion in the very near future.</p>
<h4>Diamonds: Fake</h4>
<p><em>What Gave it Away:</em> The lighting is too uniform for real diamonds. Real diamonds have very complex refractions. These only seemed to have one or two levels of internal lighting on the gemstones.</p>
<p>Gemstones are an absolutely fascinating subject when it comes to lighting techniques&#8230; real gemstones are all about light! If you&#8217;d like a deeper exploration of the math, Richard Hughes has written <a href="http://www.ruby-sapphire.com/brilliance_windows_extinction.htm">an interesting article about the phenomena of brilliance, window and extinction</a> in gemstones.</p>
<h4>Bolt: Real</h4>
<p><em>What Gave it Away:</em> This image was very hard to tell. The graininess of the focal blur implies CG, and there&#8217;s an <a href="http://www.ignorancia.org/en/index.php?page=Bolts_still" title="Bolts" target="_blank">almost identical render</a> done by Jaime Vives Piqueres in POV-Ray, so I knew it could be done. But, something about the pitting on the head suggested this one was probably real. The top of the bolt is smooth on the edges and pitted in the middle. Again, while there&#8217;s no technical reason this kind of detail can&#8217;t be added to a CG image, the time requirement means it usually isn&#8217;t, which is why I figured this one must be real.</p>
<h4>Egg Beaters: Fake</h4>
<p><em>What Gave it Away:</em> The &#8220;whiteness&#8221; of the reflections. I have this problem with my own images sometimes, aargh. <img src='http://www.independentdeveloper.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>Car Hood: Real</h4>
<p><em>What Gave it Away:</em> Like the coffee mug, this is another one I just knew from my gut immediately. The micro-distortions in the reflections, the angle of the shot, and the material qualities of plastic-chrome all made this image seem unlikely to be CG. (So I guess I know now what I need to add to my images!)</p>
<h4>Wood Monkeys: Fake</h4>
<p><em>What Gave it Away:</em> The wood grain seems unnatural, something is out of scale about it. The monkeys are too similar to each other.</p>
<p>Texture scale is a very important visual cue that a lot of artists miss. An otherwise flawless texture will look far less realistic if it is too large or small. This is a common problem in video games, particularly, where textures may be reused on different objects to save on memory. If you can&#8217;t scale the texture because of system requirements, a handy trick that sometimes works is to scale the UVs instead.</p>
<h4>Glass Chips: Real</h4>
<p><em>What Gave it Away:</em> Wow, bubble mania! Even with macros, this shot would be difficult. The diffusion on the glass (gel?) also seems to have some sub-surface scattering and other complex lighting that most renderers would be hard-pressed to replicate with precision (yet).</p>
<h4>Green Peppers: Real</h4>
<p><em>What Gave it Away:</em> This one was tricky, because I think a render of this quality could be achieved. I knew most CG artists would make at least some of the peppers identical, or at least morphs of each other, so I immediately started looking for repeats. After a moment of study, it was clear they were all unique, and even the bottoms had a lot of fine detail. I figured the image must be real. <img src='http://www.independentdeveloper.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Thoughts? Comments? Tips and tricks for adding realism? Leave a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.independentdeveloper.com/archive/2007/11/30/why_researching_workflow_matte/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
