a raytrace voxel renderer made in Houdini


As a fan of pixel- and voxel-art I present a raytrace renderer written in Vex inside Houdini dedicated to rendering voxel based geometry.




Most voxelart is rendered with a traditional pixel based approach. Voxels are shaded like boxes; each side (and each micropolygon) independently. This always bothered me as it introduces problems (geometry can get visually noisy) and to me looses some of its simplistic charme.

The renderer raytraces diffuse illumination, reflections and refractions and merges the results into one value per voxel. This reduces the visual noise per voxel as each side gets the same shading, making it resemble 2D voxelart and sprites while still receiving physically plausible shading.

voxel shading (left) vs. pixel shading (right) – the box edges on the right create a lot of visual noise and the texture is barely readable

The code is written in Vex inside an attribute wrangle in Houdini. It works with any point cloud, but for ease of use I created my models with MagicaVoxel and imported the files with a custom python importer.


My dream is it to eventually do a whole short movie in this artstyle: animations, effects, … everything would be voxel based. For now this is still far away. Next steps for the renderer would be to make it slimmer, optimize the import process and maybe turn it into a digital asset for others to use.

Other features I want to implement are volumetric lights as well as depth of field. Especially the latter could prove to be quite interesting – still the whole effect would of course produce nothing but shaded voxels and wouldn’t look „smooth“ like one would expect.


Kategorien:Allgemein, CGISchlagwörter:, , , , , ,

1 Kommentar

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:


Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )


Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )


Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s