Next gen lighting technologies - voxelised, traced, and everything else *spawn*

Yeah! :D


Only few of the shells are reflected at all. Seems manually authored for this high detail close up.


Hard to say. Eventually they bin triangles to voxels? No idea. Maybe a bunch of multiple tech.
In the very beginning there is a metalllic door on the left side, reflecting green stuff. Seems there is a smooth switch from an image based method (dynamic probes, impostors?) to a more accurate one.
Maybe they also project textures to voxel faces. There seems no noise, but a limitation could be it only supports sharp reflections. Very impressive work! :)

On a Vega 56, this is good too. :)
 
Really nice demo here, really happy with these results. Hoping to see if this can expand out further.
 
hmmmm... maybe they link voxels to reflective shadow maps and get sharp details from there? With one more for the camera it would contain everything seen from a light and from the player. The rest could fall back to coarse voxels.
Still i miss any expected artifacts, still puzzling... :)
 
Do we know what the frame rate of this demo is? Is it realtime on Vega56 or rendered on Vega56 (then replayed at a decent frame rate)?
 
Is it realtime on Vega56 or rendered on Vega56 (then replayed at a decent frame rate)?
Why should they do such a misdirection?
I expect it to be what next gen will look like.
If i'm right, we have those costs:

Voxelization (i assumed this to be very expensive earlier, but NV VXAO says it's 1-2 ms! Cryengine does it on CPU, usually?)
Rendering reflective shadow maps (much more expensive than just depth, but shading happens there, so coherent rasterization perf! No bottleneck as in BFV). Surely timesliced... 3ms?
Tracing the voxels - similar cost than regular voxel specular, heard 1-2ms as well
Not sure if and how they link the voxel to a number of refractive shadow maps...
Refining the voxel hitpoint in RSM should be similar than SSR, so another 1-2ms.

Quite in the budget.
 
Voxels can be ray traced as well but it produces noise. SVOTI uses cone tracing. The ghosting is due to the temporal denoising.

In fact, voxel ray tracing has been supported in CryEngine (in limited form) for some time now:

https://docs.cryengine.com/display/CEMANUAL/Ray+Traced+Shadows

Yeah, but those reflections are showing a surprising amount of detail. If they are indeed voxel-based, I wonder what resolution or compression wizardry they are using.
 
Real-Time Ray Traced Reflections With CRYENGINE on a Vega 56 GPU


Looks good, however, there seems to be some weird issues with lighting and reflections between certain objects and surfaces in that video. Proper "RT" lighting, shadowing, and reflections aren't casting correctly with (or on) the police drone, and vice versa (and certain bullet casings as well). I'm not knocking the demo, it looks beautiful, but certain aspects of the demo looks quite buggy or wrong.
 
Last edited:
Why should they do such a misdirection?
I expect it to be what next gen will look like.
If i'm right, we have those costs:

I’m not saying they’re necessarily being deceptive, but in today’s age when things aren’t explicitly spelled out, I put my bullshot glasses on.
 
Yeah, but those reflections are showing a surprising amount of detail. If they are indeed voxel-based, I wonder what resolution or compression wizardry they are using.
In the Dreams paper shows a voxel renderer, which they called 'brick renderer' or something. It renders the 3 visible voxel faces with flat displacement maps, and finally the pixel shader processes those maps with a POM like method to get the details.
This would work for tracing too: Ray hits voxel, refines hitpoint, and if it turns out it misses the geometry the ray could be further traced against the next voxel.
To avoid divergence this POM step could be done within its own dispatch, followed by ray compaction. Likely after a fixed small number of misses the error from taking just the voxel hit becomes negligible, and voxels can be still large.
This could be precalculated for the static scene. In case the shading can't be found in RSMs, it could be calculated on the fly.
But may be all wrong - it all looks too good. I did not expect something could match RTX quailty but this does it seems. Can't spot any noise at all.
At 0:25 there shows some blocky reflection of lights in a window on the left, but can't tell if it's voxels or RSM texels. (The door i mentioned earlier is opening automatically, so that's likely not switching algorithms)
 
Yeah. NVs RTX Demo has some artifacts too, some objects are blurred
 

Attachments

  • SharedScreenshot.jpg
    SharedScreenshot.jpg
    137.3 KB · Views: 33
Yeah. NVs RTX Demo has some artifacts too, some objects are blurred
Not positive, but I think that may be the difference from contact hardening shadows?

edit: Oh, I read that screen shot all wrong. Yeah, in the reflection itself the content looks different. Yep!
 
Given who's developed this (Vladimir Kajalin) it is safe to assume that it's not some half-assed solution (even though it may not be "perfect"). Vlad has been working on it for years. He's been Principal Rendering Programmer at Crytek for nearly 20 years years (3 years before Tiago Sousa joined him) and is frankly the most low key dev with this status in the industry. He literally invented SSAO among other things and has been pumping out crazy things since the Dino Island/X-isle tech demo (first time I heard his name was when Cevat & Faruk showed me the demo/benchmark during the Geforce 3 launch event in Feb 2001).
 
Last edited:
Yeah most definitely, there is even an input in CE you could have to give you glossy cone traced reflections way before 5.5 (3.82 I think had it). The one thing about this demo though is that I cannot ascertain look of voxels in the reflections themselves, so I am curious how it works. Maybe it is not exactly voxels?
Like here, you can see obvious polygonal edges from a lower LOD model used in the reflection:
edge2arkm3.png

edgescrjrv.png

The reflections might be the result of ray-tracing objects represented as iso-surfaces and voxelized with marching cubes or some variant of it like explained here:
https://medium.com/zeg-ai/voxel-to-mesh-conversion-marching-cube-algorithm-43dbb0801359 or
https://www.boristhebrave.com/2018/04/15/marching-cubes-tutorial/
Instead of cube faces more accurate polygonal approximations are possible like with the midpoint or interpolation method.
 
Last edited:
The reflections might be the result of ray-tracing objects represented as iso-surfaces and voxelized with marching cubes or some variant of it like explained here:
Watching it again today i think it's more just classical raytrcing of a lower triangle LOD from the scene. Your idea would show more irregular tesselation considering the random orientation of the shells, and my ideas above would also show similar artifacts from the world space grid alignment.
The mentioning of their Total Illumination maybe is just a bit misleading towards voxels. I think they use 'voxels' only for acceleration structure here, if at all.
At distance there seems indeed a fallback to a voxel approximation, but there is only one spot in the video where i can see this. Otherwise it's too perfect.

The missing noise also made me tend to think about alternative image based tech like VSM, but now i guess the reason is simply this:
Instead of disturbing the ray directions with random angles for AA (as usual, causing noise), they use a globally equal angular offset for the whole frame (or just per normal direction, whatever).
As a result, rays having the same normal (and that's common for smooth human made materials that show sharp reflections, also for water) will keep parallel and will traverse the same nodes in acceleration structure much more likely.
Also instead noise you'd get this kind of banding / ghosting visible in the video.

So the missing noise is no hint to any spectacular new tech either. It really seems triangle raytracing mostly?

Maybe they limit themselves to only sharp reflections for now because coherent rays and no need for denoising, but the quality shown is better than needed, and more glossy reflections could be made by bilateral blur / falling back to voxels earlier?
I'd be mostly interested in options to trade accuracy vs. performance. Video is 30fps and 2K - upscaling reflections could work to get a 4K game on next gen i guess.
 
Back
Top