RenderKit / ospray

An Open, Scalable, Portable, Ray Tracing Based Rendering Engine for High-Fidelity Visualization
http://ospray.org
Apache License 2.0
1.01k stars 182 forks source link

variance-based volume rendering drops tiles in low intensity [but non-zero] regions of an image #453

Closed timsandstrom closed 4 years ago

timsandstrom commented 4 years ago

It's subtle, and probably hard to fix, but sometimes tiles are entirely black in areas where say, the volume clips a corner of a tile. Perhaps there's a setting I'm missing...

renderer pathtracer pixelSamples 1 maxPathLength 20 roulettePathLength 1 minContribution 1e-06 varianceGoal 1

cur/goal = inf 1 cur/goal = 2.52081 1
cur/goal = 4.25112 1
cur variance = 4.21399 total draws = 400

Image showing places some tiles are black. Though subtle, these drop outs are more noticeable during animations... https://people.nas.nasa.gov/~sandstro/ospray/var.png

johguenther commented 4 years ago

Hi Tim, sorry for the late feedback (vacation time...). This is indeed a difficult problem, I don't have a complete solution at hand right now, but some recommendations:

The implemented stopping algorithm works already hierarchically and also tries to ensure not too much difference in accumulated samples for neighboring tiles, but it is still only a heuristic and not yet perfect.

Best, Johannes

johguenther commented 4 years ago

Please re-open if there are further questions.