Rendering bug when layering transparent textures front and back

If I put an alpha image texture on a model created in Blender and run it on RCP or visionOS, the rendering between the front and back due to alpha will result in an unintended rendering. Details are below.

I expor ted a USDC file of a Blender-created cylindrical object wit h a PNG (wit h alpha) texture applied to t he inside, and t hen impor ted it into Reality Composer Pro.

When multiple objects t hat make extensive use of transparent textures are placed in front of and behind each ot her, t he following behaviors were obser ved in t he transparent areas

・The transparent areas do not become transparent

・The transparent areas become transparent toget her wit h t he image behind t hem

the order of t he images becomes incorrect

Best regards.

Hello @sadaotokuyama , I apologize for the delayed response.

It is difficult to prescribe an exact fix for your situation, but there are a couple of solutions you may want to try. Transparency, in general, is expensive to render and there are many optimizations that could be affecting how your content draws.

The first thing that comes to mind is that different materials (such as the different materials used for the environment cards you made in Blender) use the center of the model to estimate distance and draw order when rendering transparency. This means that if you have a smaller cylinder inside a larger cylinder, and both are using transparent textures on their material, the larger cylinder might render first since its center is actually closer to the viewer, causing the nearer faces on the smaller cylinder to render out of order. One solution may be to manually place and modify your meshes so that the operating system sorts the models based on distance from camera and renders them in the desired order.

Another solution, if you are able to edit the materials in Reality Composer Pro, is to modify the Opacity Threshold property in the Shader Graph Preview Surface node. When your content is rendered, any pixels (fragments) that are below the alpha value specified in Opacity Threshold will be skipped, causing your content to render as desired. This is likely the preferred solution, but may produce artifacts around fine details like tree branches or animal fur.

Let me know if you have any questions!

Rendering bug when layering transparent textures front and back
 
 
Q