Jump to content

Sparse Voxel Octree Reflections


Josh

1,163 views

 Share

I've now got basic specular reflections working with the sparse voxel octree system. This uses much less memory than a voxel grid or even a compressed volume texture. It also supports faster optimized ray tests, for higher quality reflections and higher resolution. Some of the images in this article were not possible to produce in my initial implementation that used volume textures.

This shot shows the reflection of just the diffuse color. Notice the red column is visible in three reflections, but not in the reflected floor. It would be possible to add a secondary bounce to add reflections in reflections:

refl.thumb.jpg.f89edc9f0d5e2aae76ecb177733fe25a.jpg

With direct lighting added to the reflection, and the resolution turned up a bit, we can see the ray tracing is getting quite detailed. Of course, we prefer to use blurred downsampled data for voxel ray tracing, but the results so far indicate there is enough data to produce a good final result:

lit.thumb.jpg.9f1c1064bf3fb6485fa1c4bb3220f047.jpg

In the shot below we are using a voxel size of about three centimeters, in a 1024x1024x1024 sparse voxel octree. A simple voxel grid would require 32 GB of video memory, but our structure fits into less than 240 MB.

reflect.thumb.jpg.78f2776c2da5d8de385ef3920f55098f.jpg

Turning the reflectivity up for all materials doesn't really look good and creates a confusing look, but it's still interesting to see. The amount of detail we see in the voxel reflections is quite good. The voxels are so high resolution we can even see the texture details of the original polygon mesh!

garage.thumb.jpg.25af39f2a78ec51e56bb8e38f3a290a7.jpg

stairs.thumb.jpg.1d8e6d6db9fd6b15d97610436e39f881.jpg

The speed of the octree traversal routine is very important here, and I am in contact with some university faculty to see about implementing something special to give you the maximum possible performance.

The next step is to downsample the octree data to display blurrier reflections. This will also be used for calculating GI.

  • Like 2
  • Upvote 1
 Share

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...