Forum Discussion
wangxiaogangan
7 years agoExplorer
some question for Blend Render Compositor layer( OvrOverlay ) with Opaque & Transparent model
First of all, Compositor layer contain two type, called them Overlay and Underlay. i have readed the post https://forums.oculusvr.com/developer/discussion/comment/536880#Comment_536880 which talk ab...
wangxiaogangan
7 years agoExplorer
I'm truly grateful for your help. And the render order your listed above is very clear to let "underlay" render right.
but i think there are some bugs for "underlay" tech because the rules you mentioned contradict with render result using unity 2017.3.1 & sdk-1.25.
1."Each layer is blended on top of the previous ones using src.a * src.rgb + (1-src.a) * dst.rgb."
first, there is a scene looks like below:
the bug appears step by step.
1.
underlay quad panel render first, texture like below
2.
blend eyebuffer with 1 result
the render result shows that:
even though the hole's alpha = 0, underlay still blend with eyebuffer( underlay render first, then the eyebuffer which contian a hole). Is it a bug for alpha = 0 and still blend two textures color not just dest.rgb? or unity sdk behaivor diff with oculus home app which develop from native framework?
you can find the scene from UnderlayExample.unitypackage at underlayquad.scene~~ change
plane imposter material's color to confirm what i said.
but i think there are some bugs for "underlay" tech because the rules you mentioned contradict with render result using unity 2017.3.1 & sdk-1.25.
1."Each layer is blended on top of the previous ones using src.a * src.rgb + (1-src.a) * dst.rgb."
2."Underlay" layers simply composite before the eye buffers"
first, there is a scene looks like below:
plane impostor using shader "Underlay Impostor" to clear alpha = 0, which "poke a hole" for the previously-rendered layer(s) to show through.
plane overlay at same position with plane impostor, "plane overlay" render a underlay quad
the bug appears step by step.
1.
underlay quad panel render first, texture like below
2.
blend eyebuffer with 1 result
while doing blend operation with already rendered "underlay", if using src.a * src.rgb + (1-src.a) * dst.rgb." ,
(first we should agree on the src.a means eyebuffer.alpha not 1's alpha in this situation )
we using "plane imposter" to poke the hole which size equals "plane imposter".
src.a( hole alpha = 0 ) * src.rgb + (1 - src.a) * dest.rgb = dest.rgb,
which means the "hole's" render result should be only the underlay's color = dest,rgb
but the result is:
the render result shows that:
even though the hole's alpha = 0, underlay still blend with eyebuffer( underlay render first, then the eyebuffer which contian a hole). Is it a bug for alpha = 0 and still blend two textures color not just dest.rgb? or unity sdk behaivor diff with oculus home app which develop from native framework?
you can find the scene from UnderlayExample.unitypackage at underlayquad.scene~~ change
plane imposter material's color to confirm what i said.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 2 years ago