Archived issue #0023236
Visualization - transparency for XCAFPrs_AISObject not computed correctly
Description
For transparent XCAFPrs_AISObjects it does not seem to matter which one is front. OCCT seems to calculate the pixel color value only once.
Look at the DRAW reproducer and the attached pictures. It doesn't matter whether the grey boxes are in front of the green ones or behind them.
Look at the DRAW reproducer and the attached pictures. It doesn't matter whether the grey boxes are in front of the green ones or behind them.
Steps to reproduce
Draw reproducer:
ReadStep D Attachment 2 (STEP)
XShow D
vfit
vsetdispmode 1
XSetTransparency D 0.5
Rotate the view now.
ReadStep D Attachment 2 (STEP)
XShow D
vfit
vsetdispmode 1
XSetTransparency D 0.5
Rotate the view now.
Additional information
This issue might be related to 23123
Public activity
4 archived notes
Participants are labeled by their role within this record.
Issue 23123 does not solve this problem.
Dear Commenter 2,
please close the issue as out of future plans.
please close the issue as out of future plans.
Just to clarify the reason why this issue should be closed, I remind once again that the OpenGL rasterizer in OCCT currently implements only good old simplified transparency mechanism based on alpha blending. This technique is known as order-dependent, i.e. the results depends on the order in which primitives are drawn. Spatial relations between transparent objects (overlapping in the view) do not matter - that leads to incorrect visual results when the actual Z order in the eye space differs from the drawing order (in other words, when the front object is drawn first).
There are methods that propose reasonable trade-off between the frame rate and correctness of transparency, e.g. depth peeling. Currently, we do not have plans to implement any advanced transparency algorithms, however, we are ready to consider such a request on a commercial base.
Meanwhile, OCCT ray tracing renderer can be recommended when it is critical to obtain better visual results, because it implements physically correct transparency algorithm.
There are methods that propose reasonable trade-off between the frame rate and correctness of transparency, e.g. depth peeling. Currently, we do not have plans to implement any advanced transparency algorithms, however, we are ready to consider such a request on a commercial base.
Meanwhile, OCCT ray tracing renderer can be recommended when it is critical to obtain better visual results, because it implements physically correct transparency algorithm.
OCCT ray tracing renderer can be recommended when it is critical to obtain better visual results