]> OCCT Git - occt-copy.git/commit
0027925: Visualization - implement order-independent transparency algorithm within...
authorapl <anton.poletaev@opencascade.com>
Thu, 13 Apr 2017 10:25:13 +0000 (13:25 +0300)
committerapl <anton.poletaev@opencascade.com>
Thu, 13 Apr 2017 10:25:13 +0000 (13:25 +0300)
commit2390f514ab4c801d51e5de76251dedf88690c000
treebc9fe1db25c1ed96491812d4d0a6d26940375136
parentaee5a1b3f62360f6eedeb5213df57603e33b92ca
0027925: Visualization - implement order-independent transparency algorithm within rasterization rendering

The weighted, blended order-independent transparency algorithm has been added rasterization pipeline.
It requires shaders, multiple render targets extension and floating point texture format.
Patch does not modify API and does not require porting - it adds new rendering options (vrenderparams):
- OIT-enabling flag and,
- Scalar factor [0-1] controlling influence of a fragment's depth to its visibility.
The feature supports MSAA, OpenGL ES 2.0 and ANGLE.

The usage rules for default transparency algorithm become simpler - rendering priority of transparent graphical
structures is managed automatically, therefore no need to change it application side.
33 files changed:
src/AIS/AIS_Shape.cxx
src/AIS/AIS_Triangulation.cxx
src/Graphic3d/Graphic3d_RenderingParams.hxx
src/OpenGl/FILES
src/OpenGl/OpenGl_CappingAlgo.cxx
src/OpenGl/OpenGl_CappingAlgo.hxx
src/OpenGl/OpenGl_Context.cxx
src/OpenGl/OpenGl_Context.hxx
src/OpenGl/OpenGl_Element.hxx
src/OpenGl/OpenGl_FrameBuffer.cxx
src/OpenGl/OpenGl_FrameBuffer.hxx
src/OpenGl/OpenGl_GlFunctions.hxx
src/OpenGl/OpenGl_Layer.cxx
src/OpenGl/OpenGl_Layer.hxx
src/OpenGl/OpenGl_LayerList.cxx
src/OpenGl/OpenGl_LayerList.hxx
src/OpenGl/OpenGl_OitUniformState.hxx [new file with mode: 0644]
src/OpenGl/OpenGl_PrimitiveArray.hxx
src/OpenGl/OpenGl_RenderFilter.hxx
src/OpenGl/OpenGl_SetOfShaderPrograms.hxx
src/OpenGl/OpenGl_ShaderManager.cxx
src/OpenGl/OpenGl_ShaderManager.hxx
src/OpenGl/OpenGl_ShaderProgram.cxx
src/OpenGl/OpenGl_ShaderProgram.hxx
src/OpenGl/OpenGl_Texture.cxx
src/OpenGl/OpenGl_View.cxx
src/OpenGl/OpenGl_View.hxx
src/OpenGl/OpenGl_View_Redraw.cxx
src/OpenGl/OpenGl_Workspace.cxx
src/OpenGl/OpenGl_Workspace.hxx
src/Shaders/PhongShading.fs
src/Shaders/Shaders_Declarations_glsl.pxx
src/ViewerTest/ViewerTest_ViewerCommands.cxx