Transparency shader problem

I have looked through:

as well as:


and tried to use the tutorial at:

The problem is using a .png texture with transparency in a material on an imported .fbx mesh from blender, when changing that material's shader to any form of transparency/diffuse, diffuse bump diffuse, etc, I am having the issue where parts of the model behind other parts are showing through, even though that area should not have any transparency (only the hair planes are intended to be using the alpha to fade out).

My main question is, is this something I, the texture artist, am able to fix (I've tried the steps in the alpha tutorial, saved it out 4 different times in-case I was or was not supposed to hide certain layers, but had no success), will this fall to the 3D model artist, or to our programmer? I am not familiar with shaders, and I am not sure our programmer has a lot of experience with them yet.

Here is an actual screenshot of what is happening (the teenager's model is all I'm concerned with in this picture, I know there is also a fuzzy box I was toying with laying around).

Any pointers in the right direction, or some help with the alpha tutorial if I have somehow done it wrong, would be extremely appreciated. I apologize if this question feels to familiar to the others that are similar, but as I am not the sole person trying to solve the problem, I am trying to figure out where the best solution lies, and whom it lies under (Modeler, Texture Artist or Programmer).

If your having this issue with character models or you only require vertex lighting I highly recommend the following shadder!

AlphaVertexLitZ Shadder

Fixed the issues I was having, hope it does the same for others.,

Here is similar problem ...

Can you try to use a Transparent/Cutout/Diffuse shader? Then you can change the alpha cutoff

I have the same problem. But I have mad a few observations (please someone correct me if I am wrong).

First the transparency problem only appears to happen if an object that also has transparent textures is behind the first object. If the object behind is a diffuse (not transparent) texture the problem does not seem to happen.

Second the transparency problem seems to be distance related. Once the transparent object is over a specific distance away from the object behind, the problem stops.

I don’t have a solution yet. By my workaround is to turn off the transparency when not needed.


function Solidify() {

var children : Renderer[];
children = GetComponentsInChildren.<Renderer>();

for (var i : Renderer in children) {

var childMaterial : Material[];

childMaterial = i.materials;
for (var j : Material in childMaterial) {
	j.shader = Shader.Find ("Diffuse");
	Debug.Log ("Child Material = " +j);
	Debug.Log ("render = " + j.shader); /*GetTexture("_MainTex"));*/

Hope this helps. I also hope someone can come up with a better solution.( I suspect the problem is quite deep and related to OpenGL or some such thing.)

old thread, but worth an answer. The problem is your mesh is unsorted, it tries to draw all polygons, but does not sort them before drawing. with a diffuse object, the z-buffer takes care of this… with an alpha object, the z-buffer is ignored, so the polygon draw order is not sorted, so further polygons may draw on top.
There is a way to solve this… the shader mentioned above does it… it renders 2 passes… one to set the z-buffer, then another to draw the object.
AlphaVertexLitZ Shader shader

If you search around, there are some similar diffuse & vertexlit shaders that do the same thing, though I haven;t found a bump one yet.