- Home /
Color mismatch between meshes
I have created a simple Animal Crossing style character in Blender and exported to Unity as FBX format. The character is made up of 3 meshes, the main body and head, the eyes and the mouth. They have each been uv unwrapped and mapped to a texture.
All this imports fine into Unity but I am getting a couple of issues.
I am seeing a slight tearing between the mouth and nose meshes when viewed from a distance. When zoomed in in Scene view this disappears but in game view it is visible.
I am seeing a color mismatch between joining parts of the different meshes. These meshes are perfectly lined up. Verts are at the exact same coordinates. All materials in Unity are set up exactly the same (Standard, opaque with correct color). Normals for the model are imported but I get the same effect when set as calculated. The colors on the textures are correct and perfectly match and have been checked in Paint.net.
Am I messing something? Any help greatly appreciated.
Thanks in advance.
Did you try the unlit shader? It might be shadows from the ear that cause the color mismatch
Answer by AndrewIanBurrow · Jan 10, 2019 at 11:46 AM
Hi Klarzahs, thanks for the reply.
I have tried the unlit shader and yes the color does all blend correctly.
I have tried switching casting shadows off and receiving shadows off with the standard shader too and the lines between the colors remain. Also the change in color shade follows the exact line of the different meshes for the eyes, mouth and head/body.
The fact that it matches using an unlit shader would suggest my model and textures are ok but there is something odd going on with the standard shader and real time lighting, which is the setup I am wanting to use. Weird.
That is weird. I dont know how to fix it, sorry. Id probably merge all into one object or divide the objects along the color edges. It might be fixable if you increase the shadow quality (Edit->Project Settings -> Quality -> Shadows)
Yeah it's an odd one. I have tried adjusting the shadow quality etc... but made no difference. Tried switching shadows off completely from the one direction real time light I have and guess what, no difference! Argghhhh.
In the mean time I have combines the 3 meshes into one and generated a new uv with a new baked texture and it displays perfectly in unity. Only thing can I can think of is to do with vertex lighting on the materials. As some of the head vertices don't join on to the eyes or mouth meshes it must be affecting the way the light renders the texture. Or something along those lines.
I have built my model based on some of the models from Animal Crossing which seem to have separate eyes and mouths etc... so it must be a standard way of piecing together models. I am guessing it's either a shader problem or something I am missing or not doing right.
Thanks again for your help and comments though.
I guess it has something to do with the normals. Blender and Unity can't calculate the smoothed normals between the triangles of different meshes.