Weighted Blended OIT Sample demonstrates how plausible OIT (Order Independent Transparency) can be rendered in a single geometry pass without any depth sorting, as described in McGuire and Bavoil 2013. The idea is to use additive blending to compute a weighted average of the translucent colors with a weighting function that falls off as the linear depth increases. This sample compares the quality and performance of Weighted Blended OIT with Depth Peeling.
The OpenGL samples all share a common app framework and certain user interface elements, centered around the "Tweakbar" panel on the left side of the screen, which lets you interactively control certain variables in each sample.
To show and hide the Tweakbar, simply click or touch the triangular button positioned in the top-left of the view.
Other controls are listed below:
This sample is an implementation of the Weighted Blended OIT (Order Independent Transparency) algorithm from this research paper:
McGuire and Bavoil, Weighted Blended Order-Independent Transparency, Journal of Computer Graphics Techniques (JCGT), vol. 2, no. 2, 122--141, 2013.
This SDK sample has two rendering methods for order-independent transparency:
RGB
stores Sum[FragColor.rgb * FragColor.a * Weight(FragDepth)]
Alpha
stores Sum[FragColor.a * Weight(FragDepth)]
In the second draw buffer (with format R8),
R
stores Product[1.0 - FragColor.a]
NVIDIA® GameWorks™ Documentation Rev. 1.0.220830 ©2014-2022. NVIDIA Corporation and affiliates. All Rights Reserved.