<?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>Bruno Evangelista</title>
	<atom:link href="http://www.brunoevangelista.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brunoevangelista.com</link>
	<description>Computer Graphics and Game Programming</description>
	<lastBuildDate>Mon, 29 Oct 2012 02:47:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Siggraph 2012 Recap &#8211; Part 1</title>
		<link>http://www.brunoevangelista.com/2012/10/siggraph-2012-recap-part-1/</link>
		<comments>http://www.brunoevangelista.com/2012/10/siggraph-2012-recap-part-1/#comments</comments>
		<pubDate>Sat, 27 Oct 2012 05:10:21 +0000</pubDate>
		<dc:creator>Bruno Evangelista</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.brunoevangelista.com/?p=751</guid>
		<description><![CDATA[This year Siggraph took place in LA between 5 and 9 of August and it was pretty cool as in previous years I attended. I took a couple of notes during the conference that I though might be helpful for people couldn&#8217;t attend &#8211; although I planned to post them months ago. Hope you enjoy! =)


Talk: [...]]]></description>
			<content:encoded><![CDATA[<p>This year Siggraph took place in LA between 5 and 9 of August and it was pretty cool as in previous years I attended. I took a couple of notes during the conference that I though might be helpful for people couldn&#8217;t attend &#8211; although I planned to post them months ago. Hope you enjoy! =)</p>
<p><span><br />
<hr width="80%"/></span><br />
<strong>Talk: Pointed Illumination</strong> <a href="http://s2012.siggraph.org/attendees/sessions/100-119">http://s2012.siggraph.org/attendees/sessions/100-119</a></p>
<p><strong>Progressive Lightcuts for GPU (Phd students, Universität des Saarlandes / Intel):</strong><br />
[Lightcuts] <a href="http://www.graphics.cornell.edu/~bjw/lightcutSigTalk05.pdf">http://www.graphics.cornell.edu/~bjw/lightcutSigTalk05.pdf</a><br />
[Progressive lightcuts] <a href="http://dl.acm.org/citation.cfm?id=2343047">http://dl.acm.org/citation.cfm?id=2343047</a></p>
<ul>
<li>Light cuts adaptively approximate complex global illumination through clusters of virtual point lights (VPLs): area light, sky light, indirect illumination, etc. Steps: convert illumination to VPLs, build a light tree, for each eye ray choose a cut that best approximates the illumination. (optimization to path tracing?)</li>
<li>This work tries to “group” the contribution of lights that don’t contribute much to the final scene, e.g. are far away. (progressively averaging the lightcut images?)</li>
<li>There’s issues with VPL’s too near the surface that cause spikes in the reflection intensity (very bright aliasing), they change the attenuation formula to clamp the intensity near the surface.</li>
</ul>
<p><strong>SGRT: Scalable Mobile GPU Architecture Based on Ray Tracing (Samsung)</strong><br />
<a href="http://dl.acm.org/citation.cfm?id=2343048">http://dl.acm.org/citation.cfm?id=2343048</a></p>
<ul>
<li>Presented an architecture for real-time raytracing (based on recent papers from Samsung).</li>
<li>Fixed-function hardware for traversal and intersection (T&amp;I engine [Nah et al. 2011]) handles bounding volume hierarchy (split bounding volume, surface area heuristic, etc), ray-AABB intersection, and supports dynamic scenes.</li>
<li>Samsung Reconfigurable Processor for shading [Lee et al. 2011], supports shaders written in C-like language with branches, allowing recursive ray-tracing.</li>
<li>Uses Samsung multiplatform kernel and adaptive restart trail.</li>
</ul>
<p><strong><strong>Point-Based Global Illumination Directional Importance Mapping (Dreamworks)</strong></strong></p>
<ul>
<li>Raytracing was not used at all in Madagascar 3, their solution was to use many point lights (convert area lights to points?) and they baked them (all of them?) to environment maps (or HDR env maps).</li>
<li>They presented an importance sampling scheme to increase quality without paying the cost of handling all lights. The result video showed nice improvements on shadows, they mentioned quality similar to 4 hours of rendering in 1.5 hours with importance mapping.</li>
<li>Showed some videos of things that would be difficult to render without ray-tracing (character walking on energy cables with energy rays, motorbike shadows).</li>
</ul>
<p><strong>Ill-Loom-inating Handmade Fabric in &#8220;Brave&#8221; (Pixar)</strong></p>
<ul>
<li>Started presenting some early work they did to handle fabric in brave, as previous techniques were not good enough handling “frayed edges”, “holes”, etc.</li>
<li>His early work looked a lot like Relief Mapping, he showed demos of animation fabric with small deformations, stretching, etc. It looked pretty good. They dropped this technique as it was difficult to apply to arbitrary surfaces due to silhouette issues (again, same flaws as Relief Mapping that were only addressed for quadric surfaces).</li>
<li>Final work was based on render-man shaders that were used to generate/tessellate the surface on-the-fly.</li>
</ul>
<p><span><br />
<hr width="80%"/></span><br />
<strong>Technical papers: Image Processing</strong> <a href="http://s2012.siggraph.org/attendees/sessions/100-49">http://s2012.siggraph.org/attendees/sessions/100-49</a><br />
<a href="http://kesen.realtimerendering.com/sig2012.html">http://kesen.realtimerendering.com/sig2012.html</a></p>
<p><strong>Decoupling Algorithms From Schedules for Easy Optimization of Image-Processing Pipelines (MIT, Adobe, Stanford)</strong><br />
<a href="http://www.halide-lang.org/">www.halide-lang.org</a></p>
<ul>
<li>Decouples algorithms from schedules, allowing you to easily code and try many different scheduling approaches. New language called Halide which provides a compiler to generate code for many different architectures.</li>
<li>The scheduling is done mixing some of the available “modes”, 1 to 1 (fusion), 1 to N or N to 1. Also, the output must be in a grid. Other data structures, such as lists, trees, etc, are not supported yet.</li>
<li>It’s also difficult to write custom functions, such as a Fourier transform, using the Halide language. To handle that they would enable the “import” of functions from external libraries (apparently not currently possible)</li>
<li>Results were very good and they improved running time of a few algorithms (e.g. “Local laplacian filter”), and they did better than Intel tools (Intel TBB?)</li>
</ul>
<p><strong>Adaptive Manifolds for Real-Time High-Dimensional Filtering (UFRGS)</strong></p>
<ul>
<li>They apply high-dimensional manifold filtering over many rendered images, for example, scenes rendered with path tracing.</li>
<li>They talk about their algorithm being “aware of edges&#8221; and “temporal coherent”, so it might be possible to use for AA as well. The only issue is that for some of the results (in a video for example) they also use future frames.</li>
<li>Linear cost: 70ms for a 10MP image, and 7ms for a 1MP image (still too much for real time).</li>
</ul>
<p><strong>High-Quality Image Deblurring With Panchromatic Pixels (Kodak)</strong></p>
<ul>
<li>They talked about generation blur kernels, gathering it from images and handling invalid kernels. My understanding is that their algorithm uses two images from the same scene captured with different levels of exposure, and use it to calculate the blur kernel.</li>
<li>They also said something about using infrared sensors not sure what. They also show that their algorithm fails when there’s too much blur.</li>
</ul>
<p><strong><strong>Practical temporal Consistency for Image-Based Graphics Application (Disney Zurich)</strong></strong></p>
<ul>
<li>Talked about optical flow, temporal anti-aliasing and motion aware filtering. They compared their result with MPEG and show that it is better for their scenes.</li>
</ul>
<p><span><br />
<hr width="80%"/></span><br />
<strong>Talks: Surf &amp; Turf</strong> <a href="http://s2012.siggraph.org/attendees/sessions/100-121">http://s2012.siggraph.org/attendees/sessions/100-121</a></p>
<p><strong>From a Calm Puddle to a Stormy Ocean: Rendering Water in Uncharted (NaughtyDog)</strong><br />
<a style="font-weight: normal;" href="http://dl.acm.org/citation.cfm?id=2343050">http://dl.acm.org/citation.cfm?id=2343050</a></p>
<ul>
<li>They show the water simulation system created for Uncharted, which appears to be divided in a few parts to handle waves, ocean, etc.</li>
<li>From what I get they can use Gerstner Waves or Point Particles to add displacement/deformation and simulate ripples and waves. They can control how much stretching is going-on.</li>
<li>In the in-game indoor cinematics the water has so many particles on top of it that it looks much more impressive than the water itself.</li>
<li>Many objects in the ocean are not attached to anything and move according to the water. For that they integrate all forces applied over each object (pretty cool).</li>
</ul>
<p><strong>What if the Earth Was Flat: The Globe UI System in SSX (EA)</strong><br />
<a href="http://dl.acm.org/citation.cfm?id=2343051">http://dl.acm.org/citation.cfm?id=2343051</a></p>
<ul>
<li>This talk covered the development of the UI in the SSX game. I wasn’t really impressed by it and the problems they solved look quite old to me.</li>
<li>Relaxed Cone Relief Mapping was used to render all the details in their globe, as I remember it, this accelerates the per-pixel ray-tracing by using a safe-cone (don’t intersect the geometry) and a relaxed code (intersects the geometry only once). The silhouettes in the zoom-in image look better than I expected.</li>
<li>They shown how they fixed issues using perspective interpolation instead of just linear interpolation on the sphere&#8230;</li>
</ul>
<p><strong>Adaptive Level-of-Detail System for End of Nations (Petroglyph Games)</strong><br />
<a style="font-weight: normal;" href="http://dl.acm.org/citation.cfm?id=2343052">http://dl.acm.org/citation.cfm?id=2343052</a></p>
<ul>
<li>They presented a lod system that handles LOD in many different subsystems and has a nice level of scalability.</li>
<li>Their LOD system would handle lod on meshes, materials, effects, screen resolution (need to confirm?), etc. They have an in-game menu where they would force an specific render time and the game would scale details to make it real-time again.</li>
<li>The results were good, they would remove most of the particles (in a smart way), remove effects, and even do things like rendering a different subset of all objects per frame. Those changes were also fast enough that they wouldn’t introduce problems while “teleporting” to other maps of the map that were running smoothly.</li>
</ul>
<p><strong>Screen Space Decals in Warhammer 40,000: Space Marine (Relic)</strong><br />
<a href="http://dl.acm.org/citation.cfm?id=2343053">http://dl.acm.org/citation.cfm?id=2343053</a></p>
<ul>
<li>They presented an algorithm to render decals by projecting a 3D box on top of their G-Buffer and rendering the decals in screen space.</li>
<li>There were some issues presented when the projected box intersects the near clipping plane of the camera, or then the normal of the surface changes too heavily (corners) under the projected box.</li>
<li>Final results were pretty impressive were this system was used to add a lot of details to many parts of the game.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.brunoevangelista.com/2012/10/siggraph-2012-recap-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Final Fantasy XIV on PIX</title>
		<link>http://www.brunoevangelista.com/2010/06/final-fantasy-xiv-on-pix/</link>
		<comments>http://www.brunoevangelista.com/2010/06/final-fantasy-xiv-on-pix/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 00:33:23 +0000</pubDate>
		<dc:creator>Bruno Evangelista</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.brunoevangelista.com/?p=665</guid>
		<description><![CDATA[SquareEnix released a Final Fantasy XIV benchmark application, which according to them, displays actual maps and characters to assign a score to your PC and rate its performance for actual play of FINAL FANTASY XIV for Windows.
Being curious about the character&#8217;s polygon count and texture maps, I decided to get some information about the game [...]]]></description>
			<content:encoded><![CDATA[<p>SquareEnix released a <a href="http://www.finalfantasyxiv.com/media/benchmark/na/index.html">Final Fantasy XIV benchmark application</a>, which according to them, displays actual maps and characters to assign a score to your PC and rate its performance for actual play of FINAL FANTASY XIV for Windows.</p>
<p>Being curious about the character&#8217;s polygon count and texture maps, I decided to get some information about the game using PIX (Performance Investigator for DirectX), a tool that comes with the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3021d52b-514e-41d3-ad02-438a3ba730ba">DirectX SDK</a>. Using PIX, I ran the benchmark and when an interesting image appeared (shown in the screenshot below) I captured a Direct 3D frame, which contains all the API calls, data buffers (including vertices, textures and render targets) and shaders.</p>
<p><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/screen-render.jpg"><img class="size-large wp-image-676 alignnone" title="screen-render" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/screen-render-300x168.jpg" alt="FFXIV Screenshot" width="300" height="168" /></a></p>
<p>First I would like to say that every time I captured a Direct3D frame it came with thousands of API calls, making it difficult to find out where the interesting information really was. Also, I believe that because it is a benchmark the game is doing some repeated/unnecessary work. The following picture shows some of the rendering calls captured with PIX.</p>
<p><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/direct3d_frame.jpg"><img class="alignnone size-large wp-image-686" title="direct3d_frame" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/direct3d_frame-298x300.jpg" alt="Direct3D Frame" width="298" height="300" /></a></p>
<p>Next, I would like to investigate the rendering of the character who appears in the upper right part of the first picture. This character is draw inside the MultiScreenManager::Draw method as a set of parts/chunks. Note that in the previous picture the MultiScreenManager::Draw call was not expanded because it has lots of calls inside. The table below shows all the rendered parts/chunks of the investigated character. </p>
<table border="1" cellpadding="2">
<tbody>
<tr>
<td><strong>Part/Chunk Name&nbsp;&nbsp;&nbsp;&nbsp;</strong></td>
<td><strong>Vertex Count&nbsp;&nbsp;&nbsp;&nbsp;</strong></td>
<td><strong>Triangle Count&nbsp;&nbsp;&nbsp;&nbsp;</strong></td>
<td><strong>Vertex/Triangle Rate&nbsp;&nbsp;&nbsp;&nbsp;</strong></td>
</tr>
<tr>
<td>Head</td>
<td>1043</td>
<td>1322</td>
<td>0.788</td>
</tr>
<tr>
<td>Eye</td>
<td>50</td>
<td>64</td>
<td>0.781</td>
</tr>
<tr>
<td>Upper Body Cloth1</td>
<td>1000</td>
<td>840</td>
<td>1.190</td>
</tr>
<tr>
<td>Upper Body Cloth2</td>
<td>240</td>
<td>184</td>
<td>1.304</td>
</tr>
<tr>
<td>Upper Body Cloth3</td>
<td>654</td>
<td>752</td>
<td>0.869</td>
</tr>
<tr>
<td>Trousers</td>
<td>332</td>
<td>536</td>
<td>0.619</td>
</tr>
<tr>
<td>Hands</td>
<td>462</td>
<td>628</td>
<td>0.735</td>
</tr>
<tr>
<td>Foot Cloth</td>
<td>1008</td>
<td>434</td>
<td>2.322</td>
</tr>
<tr>
<td>Foot</td>
<td>214</td>
<td>168</td>
<td>1.273</td>
</tr>
<tr>
<td>Hair</td>
<td>939</td>
<td>1009</td>
<td>0.930</td>
</tr>
<tr>
<td><strong>TOTAL</strong></td>
<td>5942</td>
<td>5937</td>
<td>1.000</td>
</tr>
</tbody>
</table>
<p>As you can see, this character has almost 6K polygons divided into 10 chunks. All the chunks were drawn using an indexed triangle list with three DXT1 textures for diffuse color, normal map and specular map (or a mask, in some cases). I will not post any picture of the character textures but his face, for example, has three 128&#215;256 textures.</p>
<p>The analyzed chunks have an average rate of one vertex per triangle, however, in a closed mesh with lots of triangles, each vertex is shared on average by 6 faces. Therefore, it might be possible to achieve a 0.5 vertex/triangle rate but I will leave this discussion for a future post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunoevangelista.com/2010/06/final-fantasy-xiv-on-pix/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Bump Mapping Without Parametrization</title>
		<link>http://www.brunoevangelista.com/2010/06/bump-mapping-without-parametrization/</link>
		<comments>http://www.brunoevangelista.com/2010/06/bump-mapping-without-parametrization/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 03:51:54 +0000</pubDate>
		<dc:creator>Bruno Evangelista</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.brunoevangelista.com/?p=607</guid>
		<description><![CDATA[Yesterday, I read a recent paper (May 2010) from Morten Mikkelsen at Naughty Dog about a new bump mapping technique that does not require a given surface parametrization.
The idea of his work, as I understand it, was to calculate the surface parametrization at the time the surface&#8217;s fragments are begin processed in the Pixel Shader. [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I read a <a href="http://jbit.net/~sparky/sfgrad_bump/mm_sfgrad_bump.pdf">recent paper</a> (May 2010) from Morten Mikkelsen at <a href="http://www.naughtydog.com/">Naughty Dog</a> about a new bump mapping technique that does not require a given surface parametrization.</p>
<p>The idea of his work, as I understand it, was to calculate the surface parametrization at the time the surface&#8217;s fragments are begin processed in the Pixel Shader. For that purpose, he uses <em>ddx</em> and <em>ddy</em> functions to differentiate the surface&#8217;s eye-space position received from the Vertex Shader inside each fragment processed. That way, for an arbitrary triangular mesh, he does not need to store the usual per-vertex UV, tangent or bitangent (also known as binormal) parametrization vectors.</p>
<p>One disadvantage of this technique is that it relies entirely on GPUs that support Shader Model 3 but I wonder if it would not be possible/viable to differentiate the surface in a deferred pass using the PS3 SPUs.</p>
<p>I implemented Mikkelsen&#8217;s Bump Mapping technique inside my old <a href="http://www.brunoevangelista.com/wp-content/uploads/2010/03/detailed_surfaces.zip">Detailed Surfaces Viewer</a> project, making it easy for me to compare his technique with two others: Normal Mapping and Relief Mapping. My implementation differs from Mikkelsen because I still sample the surface&#8217;s height from a normal/height texture using an interpolated UV coordinate, and then use the <em>ddx</em> and <em>ddy</em> functions over it.</p>
<p>The first issue that I noticed in Mikkelsen technique was that I needed to scale the height map values to increase the normal displacement and make it looks like Normal Mapping. The following pictures show a flat surface rendered with Normal Mapping (left) and Relief Mapping (right) using the same normal/height RGBA texture/map.</p>
<p><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_normal.jpg"><img class="alignnone size-large wp-image-614" title="saints_normal" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_normal-300x225.jpg" alt="Saints Normal Mapping" width="300" height="225" /> </a><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_relief.jpg"><img class="alignnone size-large wp-image-615" title="saints_relief" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_relief-300x225.jpg" alt="Saints Relief Mapping" width="300" height="225" /></a></p>
<p>The following pictures show the same flat surface rendered with Mikkelsen&#8217;s technique using the same normal/height texture. In these pictures the height values acquired from the normal/height texture were scaled using a different factor varying is ascending order between 1, 4, 16 and 32.</p>
<p><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_bump_s1.jpg"><img class="alignnone size-large wp-image-616" title="saints_bump_s1" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_bump_s1-300x225.jpg" alt="Saints Bump Mapping S1" width="300" height="225" /></a> <a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_bump_s4.jpg"><img class="alignnone size-large wp-image-620" title="saints_bump_s4" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_bump_s4-300x225.jpg" alt="Saints Bump Mapping S4" width="300" height="225" /></a><br />
<a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_bump_s16.jpg"><img class="alignnone size-large wp-image-621" title="saints_bump_s16" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_bump_s16-300x225.jpg" alt="Saints Bump Mapping S16" width="300" height="225" /></a> <a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_bump_s32.jpg"><img class="alignnone size-large wp-image-622" title="saints_bump_s32" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/saints_bump_s32-300x225.jpg" alt="Saints Bump Mapping S32" width="300" height="225" /></a></p>
<p>As you can see, the results obtained exhibits low displacement and low noise in the first pictures but better displacement and higher noise in the last ones. I would like to further analyze this noise issue to make sure I didn&#8217;t do   anything wrong and to find out how to deal with it. Note that I&#8217;m using trilinear filtering here and that the height map is the same being used by the Relief Mapping technique.</p>
<p>The following pictures compare Mikkelsen&#8217;s Bump Mapping without parametrization (first line), Normal Mapping (second line) and Relief Mapping (third line) techniques using two other normal/height maps. Note that for the first technique a height scale factor of 16x was used for both maps.</p>
<p><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/fourobjs_bump.jpg"><img class="alignnone size-large wp-image-630" title="fourobjs_bump" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/fourobjs_bump-300x225.jpg" alt="Four Objects Bump" width="300" height="225" /></a> <a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/rock_bump.jpg"><img class="alignnone size-large wp-image-633" title="rock_bump" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/rock_bump-300x225.jpg" alt="Rock Bump" width="300" height="225" /></a><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/fourobjs_normal.jpg"><img class="alignnone size-large wp-image-631" title="fourobjs_normal" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/fourobjs_normal-300x225.jpg" alt="Four Objects Normal" width="300" height="225" /></a> <a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/rock_normal.jpg"><img class="alignnone size-large wp-image-634" title="rock_normal" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/rock_normal-300x225.jpg" alt="Rock Normal" width="300" height="225" /></a><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/fourobjs_relief.jpg"><img class="alignnone size-large wp-image-632" title="fourobjs_relief" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/fourobjs_relief-300x225.jpg" alt="Four Objects Relief" width="300" height="225" /></a> <a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/rock_relief.jpg"><img class="alignnone size-large wp-image-637" title="rock_relief" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/rock_relief-300x225.jpg" alt="Rock Relief" width="300" height="225" /></a></p>
<p>I will update the <a href="http://www.brunoevangelista.com/wp-content/uploads/2010/03/detailed_surfaces.zip">Detailed Surfaces Viewer</a> project as soon as I deal with the noise problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunoevangelista.com/2010/06/bump-mapping-without-parametrization/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Homepage</title>
		<link>http://www.brunoevangelista.com/2010/06/new-homepage/</link>
		<comments>http://www.brunoevangelista.com/2010/06/new-homepage/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 22:42:41 +0000</pubDate>
		<dc:creator>Bruno Evangelista</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://bpevang.www52.a2hosting.com/?p=519</guid>
		<description><![CDATA[Almost two yeast have passed since my last post. During this time many big things happened in my live: I left my city (Belo Horizonte) and moved to Campinas to work at Tectoy Digital, I finished my M.Sc. in Computer Science, and finally, I got married! In the mean time, I also went to Siggraph [...]]]></description>
			<content:encoded><![CDATA[<p>Almost two yeast have passed since my last post. During this time many big things happened in my live: I left my city (Belo Horizonte) and moved to Campinas to work at <a href="http://www.tectoydigital.com">Tectoy Digital</a>, I finished my M.Sc. in Computer Science, and finally, I got married! In the mean time, I also went to Siggraph 2009 as a Student Volunteer, and a new version of our <a href="http://www.brunoevangelista.com/publications/">XNA book</a> was published. So many things have happened that I will not be able to talk about all of them now.</p>
<p>I was trying to update this website for a long time but after joining <a href="http://www.tectoydigital.com">Tectoy Digital</a> I could not find any free time to do that. Fortunately, I could find some time to work on this website again in the past weeks and after a lot of word it is finally ready! I tried to port all the content from my previous website to this new one but I decided to drop some old posts and projects leaving more space for the new stuff that is coming.</p>
<p>This new site was made using <a href="http://www.wordpress.com">Wordpress</a> and it has some features that I believe everyone will enjoy, such as commenting the posts or rating it. In the following weeks I will try to post some materials (projects and talks) that I worked in the past two years, as well as some interesting news. I hope you enjoy this new website!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunoevangelista.com/2010/06/new-homepage/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[projects] XNAnimation 0.7</title>
		<link>http://www.brunoevangelista.com/2010/02/projects-xnanimation-0-7/</link>
		<comments>http://www.brunoevangelista.com/2010/02/projects-xnanimation-0-7/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 18:05:49 +0000</pubDate>
		<dc:creator>Bruno Evangelista</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://bpevang.www52.a2hosting.com/?p=281</guid>
		<description><![CDATA[

XNAnimation 0.7 Beta3  [C# / XNA / Win32+Xbox360] &#8211; Feb 2010

XNAnimation is a skeletal animation library for XNA, which allows developers to easily manipulate, playback, interpolate and blend animations. Main features:

Plays animations forward and backward with speed and loop controls.
Supports linear, cubic and spherical keyframe interpolation, with translation, orientation and scale channels being interpolated separately.
Supports [...]]]></description>
			<content:encoded><![CDATA[<div class="post_leftitem"><img class="alignleft size-thumbnail wp-image-292" title="xnanimation" src="http://www.brunoevangelista.com/wp-content/uploads/2010/02/xnanimation-128x96.png" alt="XNAnimation Library" width="128" height="96" /></div>
<div class="post_rightitem">
<p><strong><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/03/XNAnimation_0.7.0.0_BETA3.zip">XNAnimation 0.7 Beta3  [C# / XNA / Win32+Xbox360] &#8211; Feb 2010</a></strong><strong><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/03/XNAnimation_0.7.0.0_BETA3.zip"><br />
</a></strong></p>
<p>XNAnimation is a skeletal animation library for XNA, which allows developers to easily manipulate, playback, interpolate and blend animations. Main features:</p>
<ul>
<li>Plays animations forward and backward with speed and loop controls.</li>
<li>Supports linear, cubic and spherical keyframe interpolation, with translation, orientation and scale channels being interpolated separately.</li>
<li>Supports cross fade blending between animation clips.</li>
<li>Supports meshes with up to 80 bones.</li>
<li>Supports resource sharing (skeletons, animations and meshes).</li>
<li>Skin meshes on the GPU (SM 2.0/3.0), while interpolate and blend poses on the CPU.</li>
</ul>
<p>[<a href="http://xnanimation.codeplex.com/">Homepage</a> | <a href="http://www.youtube.com/watch?v=F5IPglddQes">Video1 YouTube</a> | <a href="http://www.youtube.com/watch?v=77wfrXvOkIQ">Video2 YouTube</a> | <a href="http://www.brunoevangelista.com/wp-content/uploads/2010/02/XNAnimation.avi">Video1 AVI</a>]</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.brunoevangelista.com/2010/02/projects-xnanimation-0-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://bpevang.www52.a2hosting.com/wp-content/uploads/2010/02/XNAnimation.avi" length="6219866" type="video/x-msvideo" />
<enclosure url="http://www.brunoevangelista.com/wp-content/uploads/2010/02/XNAnimation.avi" length="6219866" type="video/x-msvideo" />
		</item>
		<item>
		<title>[books] Beginning XNA3 PT</title>
		<link>http://www.brunoevangelista.com/2010/01/publications_beginningxna3_pt/</link>
		<comments>http://www.brunoevangelista.com/2010/01/publications_beginningxna3_pt/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 23:52:47 +0000</pubDate>
		<dc:creator>Bruno Evangelista</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Publications]]></category>

		<guid isPermaLink="false">http://bpevang.www52.a2hosting.com/?p=190</guid>
		<description><![CDATA[

XNA 3.0 para Desenvolvimento de Jogos no Windows, Zune e Xbox 360. (PT)
LOBAO, Alexandre S.; EVANGELISTA, Bruno P.; FARIAS, José A. L.; OLIVEIRA, Patryck P.
BRASPORT 2010

]]></description>
			<content:encoded><![CDATA[<div class="post_leftitem"><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/01/xna3pt_book.jpg"><img class="alignleft size-thumbnail wp-image-195" title="xna3pt_book" src="http://www.brunoevangelista.com/wp-content/uploads/2010/01/xna3pt_book-96x96.jpg" alt="Desenvolvimento de Jogos para XNA 3.0" width="96" height="96" /></a></div>
<div class="post_rightitem">
<p><strong><a href="http://www.brasport.com.br/index.php?dispatch=products.view&amp;product_id=610">XNA 3.0 para Desenvolvimento de Jogos no Windows, Zune e Xbox 360. (PT)</a></strong></p>
<p>LOBAO, Alexandre S.; EVANGELISTA, Bruno P.; FARIAS, José A. L.; OLIVEIRA, Patryck P.</p>
<p><strong>BRASPORT 2010</strong></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.brunoevangelista.com/2010/01/publications_beginningxna3_pt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[papers] Master Thesis</title>
		<link>http://www.brunoevangelista.com/2009/12/publications_masterthesis/</link>
		<comments>http://www.brunoevangelista.com/2009/12/publications_masterthesis/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 00:22:10 +0000</pubDate>
		<dc:creator>Bruno Evangelista</dc:creator>
				<category><![CDATA[Papers]]></category>
		<category><![CDATA[Publications]]></category>

		<guid isPermaLink="false">http://bpevang.www52.a2hosting.com/?p=198</guid>
		<description><![CDATA[

Real-Time Rendering of Fur Applied Over Arbitrary Three-Dimensional Meshes Obtained From Real World Objects. (PT)
EVANGELISTA, Bruno P.
UFMG, M.Sc. Thesis 2009 [Abstract &#124; Slides &#124; Video YouTube]

]]></description>
			<content:encoded><![CDATA[<div class="post_leftitem"><a href="http://www.brunoevangelista.com/wp-content/uploads/2009/12/fur_rendering.png"><img class="alignleft size-thumbnail wp-image-207" title="fur_rendering" src="http://www.brunoevangelista.com/wp-content/uploads/2009/12/fur_rendering-128x96.png" alt="Fur Rendering Over Arbitrary Meshes" width="128" height="96" /></a></div>
<div class="post_rightitem">
<p><strong><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/03/master_thesis.pdf">Real-Time Rendering of Fur Applied Over Arbitrary Three-Dimensional Meshes Obtained From Real World Objects. (PT)</a></strong></p>
<p>EVANGELISTA, Bruno P.</p>
<p><strong>UFMG, M.Sc. Thesis 2009</strong> [<a href="http://www.brunoevangelista.com/wp-content/uploads/2009/12/abstract_fur_rendering.txt">Abstract</a> | <a href="http://www.brunoevangelista.com/wp-content/uploads/2009/12/fur_rendering_slides.pdf">Slides</a> | <a href="http://www.youtube.com/watch?v=Z8LBrV4QoRs">Video YouTube</a>]</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.brunoevangelista.com/2009/12/publications_masterthesis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[projects] Fur Rendering</title>
		<link>http://www.brunoevangelista.com/2009/06/projects-fur-rendering/</link>
		<comments>http://www.brunoevangelista.com/2009/06/projects-fur-rendering/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 00:00:40 +0000</pubDate>
		<dc:creator>Bruno Evangelista</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.brunoevangelista.com/?p=571</guid>
		<description><![CDATA[

Fur Rendering [C++ / DirectX10 / Win32] &#8211; Jun 2009
Real-time fur rendering over arbitrary meshes. The fur is rendered as multiple mesh layers, where fur is applied through environment (Cube/Sphere) mapping.  Main features:

Controls: fur density, thickness, height, color, and number of layers.
Pre-process meshes reordering and indexing vertices for cache.
Pre-process meshes&#8217; positions and normals providing a [...]]]></description>
			<content:encoded><![CDATA[<div class="post_leftitem"><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/fur_rendering.jpg"><img class="alignleft size-thumbnail wp-image-574" title="fur_rendering" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/fur_rendering-128x96.jpg" alt="Fur Rendering" width="128" height="96" /></a></div>
<div class="post_rightitem">
<p><strong><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/06/shellmap_fur_dx10.zip">Fur Rendering [C++ / DirectX10 / Win32] &#8211; Jun 2009</a></strong></p>
<p>Real-time fur rendering over arbitrary meshes. The fur is rendered as multiple mesh layers, where fur is applied through environment (Cube/Sphere) mapping.  Main features:</p>
<ul>
<li>Controls: fur density, thickness, height, color, and number of layers.</li>
<li>Pre-process meshes reordering and indexing vertices for cache.</li>
<li>Pre-process meshes&#8217; positions and normals providing a better  distribution of position/normals used for addressing the environment  mapping.</li>
</ul>
<p>[<a href="http://www.youtube.com/watch?v=Z8LBrV4QoRs">Video YouTube</a>]</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.brunoevangelista.com/2009/06/projects-fur-rendering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.brunoevangelista.com/wp-content/uploads/2010/02/XNAnimation.avi" length="6219866" type="video/x-msvideo" />
		</item>
		<item>
		<title>[books] Beginning XNA3</title>
		<link>http://www.brunoevangelista.com/2009/04/publications_beginningxna3/</link>
		<comments>http://www.brunoevangelista.com/2009/04/publications_beginningxna3/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 22:33:37 +0000</pubDate>
		<dc:creator>Bruno Evangelista</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Publications]]></category>

		<guid isPermaLink="false">http://bpevang.www52.a2hosting.com/?p=169</guid>
		<description><![CDATA[

Beginning XNA 3.0 Game Programming: From Novice to Professional. (EN)
LOBAO, Alexandre S.; EVANGELISTA, Bruno P.; FARIAS, José A. L.; GROOTJANS, Riemer.
APRESS 2009 [Source Code]

]]></description>
			<content:encoded><![CDATA[<div class="post_leftitem"><a href="http://www.brunoevangelista.com/wp-content/uploads/2010/03/xna3_book.jpg"><img class="alignleft size-medium wp-image-170" title="xna3_book" src="http://www.brunoevangelista.com/wp-content/uploads/2010/03/xna3_book-128x128.jpg" alt="XNA Beginning XNA 3.0 Book" width="96" height="96" /></a></div>
<div class="post_rightitem">
<p><strong><a href="http://www.amazon.com/Beginning-XNA-3-0-Game-Programming/dp/1430218177/">Beginning XNA 3.0 Game Programming: From Novice to Professional. (EN)</a></strong></p>
<p>LOBAO, Alexandre S.; EVANGELISTA, Bruno P.; FARIAS, José A. L.; GROOTJANS, Riemer.</p>
<p><strong>APRESS 2009</strong> [<a href="http://apress.com/book/downloadfile/4355">Source Code</a>]</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.brunoevangelista.com/2009/04/publications_beginningxna3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Attending to Siggraph 2008</title>
		<link>http://www.brunoevangelista.com/2008/07/attending-to-siggraph-2008/</link>
		<comments>http://www.brunoevangelista.com/2008/07/attending-to-siggraph-2008/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 14:18:37 +0000</pubDate>
		<dc:creator>Bruno Evangelista</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://bpevang.www52.a2hosting.com/?p=511</guid>
		<description><![CDATA[Siggraph is the world&#8217;s premiere  conference for Computer Graphics and Interactive Techniques. It is a  huge conference, attended by tens of thousands of people, and this year  it will be held on Los Angeles. Well, this year I will attend to  Siggraph for the first time and as a Student Volunteer!!!

Siggraph’s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.siggraph.org/">Siggraph</a> is the world&#8217;s premiere  conference for Computer Graphics and Interactive Techniques. It is a  huge conference, attended by tens of thousands of people, and this year  it will be held on Los Angeles. Well, this year I will attend to  Siggraph for the first time and as a Student Volunteer!!!</p>
<p><img class="aligncenter size-full wp-image-512" title="Siggraph08" src="http://www.brunoevangelista.com/wp-content/uploads/2010/06/Siggraph08.jpg" alt="Siggraph" width="426" height="240" /></p>
<p>Siggraph’s Student Volunteer is great program that provides students  with a Full Conference Pass which allows you to go almost anywhere in  the conference.  As a volunteer you can apply for 18 or 30 hours of  work, and if you apply for 30 hours you can also be awarded with  housing. It was the second time that I applied for the volunteer  program, and fortunately, I was accepted! =D</p>
<p><strong>Are you attending to <a href="http://www.siggraph.org/s2008/">Siggraph</a> this year? I would really like to meet you there. It will be my first  time there and I would like to meet a lot of people.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunoevangelista.com/2008/07/attending-to-siggraph-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
