- Home /
Transparency ordering within a single mesh using the Standard shader
I'm having a non convex mesh (basically a large number of procedurally generated cubes) and use a slightly modified version of the Unity standard shader (enabling vertex colors). My endgoal is to draw some of these cubes semi transparent depending on a user action.
As long as I render the mesh opaque everything is fine as can be seen here .
Once I switch into Transparent rendering mode (without actually changing the alpha) the ordering of the cubes ist not correct anymore
I did some research and do understand that rendering transparent objects is always tricky and one obvious solution would be to not use it at all . Another one would be to draw the mesh twice (once transparent and once only the solid parts).
My questions are:
Is there something "simple" I can do to fix this problem? If not what approach would have the least impact on performance? Is there a more sophisticated algorithm for this kind of problem?
Thanks in advance for alll answers..
If I'm understanding this correctly, you can't.
You can't mix transparent and opaque objects in the same mesh, because transparent objects get rendered last. Solid objects get drawn first, and translucid objects get rendered on top, using alpha blending. If you mix it all in the same mesh, there's no way to sort them.
You need to break apart your transparent and opaque objects into distinct meshes.
Another solution (if you don't want to break apart your object) is to use submeshes, and assign a transparent shader to the submesh. That would probably solve it too.
Your answer

Follow this Question
Related Questions
How to fix transparent rendering problem 3 Answers
How would you do partial gameobject transparency on a custom mesh? 1 Answer
Transparency / depth problem 0 Answers
Problem with transparent shader 0 Answers
Objects visible through terrain 2 Answers