3D Coat shader throwing exceptions

Hi

I recently started evaluating Unity 4.1 for a new project of mine, after a 2 year absence working with other engines.

To my delight I found the editor to be even better than before, to my horror the standart shaders were just as low tech as before.

Community made shaders to the rescue:
I sculpt all my Models in 3D Coat, so the standart bumped shader is not really usable for me (it works, at least the diffuse one… but barely. The model is not smoothed, some normal map lighting is wrong, and the seams of the normal map are visible. I use a different engine that has none of this problems with the same model, so it must be the shading system (hopefully), or the way the obj file is interpreted (no idea, but blender gives me the same problems with my models).

Now, I wanted to give the shader coming with the 3D Coat Applink for Unity a spin, to see if they give me better results (and finally being able to use my glossmap).
But when I install the package I get an error, and when I select the new shader “3D-Coat/ColorNormalSpecularParallax” I get the following error for all the parameters:

“Material doesn’t have a texture property ‘_BumpMap’
UnityEditor.DockArea:OnGUI()”

Now, has this to do with the Shader being written for Unity 3.5? Anyone else having had these problems? Is there anything I can do to fix this problem myself?

I would love to combine the modeling power of 3D Coat with the cool editors of unity, but with the standart shaders it just doesn’t work.

Thanks for any help

Gian-Reto

Strange
I do all in 3D coat Character sculpting.retopo,UV mapping normalmap and texturing and I have no problem with this in Unity. to the contrary it works perfect fo me I don’t use a applink.

Well, did some tinkering today and found the problem with both issues (weird normals problem and 3d coat shader being broken):

The shader problem was simply solved by adding the following pragma:
*#pragma target 3.0*

Seems that unity tries to compile the shader for flash and other mobile platforms else. When I imported the shader again, I got a different error (about having a too small amount of registers or something), so with that and some google-fu I solved the problem quickly.

The normals problem was because I imported a normal map … as normal map. During import Unity for some reason gimps my normal map (giving it a strange blue tint). I converted the normal map to a heightmap in crazy bump, and then imported “from greyscale”, with height turned all the way down to 0.025… lo and behold, it now looks just the way it should, the normal map is fixed.

What might be the problem: 3D Coat generates my Textures with an alpha channel. Parts of the image not mapped to an UV coordinate are transparent. I guess Unity doesn’t likes that?

@ vidi: do you use the normal shader? How do you combine the glossmap from 3D Coat into the diffuse texture? Is there an option in 3D Coat to export it like that? Also, how do you import your normal map?
Even though I got it to work in the end, I would like to simplify this workaround.

Thanks for the answer

Gian-Reto

In 3D coat I export my diffuse normal and a specular map .

All what I do, is these maps drag in the shader slots . nothing complicated , no error and it looks equally how in 3D coat

I use this shader

http://forum.unity3d.com/threads/70614-Color-specular-shader?p=506708&viewfull=1#post506708

What happens during importing your normal map? Mine seems to somehow get changed. I suspect its the transparency in my normal map.

Do the normal maps you export from 3D Coat contain transparent parts?