这是indexloc提供的服务,不要输入任何密码
Skip to content

Accuracy of volumetric renderer #1584

@bran-jnw

Description

@bran-jnw

I am seeing rather large discrepancies between the slice render and the volumetric renderer for the smoke_test.fds, and when enabling the GPU with adaptive integration it seems to be broken on my end (latest drivers using a RTX 2080 Super on Windows 11).

This is the slice renderer (0.125 m cells):
image

Which is in line with the verification test:
image

This is the volumetric renderer without GPU with adaptive integration on (does not seem to do anything when toggling):
image

And this is the volumetric renderer using the GPU with adaptive integration:
image

And this is without adaptive integration and GPU:
image

I assume the difference/bug is in the step length done in the ray marching process since it changes when unticking the adaptive integration.

Also, from my quick view (I only looked quickly at shaders.c and the SetVolSmokeShaders section) it does not look like Smokeview uses this approach to step length:

https://github.com/cgyurgyik/fast-voxel-traversal-algorithm/blob/master/overview/FastVoxelTraversalOverview.md

But this approach actually seems to be very suitable for traversing the mesh data (voxels), enabling use of all of the available data and reducing banding due to semi-set step length being used now (with the downside of being potentially slower due to it being impossible to do loop unrolling by the shader compiler, but it is done in a while-loop now anyway and with the default way Smokeview renders currently with only one frame once the camera is still I think speed is not an issue, ).

I also have issues with adding lights, it either crashes or doesn't show anything (it does render out the position but no in-scattering is being shown on screen), but since this is not a documented feature I assume it is a WIP.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions