-
Notifications
You must be signed in to change notification settings - Fork 39
Optimize Volume Raycasting #41
Copy link
Copy link
Open
Labels
Priority: Future WorkProject: RendererIssues relating to the core hair renderer itself.Issues relating to the core hair renderer itself.Type: FeatureSomething new and shiny is being requested.Something new and shiny is being requested.Type: OptimizeSuggestion to optimize an specific algorithm.Suggestion to optimize an specific algorithm.
Metadata
Metadata
Assignees
Labels
Priority: Future WorkProject: RendererIssues relating to the core hair renderer itself.Issues relating to the core hair renderer itself.Type: FeatureSomething new and shiny is being requested.Something new and shiny is being requested.Type: OptimizeSuggestion to optimize an specific algorithm.Suggestion to optimize an specific algorithm.
Right now we have a constant step-size when raycasting (still somewhat reasonable since we jump one texel at a time), but a better solution would be to use the min-max volume (or something like that) to make "big strides" until something interesting happens (i.e. there is density there). This optimization is called Heirarchical Spatial Enumeration and can be seen over here. We already make use of Adaptive Termination but not to the same extent as they do. So yeah, right now we are constant-size-stepping through the volume at max resolution independent of the LoD. Also, doing so leads to noisy results at large distances, so we should be using a low resolution volume anyway (which means we need to modify the voxelization resolution, maybe by finding the best inverse projected size of a pixel -> voxel, and finding the resolution from there somehow).
Here is the short list of optimizations: