Seams in model visible

I’m importing a model from blender, and the seams in the normal mapping are very noticeable in java monkey, even though they appear as seamless in blender. I opened the .blend file in java monkey, converted it to a .j3o file, and added the texture with a .j3m material. Does anyone know what I did wrong?

(ps: I’m new to java monkey)

Here’s the head rendered in blender:,waSPv#0

And here’s the head in java monkey:,waSPv#1

Try recalculating the normals in Blender. (Edit Mode → select everything → Ctrl+N)

I was going to say generate the tangents but it seems you did according to the picture.

Blender generated normal maps are not directly usable with the lighting material, you have to invert the green channel of your normal map.

Ok, I checked the normals in blender and they are all correct. I inverted the green channel and it did make it look better, but the seams are still visible. If it helps, here’s the normal map.

The mapping appears to be making it look dark, as if the part of the model is in shade on one side of the seam, and directly lit on the other.

And here’s the same view of the model in blender.

ok…I’m still gonna try it you never know…

Did you generate the tangents for the model once imported in JME?



Right click in the scene explorer view on the model tools/Generate Tangents.

1 Like

Awesome, that fixed it! Thanks for the help. The seams are still visible if you look for them, but they’re not a jarring as before. Was normal information not preserved when I converted the model into a .j3o?

Actually normals are not enough for normal mapping you need also tangents and binormals (also referred as bitangents).

Those are the 3 axes that define the tangent space in which your normal map is sampled.

Tangents are not exported with ogre (or any other exporter afaik) so they have to be generated (you can with UVs and normal and a fair amount of math madness). Binormals are computed directly in the lighting shader with a cross product between normal and tangents.

Well that’s good to know. Thanks again!