<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2324674317366173964</id><updated>2012-02-16T20:30:52.112-08:00</updated><title type='text'>Voxel Engine Development using NVIDIA CUDA</title><subtitle type='html'>Voxel Engine Development and Research using OpenGL Shaders and NVIDIA CUDA.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-8989381517541569731</id><published>2012-01-19T07:30:00.000-08:00</published><updated>2012-01-21T05:50:55.458-08:00</updated><title type='text'>Procedural Geometry Maps &amp; Tessellation Shaders</title><content type='html'>&lt;span style="font-family: Times, 'Times New Roman', serif; font-size: large;"&gt;In this sample, terrains and objects are created using&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Times, 'Times New Roman', serif; font-size: large;"&gt;procedural&lt;/span&gt;&lt;span style="font-family: Times, 'Times New Roman', serif; font-size: large;"&gt;&amp;nbsp;geometry maps as input for the tessellation shader. For windows in procedural buildings, hole generation is supported.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times, 'Times New Roman', serif; font-size: large;"&gt; &lt;br /&gt;&lt;u&gt;Features &lt;/u&gt;&lt;br /&gt;&lt;br /&gt;• Geometry-Map based Procedural Geometry &lt;br /&gt;• Dynamic Tesselation via Tesselation Shaders &lt;br /&gt;• Procedural Holes / Extrusions &lt;br /&gt;&lt;br /&gt;&lt;u&gt;Performance &lt;/u&gt;&lt;br /&gt;&lt;br /&gt;~ 48 FPS @ 1024x768 (no object culling) &lt;br /&gt;~ 140 FPS @ 1024x768 (with object culling) &lt;br /&gt;Used Hardware: Nvidia 560 Ti&lt;/span&gt;&lt;br /&gt;&lt;div style="direction: ltr; language: de; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/-APMYboUZgVY/Txg1YWBOlLI/AAAAAAAACKw/g8uTR-Xcs80/s1600/Bild1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/-APMYboUZgVY/Txg1YWBOlLI/AAAAAAAACKw/g8uTR-Xcs80/s400/Bild1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&amp;nbsp; &amp;nbsp;General Scene&lt;/span&gt;&lt;br /&gt;&lt;div style="direction: ltr; language: de; margin-bottom: 0pt; margin-left: 0in; margin-top: 0pt; mso-line-break-override: none; punctuation-wrap: hanging; text-align: left; unicode-bidi: embed; word-break: normal;"&gt;&lt;span style="font-size: 18pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/-OmHlwAMx0VY/Txg10TjIV4I/AAAAAAAACK4/I2gng7tCS7M/s1600/Bild2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-OmHlwAMx0VY/Txg10TjIV4I/AAAAAAAACK4/I2gng7tCS7M/s1600/Bild2.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://4.bp.blogspot.com/-q1edUnNaZa4/Txg2CnjD-jI/AAAAAAAACLA/1oU1cZFuIxs/s1600/Bild3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="139" src="http://4.bp.blogspot.com/-q1edUnNaZa4/Txg2CnjD-jI/AAAAAAAACLA/1oU1cZFuIxs/s200/Bild3.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&amp;nbsp; &amp;nbsp;With carved holes &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Wireframe&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/RpmMYpjNiM8" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/CtEGd1mkR1E" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-8989381517541569731?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/8989381517541569731/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2012/01/procedural-geometry-maps-tessellation.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/8989381517541569731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/8989381517541569731'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2012/01/procedural-geometry-maps-tessellation.html' title='Procedural Geometry Maps &amp; Tessellation Shaders'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-APMYboUZgVY/Txg1YWBOlLI/AAAAAAAACKw/g8uTR-Xcs80/s72-c/Bild1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-8743895723847303140</id><published>2011-09-24T14:37:00.000-07:00</published><updated>2011-10-10T16:04:20.904-07:00</updated><title type='text'>Tessellation Shader Sample</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;To make it easier to start with Tessellation Shaders, here a GL4.0 example.&amp;nbsp;(VS9,C++).&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The file can be downloaded from here:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://forums.nvidia.com/index.php?showtopic=210979"&gt;http://forums.nvidia.com/index.php?showtopic=210979&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Update: a first performance benchmark gives around 266 Million Polygons/second using tesselation, which is slower than using a common VBO or OpenGL DisplayList (400 MPoly/s). However, its more flexible, so geometry can be rendered much more efficient.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://4.bp.blogspot.com/-DSpDSgMPjts/Tn5IDHuslgI/AAAAAAAACKQ/rle2-FBc6RY/s1600/Tesselation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="155" src="http://4.bp.blogspot.com/-DSpDSgMPjts/Tn5IDHuslgI/AAAAAAAACKQ/rle2-FBc6RY/s200/Tesselation.png" width="200" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-8743895723847303140?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/8743895723847303140/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2011/09/tesselation-shader-tutorial-with-source.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/8743895723847303140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/8743895723847303140'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2011/09/tesselation-shader-tutorial-with-source.html' title='Tessellation Shader Sample'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-DSpDSgMPjts/Tn5IDHuslgI/AAAAAAAACKQ/rle2-FBc6RY/s72-c/Tesselation.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-2130349147461051389</id><published>2011-06-14T16:19:00.000-07:00</published><updated>2011-06-14T16:27:59.907-07:00</updated><title type='text'>Voxel Sculpting test</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-FJ52jsTtuXs/TffsuK0fqjI/AAAAAAAACJA/W1_cF36yy8k/s1600/Clipboard02.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 375px; height: 465px;" src="http://1.bp.blogspot.com/-FJ52jsTtuXs/TffsuK0fqjI/AAAAAAAACJA/W1_cF36yy8k/s320/Clipboard02.jpg" alt="" id="BLOGGER_PHOTO_ID_5618219338090654258" border="0" /&gt;&lt;/a&gt;Here a first test of using voxel sculpting with COAT3D, created in just few hours.&lt;br /&gt;&lt;br /&gt;Sculpting is done in Coat3D, the lightmap is rendered in Blender. The models polygon count is reduced using MeshLab.&lt;br /&gt;&lt;br /&gt;The UV map is not ideal in this case since its created in LithUnwrap. Using the unwrap function of Coat3D creates a seamless UV map.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-2130349147461051389?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/2130349147461051389/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2011/06/voxel-sculpting-test.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/2130349147461051389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/2130349147461051389'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2011/06/voxel-sculpting-test.html' title='Voxel Sculpting test'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-FJ52jsTtuXs/TffsuK0fqjI/AAAAAAAACJA/W1_cF36yy8k/s72-c/Clipboard02.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-8990565876737518324</id><published>2011-03-04T07:27:00.000-08:00</published><updated>2011-03-04T07:55:23.126-08:00</updated><title type='text'>Raycasting Procedural Height-map based Geometry</title><content type='html'>&lt;img src=http://www.gpstraces.com/sven/tmp/raycast_640.jpg&gt;&lt;br /&gt;&lt;br /&gt;This one is a trial to use multiple textures for defining a complex procedural 3D object. The basic idea is similar to True Impostors (&lt;a href="http://http.developer.nvidia.com/GPUGems3/gpugems3_ch21"&gt;link&lt;/a&gt;) - however with multiple maps to allow complex 3D objects. The screenshot below shows the rendering result of a biologic plant-like structure. The raycasting not optimized, but the results are promising. To render one bean, only a cube needs to be rendered - which means that its possible to render raycasted forests as well. As the geometry is procedural, also animation can be applied - as long as the animated part doesnt leave its bounding box.&lt;br /&gt;&lt;br /&gt;Demo download: &lt;a href="http://www.gpstraces.com/sven/tmp/procedural_raycast_demo.zip"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the demo, the raycasting is not optimized yet which means artifacts near thin features can be observed. For the ones of you adept with shaders - shader source is included, so you can play around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-8990565876737518324?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/8990565876737518324/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2011/03/raycasting-procedural-height-map-based.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/8990565876737518324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/8990565876737518324'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2011/03/raycasting-procedural-height-map-based.html' title='Raycasting Procedural Height-map based Geometry'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-2686090964292087857</id><published>2011-03-04T07:15:00.000-08:00</published><updated>2011-03-04T07:20:26.435-08:00</updated><title type='text'>Screen Space Displacement Mapping</title><content type='html'>The demo is an experiment to combine terrain raycasting of perlin noise  generated terrain with screen space ambient occlusions (SSAO) and screen  space displacement mapping (SSDM).&lt;br /&gt;&lt;br /&gt;The terrain is generated at the beginning of the demo as a 1024x256x1024  sized perlin noise volume data in CUDA, which is raycasted in the demo  using distance functions for acceleration. To improve the quality,  third-order texture filtering and hitpoint refinement using binary  search are included.&lt;br /&gt;&lt;br /&gt;After the first hit is found, the screen-space normal vector is computed  for shading and for the SSDM. The SSDM is not achieved using a stack of  textures as this leads to problems in case of overlapping areas for  large displacements. Instead, the SSDM is achieved in a post-process  using a high-resolution triangle mesh with two triangles per pixel. That  is the reason why sometimes articafts near the screen-boundary can be  observed.&lt;br /&gt;&lt;br /&gt;The ones of you adept in CG may play around with the shader thats included.&lt;br /&gt;&lt;br /&gt;Here the link to the Demo (needs an NVidia card as it uses CUDA):&lt;br /&gt;Link1: &lt;a href="http://www.filefront.com/17289206/PerlinTerrainRaycasting.zip/"&gt;Filefront&lt;/a&gt;&lt;br /&gt;Link2: &lt;a href="http://jump.fm/URSHD"&gt;2Shared&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(Edit) Note: As the program generates the terrain as a 256MB PBO that is  copied to the final texture, at least 768MB of GPU memory are  recommended.&lt;br /&gt;&lt;br /&gt;&lt;iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/f4bYYWnQbSU" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;I've posted this already on Gamedev (&lt;a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=582133&amp;amp;whichpage=1&amp;amp;#3705913"&gt;link&lt;/a&gt;) a while ago, but to update the Blog as well, here it is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-2686090964292087857?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/2686090964292087857/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2011/03/screen-space-displacement-mapping.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/2686090964292087857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/2686090964292087857'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2011/03/screen-space-displacement-mapping.html' title='Screen Space Displacement Mapping'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/f4bYYWnQbSU/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-1874603677332154876</id><published>2009-11-26T08:58:00.000-08:00</published><updated>2009-11-26T09:03:31.075-08:00</updated><title type='text'>Perlin Noise Terrain Raycasting</title><content type='html'>Here a first trial to raycast perlin noise on the fly for achieving volumetric terrain rendering. In the demo, a 128^3 sized random volume data is used as a base for the scenes on the screenshots above.&lt;br /&gt;&lt;br /&gt;By optimizing the empty-space skipping, it is possible to raycast reasonably large outdoor scenes at interactive framerates (20-40 fps) on a Nvidia GTX 260 GPU. The advantage of this kind of landscapes is, that they are extremely easy to handle and also that they are very memory friendly ( its just 128^3 rgba voxels = 8 MB of data ). Also can the performance easily adjusted for older graphics cards depending on the empty-space skipping configuration.&lt;br /&gt;&lt;br /&gt;The Demo can be downloaded here: &lt;a href="http://www.gpstraces.com/sven/tmp/Perlin_Noise_Raycasting.zip"&gt;Perlin_Noise_Raycasting.zip&lt;/a&gt; Controls are w,s,a,d.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/iLjbvCv1Zhg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/iLjbvCv1Zhg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-1874603677332154876?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/1874603677332154876/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/11/perlin-noise-terrain-raycasting.html#comment-form' title='14 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/1874603677332154876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/1874603677332154876'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/11/perlin-noise-terrain-raycasting.html' title='Perlin Noise Terrain Raycasting'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-1264460908074066786</id><published>2009-11-14T01:53:00.001-08:00</published><updated>2009-11-14T01:59:20.559-08:00</updated><title type='text'>SVO-Voxel-Raycasting</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_KL_vxCl-z9s/Sv5_QeE_1WI/AAAAAAAACHM/luGln1LYGQY/s1600-h/svo-demos.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5403896523819832674" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 320px; CURSOR: hand; HEIGHT: 239px" alt="" src="http://1.bp.blogspot.com/_KL_vxCl-z9s/Sv5_QeE_1WI/AAAAAAAACHM/luGln1LYGQY/s320/svo-demos.jpg" border="0" /&gt;&lt;/a&gt;Here some demos of my new sparse-voxel-octree (SVO) rayster.&lt;br /&gt;&lt;br /&gt;Technical details:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;-Storage: ca. 100 bit/voxel&lt;/div&gt;&lt;div&gt;-Stack-based&lt;/div&gt;&lt;div&gt;-Uses a variant of persistent threads &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Demo download: &lt;a href="http://www.gpstraces.com/sven/tmp/SVO-Demo-Cuda.2.3.7z"&gt;SVO-Demo-Cuda.2.3.7z &lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-1264460908074066786?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/1264460908074066786/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/11/svo-voxel-raycasting.html#comment-form' title='9 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/1264460908074066786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/1264460908074066786'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/11/svo-voxel-raycasting.html' title='SVO-Voxel-Raycasting'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KL_vxCl-z9s/Sv5_QeE_1WI/AAAAAAAACHM/luGln1LYGQY/s72-c/svo-demos.jpg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-4604925593906722705</id><published>2009-06-22T23:50:00.000-07:00</published><updated>2009-06-23T00:00:41.351-07:00</updated><title type='text'>Tile-based memory layout</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KL_vxCl-z9s/SkB7WmtltbI/AAAAAAAABc4/V81q4MoaOV4/s1600-h/tiles.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 222px;" src="http://2.bp.blogspot.com/_KL_vxCl-z9s/SkB7WmtltbI/AAAAAAAABc4/V81q4MoaOV4/s320/tiles.jpg" alt="" id="BLOGGER_PHOTO_ID_5350411985595250098" border="0" /&gt;&lt;/a&gt;After long time now another update. Next logical step in the development is to add a tile-based memory layout to allow large, unique, non-repeating landscapes. Here a first screenshot showing the tiles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-4604925593906722705?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/4604925593906722705/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/06/tile-based-memory-layout.html#comment-form' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4604925593906722705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4604925593906722705'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/06/tile-based-memory-layout.html' title='Tile-based memory layout'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KL_vxCl-z9s/SkB7WmtltbI/AAAAAAAABc4/V81q4MoaOV4/s72-c/tiles.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-4229102076170893966</id><published>2009-03-31T00:15:00.000-07:00</published><updated>2009-04-01T16:22:18.125-07:00</updated><title type='text'>More Videos</title><content type='html'>Here two videos showing the Happy Buddha scene (1024x2048x1024).&lt;br /&gt;High quality video here: &lt;a href="http://www.gpstraces.com/sven/tmp/voxel_engine_test_buddha.avi"&gt;Buddha avi&lt;/a&gt; &lt;a href="http://rapidshare.com/files/216334938/voxel_engine_test_buddha.avi.html"&gt;[mirror]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The updated demo download from today (right side, first position in the links)&lt;br /&gt;also includes the endless Buddha executable.&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bfHn6OnnAsE&amp;amp;hl=de&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/bfHn6OnnAsE&amp;amp;hl=de&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Zl9CiGJiZuc&amp;amp;hl=de&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Zl9CiGJiZuc&amp;amp;hl=de&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-4229102076170893966?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/4229102076170893966/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/more-videos.html#comment-form' title='10 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4229102076170893966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4229102076170893966'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/more-videos.html' title='More Videos'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-3159710225250087826</id><published>2009-03-30T07:03:00.000-07:00</published><updated>2009-04-01T16:22:53.635-07:00</updated><title type='text'>Video</title><content type='html'>For the ones of you who cannot run the demo for some reason, I just captured a short video of it. You can watch it below in the window or download the larger version with better quality to see more details.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gpstraces.com/sven/tmp/voxel_test_video_11.avi"&gt;Landscape AVI&lt;/a&gt; &lt;a href="http://rapidshare.com/files/216339701/voxel_test_video_11.avi.html"&gt;[mirror]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/TjmRPjnWJ5g&amp;amp;hl=de&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/TjmRPjnWJ5g&amp;amp;hl=de&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-3159710225250087826?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/3159710225250087826/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/video.html#comment-form' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3159710225250087826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3159710225250087826'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/video.html' title='Video'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-5501738861288783040</id><published>2009-03-28T10:02:00.001-07:00</published><updated>2009-03-28T11:29:42.600-07:00</updated><title type='text'>CUDA optimizations II</title><content type='html'>Today I would like to share a couple of interesting references about optimizing CUDA. There are many similariries among these presentations, but still its interesting as reading through give you new ideas about whats possible.&lt;br /&gt;&lt;br /&gt;1.) &lt;a href="http://www.blogger.com/www.eecis.udel.edu/%7Empellegr/eleg662-09s/li.pdf"&gt;Optimization Techniques for Large Data Structures on CUDA  &lt;/a&gt;&lt;br /&gt;2.) &lt;a href="http://video.ias.edu/Astro-GPU-2007-cuda1"&gt;AstroGPU - CUDA Optimization Part I&lt;/a&gt;&lt;br /&gt;3.) &lt;a href="http://video.ias.edu/Astro-GPU-2007-cuda2"&gt;AstroGPU - CUDA Optimization Part II&lt;/a&gt;&lt;br /&gt;4.) &lt;a href="http://www.ast.cam.ac.uk/%7Estg20/cuda/programming/index.html"&gt;CUDA Programming Notes &lt;/a&gt;&lt;br /&gt;5.) &lt;a href="http://developer.nvidia.com/object/nvision08-advanced-cuda.html"&gt;NVISION08: Advanced CUDA: Optimizing to Get 20x Performance&lt;/a&gt;&lt;br /&gt;6.) &lt;a href="http://developer.aquafire.org/index.php/2009/02/top-5-optimization-strategies-for-cuda/"&gt;Top 5 Optimization Strategies for CUDA&lt;/a&gt;&lt;br /&gt;7.) &lt;a href="http://sites.google.com/site/cudaiap2009/materials-1/lectures"&gt;CUDA at MIT - IAP2009&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looking at foil 3 of the first presentation, using the GPU should give an average speedup of factor 10 compared to the CPU in case the algorithm can be fully SIMD parallized. ( GPU: GTX280, 933GFlops/141.7 GB/s Mem, CPU: Intel Core 2 QX9650, 96 GFlops/12.8 GB/s Mem).&lt;br /&gt;&lt;br /&gt;Now looking at NVidias CUDA page, I am often surprised to see that some algorithms seem to have been &lt;a href="http://www.nvidia.com/object/cuda_home.html#"&gt;sped up like 100x or even more&lt;/a&gt;, compared to CPU - this seems to be rather hard to believe, taking the numbers above into account.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-5501738861288783040?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/5501738861288783040/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/cuda-optimizations-ii.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5501738861288783040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5501738861288783040'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/cuda-optimizations-ii.html' title='CUDA optimizations II'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-993126026616775489</id><published>2009-03-23T10:17:00.000-07:00</published><updated>2009-03-26T16:58:59.186-07:00</updated><title type='text'>New Benchmark Version</title><content type='html'>Today I ported the CUDA version to CPU (multicore), it is included in the updated Demo&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gpstraces.com/sven/tmp/VoxelDemos.v2.zip"&gt;[-Download-]&lt;/a&gt; (&lt;a href="http://www.nvidia.com/object/cuda_get.html"&gt;CUDA 2.1&lt;/a&gt; Required - Driver version 181.20 or newer )&lt;br /&gt;&lt;br /&gt;The first results so far are:&lt;br /&gt;&lt;br /&gt;CPU (3Ghz PentiumD) - Single/Repeated/Repeated 2xAA: 3/1.2/0.6 fps&lt;br /&gt;CPU (Intel Core2 Quad Q6600, 4x 3Ghz) - Single/Repeated/Repeated 2xAA: 15/8/5 fps&lt;br /&gt;GPU (8800GTS) -  Single/Repeated/Repeated 2xAA: 33/24/17 fps&lt;br /&gt;GPU (285GTX) -  Single/Repeated/Repeated 2xAA: 44/34/36 fps&lt;br /&gt;&lt;br /&gt;Scene is this time the complex version of the one shown in the pictures below&lt;br /&gt;(spherescape_complex.rle4).&lt;br /&gt;&lt;br /&gt;Reason for the low CPU performance is mostly due many floating point operations I guess. Changing the calculations to Integer might improve the speed. Now its the most possible fair comparison however, since CPU and GPU get the same c++ code to execute.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-993126026616775489?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/993126026616775489/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/new-benchmark-version.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/993126026616775489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/993126026616775489'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/new-benchmark-version.html' title='New Benchmark Version'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-3754003550078939984</id><published>2009-03-19T07:18:00.000-07:00</published><updated>2009-03-20T09:04:55.218-07:00</updated><title type='text'>CPU vs. GPU</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KL_vxCl-z9s/ScJUaapfWeI/AAAAAAAABMs/Q2SeubYnsZg/s1600-h/cpu-vs-gpu.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 278px; height: 320px;" src="http://1.bp.blogspot.com/_KL_vxCl-z9s/ScJUaapfWeI/AAAAAAAABMs/Q2SeubYnsZg/s320/cpu-vs-gpu.jpg" alt="" id="BLOGGER_PHOTO_ID_5314903323057281506" border="0" /&gt;&lt;/a&gt;Today I made a comparison of CPU vs. GPU, to see if it was really worth the work to write everything in CUDA rather than for CPU. [&lt;a href="http://www.gpstraces.com/sven/tmp/compare_results.ppt"&gt;detaild pics&lt;/a&gt;] &lt;a href="http://www.gpstraces.com/sven/tmp/testscene_cpu.zip"&gt;[-CPU-Demo-]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The oponents:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CPU: 3.0 Ghz Pentium D, 1GB&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;vs.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;GPU: NVidia GTX285, 1GB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the first round the CPU seems to provide a good performance, compared to the GPU - the GPU is just 3x faster than the CPU.&lt;br /&gt;&lt;br /&gt;In the second round however, the GPU already wins over CPU with a speed factor of 7.3 : 1.&lt;br /&gt;&lt;br /&gt;In the third round the CPU now lost all ground and the GPU wins about 20:1 (47.5:2.4)&lt;br /&gt;&lt;br /&gt;Finally it would be interesting to know why the GPU doesnt work linear at all. I dont have any idea why the framerate is not half if the computations are doubled or vice versa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-3754003550078939984?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/3754003550078939984/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/cpu-vs-gpu.html#comment-form' title='7 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3754003550078939984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3754003550078939984'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/cpu-vs-gpu.html' title='CPU vs. GPU'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KL_vxCl-z9s/ScJUaapfWeI/AAAAAAAABMs/Q2SeubYnsZg/s72-c/cpu-vs-gpu.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-5937872378975396156</id><published>2009-03-18T10:43:00.001-07:00</published><updated>2009-03-18T10:46:21.668-07:00</updated><title type='text'>Demo with 2x AA</title><content type='html'>Small update - the demo linked below now also includes 2xAA (not 2x2!), reducing the aliasing of distant pixels significantly. On the GTS 8800 its quite slow right now, but on the GTX285 its almost no difference to the normal version I found.&lt;br /&gt;For the GTS perhaps I will think about only applying AA to distant geometry to increase the speed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-5937872378975396156?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/5937872378975396156/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/demo-with-2x-aa.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5937872378975396156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5937872378975396156'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/demo-with-2x-aa.html' title='Demo with 2x AA'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-5792761520434100867</id><published>2009-03-17T09:18:00.000-07:00</published><updated>2009-03-17T20:07:02.192-07:00</updated><title type='text'>Now the algorithm works entirely on the GPU</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KL_vxCl-z9s/Sb_SlzQeCcI/AAAAAAAABMk/3kU_0Rt3hJ0/s1600-h/3smooth.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 182px; height: 320px;" src="http://3.bp.blogspot.com/_KL_vxCl-z9s/Sb_SlzQeCcI/AAAAAAAABMk/3kU_0Rt3hJ0/s320/3smooth.jpg" alt="" id="BLOGGER_PHOTO_ID_5314197632176753090" border="0" /&gt;&lt;/a&gt;Today I finished shifting the ray generation part to the GPU, saving another 1-4ms as well as an unnecessary memcopy. Also silhouette-smoothing is working well, together with basic anti-aliasing ( so far only for GTX2xx cards ).&lt;br /&gt;&lt;br /&gt;As for the smoothing, I tried two variants (left), and found the one in the middle looks best so far. The unsmoothed original (top)  is too edgy and the one on the bottom smoothens too much for the tree-scene which lets near rendered geometry look like a 2D impostor.&lt;br /&gt;&lt;br /&gt;The updated demo is here &lt;a href="http://www.gpstraces.com/sven/tmp/VoxelDemos.v2.zip"&gt;[-download-]&lt;/a&gt; (Cuda 2.1)&lt;br /&gt;Also containing softening for the buddha &amp;amp; dragon scenes now&lt;br /&gt;&lt;br /&gt;For the experienced ones of you, the shader-folder contains the shader in GLSL (soft.frag). You can experiment a bit by modifying the smoothing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-5792761520434100867?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/5792761520434100867/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/now-algorithm-works-entirely-on-gpu.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5792761520434100867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5792761520434100867'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/now-algorithm-works-entirely-on-gpu.html' title='Now the algorithm works entirely on the GPU'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KL_vxCl-z9s/Sb_SlzQeCcI/AAAAAAAABMk/3kU_0Rt3hJ0/s72-c/3smooth.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-7874291267200072476</id><published>2009-03-15T00:31:00.001-07:00</published><updated>2009-03-15T00:47:56.279-07:00</updated><title type='text'>Silhouette Smoothing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KL_vxCl-z9s/SbyypdngCOI/AAAAAAAABMc/ylYIjx5uBU4/s1600-h/silhouette_smoothing2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 239px;" src="http://4.bp.blogspot.com/_KL_vxCl-z9s/SbyypdngCOI/AAAAAAAABMc/ylYIjx5uBU4/s320/silhouette_smoothing2.jpg" alt="" id="BLOGGER_PHOTO_ID_5313318085785028834" border="0" /&gt;&lt;/a&gt;Today I experimented with a new shader to smoothen the silhouette based on the depth buffer. Looks not bad but its difficult to figure out the optimal parameters.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KL_vxCl-z9s/Sbyuzpndw0I/AAAAAAAABMM/4I77mGpZiRQ/s1600-h/silhouette_smoothing.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-7874291267200072476?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/7874291267200072476/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/silhouette-smoothing.html#comment-form' title='5 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/7874291267200072476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/7874291267200072476'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/silhouette-smoothing.html' title='Silhouette Smoothing'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KL_vxCl-z9s/SbyypdngCOI/AAAAAAAABMc/ylYIjx5uBU4/s72-c/silhouette_smoothing2.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-2829833992725221473</id><published>2009-03-14T11:41:00.001-07:00</published><updated>2009-03-14T12:17:00.243-07:00</updated><title type='text'>Soft Voxels II</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KL_vxCl-z9s/Sbv6XwbiNII/AAAAAAAABME/WfRiZy2kU28/s1600-h/softvoxels2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 249px;" src="http://3.bp.blogspot.com/_KL_vxCl-z9s/Sbv6XwbiNII/AAAAAAAABME/WfRiZy2kU28/s320/softvoxels2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5313115471457956994" /&gt;&lt;/a&gt;Today I improved the filtering a bit. The softening looks more nice than yesterday (also its slower a litte).  &lt;a href="http://www.gpstraces.com/sven/tmp/shader.zip"&gt;[-dl-new shaders-]&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Still I'm not yet sure if soft voxels look better than hard-edged voxels in general. It  gives the impression of missing detail and low resolution - both things which are unwanted..&lt;/div&gt;&lt;div&gt;Better would be real filtering to approximate the surface.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-2829833992725221473?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/2829833992725221473/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/soft-voxels-ii.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/2829833992725221473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/2829833992725221473'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/soft-voxels-ii.html' title='Soft Voxels II'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KL_vxCl-z9s/Sbv6XwbiNII/AAAAAAAABME/WfRiZy2kU28/s72-c/softvoxels2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-5320278101297357736</id><published>2009-03-13T12:04:00.001-07:00</published><updated>2009-03-13T12:05:46.022-07:00</updated><title type='text'>Soft Voxels</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KL_vxCl-z9s/SbquUcl1UrI/AAAAAAAABL8/Znv_MXQE94A/s1600-h/softvoxels.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://3.bp.blogspot.com/_KL_vxCl-z9s/SbquUcl1UrI/AAAAAAAABL8/Znv_MXQE94A/s320/softvoxels.jpg" alt="" id="BLOGGER_PHOTO_ID_5312750376732414642" border="0" /&gt;&lt;/a&gt;Today I added depth of field to soften the edgy voxels a littelbit. Its very simple - the smoothing radius just depends on the actual depth.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-5320278101297357736?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/5320278101297357736/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/soft-voxels.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5320278101297357736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5320278101297357736'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/soft-voxels.html' title='Soft Voxels'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KL_vxCl-z9s/SbquUcl1UrI/AAAAAAAABL8/Znv_MXQE94A/s72-c/softvoxels.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-3298652599754127131</id><published>2009-03-12T11:24:00.001-07:00</published><updated>2009-03-12T11:27:58.141-07:00</updated><title type='text'>New Release</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KL_vxCl-z9s/SblTfo4KoFI/AAAAAAAABL0/N-Gpb78Igjc/s1600-h/complex.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_KL_vxCl-z9s/SblTfo4KoFI/AAAAAAAABL0/N-Gpb78Igjc/s320/complex.jpg" alt="" id="BLOGGER_PHOTO_ID_5312369038474256466" border="0" /&gt;&lt;/a&gt;Today its time for a new release. Major mapping bugs are fixed and the colors look better now (I hope).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gpstraces.com/sven/tmp/VoxelDemos.v2.zip"&gt;[-Demo Version v2-]&lt;/a&gt; ( Cuda 2.1 )&lt;br /&gt;&lt;br /&gt;I also posted the Demo as IOTD on GDev as I think its worth to see.&lt;br /&gt;&lt;a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=527661"&gt;[-link-]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-3298652599754127131?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/3298652599754127131/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/new-release.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3298652599754127131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3298652599754127131'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/new-release.html' title='New Release'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KL_vxCl-z9s/SblTfo4KoFI/AAAAAAAABL0/N-Gpb78Igjc/s72-c/complex.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-6949313472235198351</id><published>2009-03-10T22:53:00.000-07:00</published><updated>2009-03-10T23:00:04.179-07:00</updated><title type='text'>Happy Buddha reloaded</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KL_vxCl-z9s/SbdTQ9j7ZZI/AAAAAAAABLs/Nvccck7_5ZA/s1600-h/happybuddha.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 238px;" src="http://4.bp.blogspot.com/_KL_vxCl-z9s/SbdTQ9j7ZZI/AAAAAAAABLs/Nvccck7_5ZA/s320/happybuddha.png" alt="" id="BLOGGER_PHOTO_ID_5311805836375057810" border="0" /&gt;&lt;/a&gt;This time with shading - looks more nice.&lt;br /&gt;From far its not possible to see if its polygons or voxels - only a closeup reveals what our buddha is made of.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-6949313472235198351?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/6949313472235198351/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/happy-buddha-reloaded.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/6949313472235198351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/6949313472235198351'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/happy-buddha-reloaded.html' title='Happy Buddha reloaded'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KL_vxCl-z9s/SbdTQ9j7ZZI/AAAAAAAABLs/Nvccck7_5ZA/s72-c/happybuddha.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-6919781152510570085</id><published>2009-03-10T03:22:00.003-07:00</published><updated>2009-03-10T08:45:41.556-07:00</updated><title type='text'>Any limit?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KL_vxCl-z9s/SbaK9f6uZ7I/AAAAAAAABLc/JuxaWdpBEf4/s1600-h/4000-000.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://4.bp.blogspot.com/_KL_vxCl-z9s/SbaK9f6uZ7I/AAAAAAAABLc/JuxaWdpBEf4/s320/4000-000.png" alt="" id="BLOGGER_PHOTO_ID_5311585599674542002" border="0" /&gt;&lt;/a&gt;View distance set to 4.000.000 - still interactive (18fps). To have unique voxels everywhere is a problem in this case however.&lt;br /&gt;&lt;br /&gt;Here we can also see an advantage of the RLE structure - its very easy to generate procedural mountains. With octree-raycasting it might be possible too, but right now I dont have an idea how this could work easily.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-6919781152510570085?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/6919781152510570085/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/any-limit.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/6919781152510570085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/6919781152510570085'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/any-limit.html' title='Any limit?'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KL_vxCl-z9s/SbaK9f6uZ7I/AAAAAAAABLc/JuxaWdpBEf4/s72-c/4000-000.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-1128213291050595250</id><published>2009-03-09T04:22:00.000-07:00</published><updated>2009-03-09T04:31:33.312-07:00</updated><title type='text'>Anti-Aliasing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KL_vxCl-z9s/SbT-DmEFDSI/AAAAAAAABLE/XMdU3-iPr_8/s1600-h/aas.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 231px; height: 320px;" src="http://2.bp.blogspot.com/_KL_vxCl-z9s/SbT-DmEFDSI/AAAAAAAABLE/XMdU3-iPr_8/s320/aas.jpg" alt="" id="BLOGGER_PHOTO_ID_5311149198287375650" border="0" /&gt;&lt;/a&gt;Here we can see the 4 variants of Anti-aliasing. For the quality, also the distance where the next mipmap is switched to is very important.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-1128213291050595250?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/1128213291050595250/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/anti-aliasing.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/1128213291050595250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/1128213291050595250'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/anti-aliasing.html' title='Anti-Aliasing'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KL_vxCl-z9s/SbT-DmEFDSI/AAAAAAAABLE/XMdU3-iPr_8/s72-c/aas.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-1252181947145417411</id><published>2009-03-06T23:24:00.000-08:00</published><updated>2009-03-06T23:31:04.767-08:00</updated><title type='text'>Maximal complexity ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KL_vxCl-z9s/SbIhe2aa_-I/AAAAAAAABKU/klqecT7Y6rw/s1600-h/komplex.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://2.bp.blogspot.com/_KL_vxCl-z9s/SbIhe2aa_-I/AAAAAAAABKU/klqecT7Y6rw/s320/komplex.jpg" alt="" id="BLOGGER_PHOTO_ID_5310343724509364194" border="0" /&gt;&lt;/a&gt;Here another very complex scene.&lt;br /&gt;RLE Elements total :15.4M&lt;br /&gt;RLE Elements processed:5.8M&lt;br /&gt;RLE Elements rendered:1M&lt;br /&gt;Visible Pixels:0.66M&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-1252181947145417411?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/1252181947145417411/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/maximal-complexity.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/1252181947145417411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/1252181947145417411'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/maximal-complexity.html' title='Maximal complexity ?'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KL_vxCl-z9s/SbIhe2aa_-I/AAAAAAAABKU/klqecT7Y6rw/s72-c/komplex.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-5820674148129604859</id><published>2009-03-05T09:42:00.001-08:00</published><updated>2009-03-06T03:42:37.481-08:00</updated><title type='text'>Better Performance</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KL_vxCl-z9s/SbEMIVkUwGI/AAAAAAAABJ0/5-CDRYZsfy8/s1600-h/budda.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://1.bp.blogspot.com/_KL_vxCl-z9s/SbEMIVkUwGI/AAAAAAAABJ0/5-CDRYZsfy8/s320/budda.jpg" alt="" id="BLOGGER_PHOTO_ID_5310038773014511714" border="0" /&gt;&lt;/a&gt;Today I wrote a converter for PLY.files. The first result can be seen on the left.&lt;br /&gt;&lt;br /&gt;After several optimizations, also the framerate could be increased in average about 10% and depending on the scene of up to 50%.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-5820674148129604859?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/5820674148129604859/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/03/better-performance.html#comment-form' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5820674148129604859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5820674148129604859'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/03/better-performance.html' title='Better Performance'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KL_vxCl-z9s/SbEMIVkUwGI/AAAAAAAABJ0/5-CDRYZsfy8/s72-c/budda.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-3134645814067563703</id><published>2009-02-28T01:04:00.001-08:00</published><updated>2009-02-28T10:03:38.571-08:00</updated><title type='text'>Voxelstein</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KL_vxCl-z9s/Saj_rTbaZUI/AAAAAAAABJM/FhnrNyNh-pM/s1600-h/voxelstein3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://2.bp.blogspot.com/_KL_vxCl-z9s/Saj_rTbaZUI/AAAAAAAABJM/FhnrNyNh-pM/s320/voxelstein3.jpg" alt="" id="BLOGGER_PHOTO_ID_5307773280270837058" border="0" /&gt;&lt;/a&gt;Here a scene from &lt;a href="http://voxelstein3d.blogspot.com/"&gt;Voxelstein&lt;/a&gt;&lt;br /&gt;Surprisingly, the rendering is very quick :-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gpstraces.com/sven/tmp/Voxel%20Demos.zip"&gt;Download Demo (Cuda 1.1)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's an alphaversion,&lt;br /&gt;so not expect anything ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-3134645814067563703?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/3134645814067563703/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/voxelstein.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3134645814067563703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3134645814067563703'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/voxelstein.html' title='Voxelstein'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KL_vxCl-z9s/Saj_rTbaZUI/AAAAAAAABJM/FhnrNyNh-pM/s72-c/voxelstein3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-4207904062412536347</id><published>2009-02-27T04:23:00.001-08:00</published><updated>2009-02-27T04:40:41.139-08:00</updated><title type='text'>First Color for the new Version</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KL_vxCl-z9s/SafbTTEXLiI/AAAAAAAABJE/bP2u1_qke9k/s1600-h/1024.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://2.bp.blogspot.com/_KL_vxCl-z9s/SafbTTEXLiI/AAAAAAAABJE/bP2u1_qke9k/s320/1024.jpg" alt="" id="BLOGGER_PHOTO_ID_5307451810461986338" border="0" /&gt;&lt;/a&gt;Today the scene gots a bit more colored.&lt;br /&gt;&lt;br /&gt;Benchmarks so far:&lt;br /&gt;1024x1024, 1024 rays  : 40ms / 25 fps avg.&lt;br /&gt;1024x768 , 1024 rays  : 39ms / 25 fps avg.&lt;br /&gt;1024x768 , 512   rays  : 36ms / 27 fps avg.&lt;br /&gt;1024x768 , 256   rays  : 36ms / 27 fps avg.&lt;br /&gt;512x512 , 512 rays : 21ms / 47 fps avg.&lt;br /&gt;512x512 , 256 rays : 21ms / 47 fps avg.&lt;br /&gt;512x512 , 128 rays : 21ms / 47 fps avg.&lt;br /&gt;&lt;br /&gt;So far I couldnt figure out why less rays not increase the framerate significantly - the computation cost proportional to the number of rays.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-4207904062412536347?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/4207904062412536347/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/first-color-for-new-version.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4207904062412536347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4207904062412536347'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/first-color-for-new-version.html' title='First Color for the new Version'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KL_vxCl-z9s/SafbTTEXLiI/AAAAAAAABJE/bP2u1_qke9k/s72-c/1024.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-8988316591560279192</id><published>2009-02-26T10:19:00.000-08:00</published><updated>2009-02-26T10:40:01.055-08:00</updated><title type='text'>Texture-mapping Works !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KL_vxCl-z9s/Sabdkzxuo8I/AAAAAAAABI8/tribPW5H9ug/s1600-h/Clipboard01.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://2.bp.blogspot.com/_KL_vxCl-z9s/Sabdkzxuo8I/AAAAAAAABI8/tribPW5H9ug/s320/Clipboard01.jpg" alt="" id="BLOGGER_PHOTO_ID_5307172835346523074" border="0" /&gt;&lt;/a&gt;Here an actual screenshot&lt;br /&gt;25 fps@1024x768 :-)&lt;br /&gt;View distance: 40.000 voxels&lt;br /&gt;(with mip-mapping)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-8988316591560279192?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/8988316591560279192/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/mapping-works.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/8988316591560279192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/8988316591560279192'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/mapping-works.html' title='Texture-mapping Works !'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KL_vxCl-z9s/Sabdkzxuo8I/AAAAAAAABI8/tribPW5H9ug/s72-c/Clipboard01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-3064472966746006280</id><published>2009-02-25T10:51:00.000-08:00</published><updated>2009-02-25T10:57:01.393-08:00</updated><title type='text'>New Download</title><content type='html'>Here you can download the Demos below.&lt;br /&gt;Its still the old version, so rendering at 1024x768 is not fast yet.&lt;br /&gt;&lt;br /&gt;Required: Cuda 1.1&lt;br /&gt;Filesize: 22MB&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gpstraces.com/sven/tmp/VoxelDemos.zip"&gt;VoxelDemos.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-3064472966746006280?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/3064472966746006280/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/new-download.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3064472966746006280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3064472966746006280'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/new-download.html' title='New Download'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-4532714425875290348</id><published>2009-02-24T03:33:00.001-08:00</published><updated>2009-02-24T20:32:20.815-08:00</updated><title type='text'>Progress</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KL_vxCl-z9s/SaTJzCzeR0I/AAAAAAAABI0/H2eEdQSPHbw/s1600-h/Clipboard02.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://1.bp.blogspot.com/_KL_vxCl-z9s/SaTJzCzeR0I/AAAAAAAABI0/H2eEdQSPHbw/s320/Clipboard02.jpg" alt="" id="BLOGGER_PHOTO_ID_5306588139712563010" border="0" /&gt;&lt;/a&gt;Mapping seems to work now - next step is to compute the rays accurately.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-4532714425875290348?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/4532714425875290348/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/progress.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4532714425875290348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4532714425875290348'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/progress.html' title='Progress'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KL_vxCl-z9s/SaTJzCzeR0I/AAAAAAAABI0/H2eEdQSPHbw/s72-c/Clipboard02.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-3368484705498170132</id><published>2009-02-19T22:34:00.001-08:00</published><updated>2009-02-20T00:15:46.866-08:00</updated><title type='text'>Performance</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KL_vxCl-z9s/SZ5PZfv84NI/AAAAAAAABIc/MaO1waKkgtg/s1600-h/Clipboard01.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://2.bp.blogspot.com/_KL_vxCl-z9s/SZ5PZfv84NI/AAAAAAAABIc/MaO1waKkgtg/s320/Clipboard01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5304764710526968018" /&gt;&lt;/a&gt;Today I measured the performance of the actual implementation. The result: The scene on the right has about 8.0M RLE elements in the view frustum, out of which 4.7M are not culled and 280k are visible, rendered as 450k pixels. This, at a frame-rate of about 25 means the renderer processes about 117M RLE elements/second. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My graphic cards maximum untextured triangle performance is 280M/s in case the triangles share vertices, and about 133M/s in case the triangles have independent vertices. Maximal vertex transform rate is about 400M/s.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This means, if the landscape would be visualized using splats, each rendered as single triangle, then at least 8M triangles would be required. Without any culling, this would lead to a performance of about 133/8=16 fps. Here, perhaps the geometry shader might be used to accelerate the rendering. It would be possible to send only one vertex from which the geometry shader generates a quad or triangle.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I case we would visualize each voxel inside the landscape using conventional polygons, we would have to use at least 2 triangles for each to create a quad. This means, taking shared vertices into account, We would have to render at least 16M quads, resulting in a theorethic frame rate of 280/16=17.5.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-3368484705498170132?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/3368484705498170132/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/performance.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3368484705498170132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3368484705498170132'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/performance.html' title='Performance'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KL_vxCl-z9s/SZ5PZfv84NI/AAAAAAAABIc/MaO1waKkgtg/s72-c/Clipboard01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-7430919901201637872</id><published>2009-02-19T20:52:00.000-08:00</published><updated>2009-02-19T21:01:18.393-08:00</updated><title type='text'>Common technologies to render Voxels</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:arial;"&gt;1.) Heightmap based Voxel-Terrain. &lt;a href="http://www.flipcode.com/archives/Realtime_Voxel_Landscape_Engines-Part_1_Introduction.shtml"&gt;Ref&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;2.) &lt;a href="http://www.advsys.net/ken/voxlap.htm"&gt;Voxlap&lt;/a&gt; Technology. &lt;a href="http://www.jonof.id.au/forum/index.php?topic=30"&gt;Ref1&lt;/a&gt; &lt;a href="https://eprints.kfupm.edu.sa/22135/1/22135.pdf"&gt;Ref2&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;3.) Splatting / Rendering voxels as sprites. &lt;a href="http://www-graphics.stanford.edu/software/qsplat/"&gt;Ref1&lt;/a&gt; &lt;a href="http://www.graphics.rwth-aachen.de/uploads/media/octree.pdf"&gt;Ref2&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; "&gt;4.) Sparse Voxel Octree (SVO) Raycasting. &lt;a href="http://s08.idav.ucdavis.edu/olick-current-and-next-generation-parallelism-in-games.pdf"&gt;Ref&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:arial;"&gt;5.) Mixed Octree / Regular Grid Raycasting. &lt;a href="http://artis.imag.fr/Publications/2009/CNLE09/"&gt;Ref&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:arial;"&gt;6.) Mixed Polygon / Voxel (Splatting) rendering &lt;a href="http://www.crs4.it/vic/cgi-bin/bib-page.cgi?id='Gobbetti:2005:FV'"&gt;Ref&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:arial;"&gt;7.) Rendering Voxels as Polygons.&lt;a href="http://en.wikipedia.org/wiki/Marching_cubes"&gt;Ref&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-7430919901201637872?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/7430919901201637872/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/list-of-technologies-to-render-voxels.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/7430919901201637872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/7430919901201637872'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/list-of-technologies-to-render-voxels.html' title='Common technologies to render Voxels'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-4052018897256342007</id><published>2009-02-13T23:54:00.000-08:00</published><updated>2009-02-13T23:55:37.665-08:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KL_vxCl-z9s/SZZ4v2TbJVI/AAAAAAAABHA/qnTa6yraJjY/s1600-h/skewed2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://3.bp.blogspot.com/_KL_vxCl-z9s/SZZ4v2TbJVI/AAAAAAAABHA/qnTa6yraJjY/s320/skewed2.jpg" alt="" id="BLOGGER_PHOTO_ID_5302558374701507922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Its more difficult than one could expect.. Simple texture mapping can't do the job actually. This means, a pixel-shader is necessary to do the unwrapping.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-4052018897256342007?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/4052018897256342007/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/its-more-difficult-than-one-could.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4052018897256342007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4052018897256342007'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/its-more-difficult-than-one-could.html' title=''/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KL_vxCl-z9s/SZZ4v2TbJVI/AAAAAAAABHA/qnTa6yraJjY/s72-c/skewed2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-3850359558478565782</id><published>2009-02-13T09:05:00.000-08:00</published><updated>2009-02-13T09:10:10.967-08:00</updated><title type='text'>Still some work</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KL_vxCl-z9s/SZWoxOvcSWI/AAAAAAAABGo/Xu03BNeTotY/s1600-h/skewed.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://4.bp.blogspot.com/_KL_vxCl-z9s/SZWoxOvcSWI/AAAAAAAABGo/Xu03BNeTotY/s320/skewed.jpg" alt="" id="BLOGGER_PHOTO_ID_5302329700022765922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Until the new version is complete, its necessary to stretch out the temporary rendered buffer correctly using texture mapping.. Left we can see the debug output so far.&lt;br /&gt;&lt;br /&gt;Cuda output right now is 32 bit. 16 bit depth, 8 bit color + 8 bit normal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-3850359558478565782?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/3850359558478565782/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/still-some-work.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3850359558478565782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3850359558478565782'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/still-some-work.html' title='Still some work'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KL_vxCl-z9s/SZWoxOvcSWI/AAAAAAAABGo/Xu03BNeTotY/s72-c/skewed.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-5093668301220790230</id><published>2009-02-12T18:50:00.000-08:00</published><updated>2009-02-13T07:23:55.446-08:00</updated><title type='text'>More Speed</title><content type='html'>After adjusting a couple of parameters and doing further opimizations I got get 20 fps at 1024x768 now. Update: after some more optimizations, 30 fps seem possible at 1024x768 :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-5093668301220790230?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/5093668301220790230/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/more-speed.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5093668301220790230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/5093668301220790230'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/more-speed.html' title='More Speed'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-4274837977897654833</id><published>2009-02-11T23:39:00.000-08:00</published><updated>2009-02-13T09:13:11.759-08:00</updated><title type='text'>Bunny Dataset</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KL_vxCl-z9s/SZWqHdJbPbI/AAAAAAAABGw/B_SCbzwA88Q/s1600-h/bunny.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_KL_vxCl-z9s/SZWqHdJbPbI/AAAAAAAABGw/B_SCbzwA88Q/s320/bunny.jpg" alt="" id="BLOGGER_PHOTO_ID_5302331181358595506" border="0" /&gt;&lt;/a&gt;The Bunny dataset has a very complex surface and runs only at about 7-8 fps (1024x768)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-4274837977897654833?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/4274837977897654833/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/bunny-dataset.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4274837977897654833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4274837977897654833'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/bunny-dataset.html' title='Bunny Dataset'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KL_vxCl-z9s/SZWqHdJbPbI/AAAAAAAABGw/B_SCbzwA88Q/s72-c/bunny.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-8689186834599329999</id><published>2009-02-11T20:50:00.000-08:00</published><updated>2009-02-13T09:13:48.196-08:00</updated><title type='text'>Today: The Bonsai Tree Dataset</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KL_vxCl-z9s/SZWqO548MZI/AAAAAAAABG4/NFgL2epEpXw/s1600-h/bonsai.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 241px;" src="http://3.bp.blogspot.com/_KL_vxCl-z9s/SZWqO548MZI/AAAAAAAABG4/NFgL2epEpXw/s320/bonsai.jpg" alt="" id="BLOGGER_PHOTO_ID_5302331309333164434" border="0" /&gt;&lt;/a&gt;Today I played a bit with the bonsai dataset from &lt;a href="http://www9.informatik.uni-erlangen.de/External/vollib/"&gt;here&lt;/a&gt;.The number of visible trees is about 3000.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-8689186834599329999?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/8689186834599329999/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/today-bonsai-tree-dataset.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/8689186834599329999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/8689186834599329999'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/today-bonsai-tree-dataset.html' title='Today: The Bonsai Tree Dataset'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KL_vxCl-z9s/SZWqO548MZI/AAAAAAAABG4/NFgL2epEpXw/s72-c/bonsai.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-3962722651508269180</id><published>2009-02-11T05:44:00.000-08:00</published><updated>2009-02-11T05:46:27.442-08:00</updated><title type='text'>Tips for CUDA programming</title><content type='html'>If some of you think of writing a CUDA program, here a couple of things to keep in mind:&lt;br /&gt;&lt;br /&gt;1.) Reduce the number of used registers to run more parallel threads&lt;br /&gt;2.) Reduce the number of memory accesses&lt;br /&gt;3.) Store runtime variables in registers&lt;br /&gt;4.) Do not use local arrays in your code like int a[3]={1,2,3} - better use variables such as a0=1;a1=.. etc if possible.&lt;br /&gt;5.) Write small kernels. If you have one large Kernel, try to split it up into multiple small ones - it might be faster due to less used registers.&lt;br /&gt;6.) Use textures to store your data where possible. Texture reads are cached - global memory reads aren't.&lt;br /&gt;7.) Conditional jumps should branch equal for all threads&lt;br /&gt;8.) Avoid loops which are run only by a minority of threads while the others are idle&lt;br /&gt;9.) Use fast math routines where possible&lt;br /&gt;10.) A complex calculation often is faster than a large lookup table&lt;br /&gt;11.) Writing your own cache manager that uses shared memory for caching might not be an advantage&lt;br /&gt;12.) Try to avoid multiple threads accessing the same memory element (accesses get serialized - also for shared mem)&lt;br /&gt;13.) Try coalescence of global memory accesses.&lt;br /&gt;14.) Try to avoid bank conflicts for reading memory&lt;br /&gt;15.) Small lookup tables can be stored in shared mem&lt;br /&gt;16.) Experiment with the number of parallel threads to find the optimum. In case you run out of registers, use --maxrregcount=...&lt;br /&gt;&lt;br /&gt;17.) If you can implement you method using GLSL, it might be faster than CUDA. In GLSL you get a lot of calculations for free like alpha blending, fog, z buffer testing, interpolation of variables between pixels and perhaps a better thread handling too. Also you not have to copy around the rendered image as PBO and you'll save development time since there is no bluescreen from a bad pointer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-3962722651508269180?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/3962722651508269180/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/tips-for-cuda.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3962722651508269180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/3962722651508269180'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/tips-for-cuda.html' title='Tips for CUDA programming'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2324674317366173964.post-4430786874355502453</id><published>2009-02-04T23:27:00.000-08:00</published><updated>2009-02-11T21:29:58.800-08:00</updated><title type='text'>First Colorful Screenshots</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KL_vxCl-z9s/SZOzD7xz2iI/AAAAAAAABGY/QxC1iaRibRA/s1600-h/v1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 241px;" src="http://4.bp.blogspot.com/_KL_vxCl-z9s/SZOzD7xz2iI/AAAAAAAABGY/QxC1iaRibRA/s320/v1.jpg" alt="" id="BLOGGER_PHOTO_ID_5301778066512796194" border="0" /&gt;&lt;/a&gt;Here the first colorful result of what voxel can do when used with a simple L-System.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;I tried to add the culling feature, which is used in Voxlap, but unfortunately it didnt give any speedup wth CUDA.. So back to the previous version.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;For the demo, &lt;a href="http://www.nvidia.com/object/cuda_get.html"&gt;Cuda 1.1&lt;/a&gt; is required.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gpstraces.com/sven/tmp/voxel_demo_11.Feb.09.zip"&gt;[ Download Link ( ca.10 MB ) ]&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2324674317366173964-4430786874355502453?l=voxels.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://voxels.blogspot.com/feeds/4430786874355502453/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://voxels.blogspot.com/2009/02/here-first-colorful-result-of-what.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4430786874355502453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2324674317366173964/posts/default/4430786874355502453'/><link rel='alternate' type='text/html' href='http://voxels.blogspot.com/2009/02/here-first-colorful-result-of-what.html' title='First Colorful Screenshots'/><author><name>Spacerat</name><uri>http://www.blogger.com/profile/01007372171107150216</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KL_vxCl-z9s/SZOzD7xz2iI/AAAAAAAABGY/QxC1iaRibRA/s72-c/v1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
