Johannes Brunen
2017-03-08 06:36:25 UTC
Hello Carsten,
I'm playing around with the DepthPeelingStage and have written a simple example. For that I have taken the testDepthPeeling.cpp and merged it with the shaderstoragebufferobject_std430.cpp example. I have done this because I would like to have an example that uses transparent and opaque geometry and that uses the more elaborate shader code. The example is working somehow, but what I do not get right so far, is that the transparent geometry is correctly blended with the opaque geometry.
In extension to the attached example I also added the following code lines into the example:
geom1_state->setTransparencyMode(OSG::Material::TransparencyForceTransparent);
...
geom6_state->setTransparencyMode(OSG::Material::TransparencyForceTransparent);
This, however does also not bring the desired correct rendering.
Is it even possible to mix opaque and transparent geometry with the DepthPeelingStage core or is the stage incomplete with respect to that task?
How do I have to handle the task of differing actions with respect to transparency in a stage implementation at all?
How is blending of transparent and opaque rendering performed in the common case?
Could you please take a look into the example and give me some hint what I'm doing wrong here?
Additionally, I have tried to setup the HDR2 stage above of the DepthPeeling stage in another example. With that I do not get any rendering. If I replace the HDR2 stage or the DepthPeeling stage by a simple Group core I got the expected rendering for the particular stage. Do you have any idea what is missing in that scenario where both stages are active?
Best,
Johannes
P.S. I have send you a Cc because I expect the mailing list to have trouble with the example attachment, sorry for that.
I'm playing around with the DepthPeelingStage and have written a simple example. For that I have taken the testDepthPeeling.cpp and merged it with the shaderstoragebufferobject_std430.cpp example. I have done this because I would like to have an example that uses transparent and opaque geometry and that uses the more elaborate shader code. The example is working somehow, but what I do not get right so far, is that the transparent geometry is correctly blended with the opaque geometry.
In extension to the attached example I also added the following code lines into the example:
geom1_state->setTransparencyMode(OSG::Material::TransparencyForceTransparent);
...
geom6_state->setTransparencyMode(OSG::Material::TransparencyForceTransparent);
This, however does also not bring the desired correct rendering.
Is it even possible to mix opaque and transparent geometry with the DepthPeelingStage core or is the stage incomplete with respect to that task?
How do I have to handle the task of differing actions with respect to transparency in a stage implementation at all?
How is blending of transparent and opaque rendering performed in the common case?
Could you please take a look into the example and give me some hint what I'm doing wrong here?
Additionally, I have tried to setup the HDR2 stage above of the DepthPeeling stage in another example. With that I do not get any rendering. If I replace the HDR2 stage or the DepthPeeling stage by a simple Group core I got the expected rendering for the particular stage. Do you have any idea what is missing in that scenario where both stages are active?
Best,
Johannes
P.S. I have send you a Cc because I expect the mailing list to have trouble with the example attachment, sorry for that.