Jump to content

Voxel Cone Step Tracing - Emission and Motion


Josh

1,322 views

 Share

Adding emission into the cascaded voxel cone step tracing global illumination and dynamic reflections system (SEO ftw) was simple enough:

There's some slight trailing but it looks okay to me. There is a bit of a "glitch" in that when the emissive surface gets near the wall, the ambient occlusion kicks in, even though the sphere is self-illuminating. This happens because the emission color is mixed with the light voxel during the rasterization step. I could fix this by storing emission in a separate texture, but I don't think the increase memory and processing time are justifiable and this is acceptable as-is.

Changing the center of the voxel grid will probably cause the whole scene to display the same trailing, and at that point I think that would look really bad. I'm thinking the contents of the volume texture probably need to be shifted over when the camera moves one voxel unit. Can a texture be copied to itself in Vulkan? Let's see:

Quote

Each region in pRegions is copied from the source image to the same region of the destination image. srcImage and dstImage can be the same image or alias the same memory.

Hmmm, that still does not tell me if I can copy a section of overlapping memory in a texture.  Hmmm, this might be what I am looking for...

Quote

The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory

So I probably need to keep an extra "transfer" texture around to act as an intermediate image when copying the contents of the volume texture to itself.

  • Like 3
 Share

3 Comments


Recommended Comments

I spent a lot of time chasing the sparse voxel octree dragon, but my final verdict on this is that Crytek is actually a generation behind what we are doing now. I played Kingdom Come and I don't believe their tech supports indirect specular, which is the most impressive aspect of this technique. They're probably hamstringed by console support, as we saw back when Leadwerks was the first game engine using deferred lighting.

Link to comment
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...