Extensions - Dual depth peeling rendering

Transparency without peeling

Jzy3d achieves blending by first rendering "what stands far", and then "what stands near". Its works well for scene containing homogeneous sized objects, such as tesselated surfaces, bar charts or scatter. In some case, this method provides unsatisfying visual results for the following reasons:

Transparency with peeling

Depth peeling algorithms allow a scene graph order independent transparency of intersecting objects. The left column pictures show translucent elements that are rendered with the default API's ordering method. The right column pictures show the same elements rendered by a dual depth peeling algorithm.

Our implementation of depth peeling is based on works released by L. Bavoil & Kevin Myers (NVIDIA) proposing several variants, all of them being ported in Jzy3d:

If NVIDIA link changed, you may find the original document explaining peeling here.

Peeling is implemented with GLSL shaders and thus requires a GPU able to compile and run shaders. This extension bundle a set of tools to easily work with several vertex and fragment shaders, which opens the door to you new image processing technics using modern programmable GPU. Polygon ordering
(unsatisfying) Depth peeling
(satisfying)

Requirements

The depth peeling eclipe project is linked to the core api project to remain up to date with master. To work with the API sources and examples, you will have to checkout the two projects on Github.

Troubleshooting

Some laptops may have a non activated Nvidia chip on board and instead an integrated graphics chip running (e.g. Intel), which leads to GLSL linking failure. Look at this screenshot to see how to configure your NVidia control panel.

Maturity - Prototype


Other extensions

AltStyle によって変換されたページ (->オリジナル) /