refactor: volume rendering layer and perspective panel interactions
- Dominant language
- TypeScript
- Stars
- 1.5k
- Forks
- 389
- Avg merge
- 3d 21h
- Merged PRs (30d)
- 3
Description
For volume rendering in neuroglancer the responsibility of the volume rendering render layer and the perspective panel are a little blurred. For example, the volume rendering `restoreDrawingBuffersAndState` is an example of a function which likely should be fully the responsibility of the panel, even if the volume rendering needs to return something from it's `draw` method to help the `panel` to do this. In addition to this slight blurring of responsibilities, the `panel` has a lot of management code for the volume rendering drawing. This was ok for a first pass, and the perspective panel drawing code wasn't too complex. But since then we've added adaptive downsampling, there is the upcoming SSAO addition in #993, and we'd also like to think about expanding the picking priority code that currently uses a stencil buffer for opaque (in depth order) > transparent (in depth order) > transparent with picking disabled (in depth order) to also allow per layer type priorities within these current tiers. This complexity suggests moving some management complexity out of the panel and into a volume rendering drawing manager, again similar to #993.
Contributor guide
Assessment
This issue has not been assessed yet.