Page MenuHome

Volumes: Support lower resolution in viewport.
ClosedPublic

Authored by Jacques Lucke (JacquesLucke) on Sep 28 2020, 4:46 PM.

Details

Summary

This adds a new simplify option to the viewport display settings of a volume object. By default the value is zero, which means that there is no simplification. The resolution is reduced more and more the higher the simplification value. An increase by one doubles the voxel size, i.e. the number of cells is approximately one eighth.

Ref T73201: New volume object type.

Diff Detail

Repository
rB Blender
Branch
volume-simplify-display (branched from master)
Build Status
Buildable 10460
Build 10460: arc lint + arc unit

Event Timeline

Jacques Lucke (JacquesLucke) requested review of this revision.Sep 28 2020, 4:46 PM
Jacques Lucke (JacquesLucke) created this revision.
Brecht Van Lommel (brecht) requested changes to this revision.Sep 28 2020, 5:44 PM

One thing that is not taken into account is that simplify should have no effect for final Eevee renders. A new depsgraph is created for that so a single draw cache can still have a single resolution I think. You will need to check DEG_get_mode(depsgraph) == DAG_EVAL_RENDER.

As for the setting, I think that perhaps it's best in the scene level simplify panel, along with texture resolution, child hairs, subsurf level? It's easier to simplify an entire scene then (which may have linked datablocks that are hard to edit), even if there is less fine control per object.

That simplify panel contains 2 different ways to specify simplification. There is a max subdiv level and resolution, and a percentage of hairs. The latter behaves most similar to what you have implemented, and if we go that way I think a percentage slider is more intuitive for users than a value that halves the resolution as it increases.

We could also do a max absolute resolution. Though personally if I was redesigning these settings from scratch I'd probably all make them percentage sliders instead (and even have a single global percentage slider to reduce all types of detail). So a percentage slider has my preference.

This revision now requires changes to proceed.Sep 28 2020, 5:44 PM
  • don't simplify in render
  • add global simplify volumes setting
  • remove old simplify option

Not sure if a slider like this works best. Maybe it can be improved
by using a logarithmic scale or so. Also changing the slider
continuously is quite a heavy operation, because the conversion
to a dense grid is expensive.

In any case, given the "backend" for generating low resolution dense
volumes it's quite easy to experiment with different solutions.
Feedback by an artist could be helpful here.

I think the scale works pretty intuitively, I don't see the need to change it. Dragging indeed can be slow, but it's not that different than e.g. child particles. For these cases users can type in values.

The only thing missing here is that the setting is not in the customized Cycles simplify panel defined in intern/cycles/blender/addon/ui.py, it should be added there as well.

This revision is now accepted and ready to land.Oct 1 2020, 5:24 PM