3Point Shader - Quality Mode on Normal Maps

I think this image pretty much speaks for itself

It solves the problems and shading errors with tangent space normal maps, and has all the advantages of object space normal maps.

The downside is it only really works with normal maps rendered in 3ds max, because each render engine renders out normal maps differently.

I’d love for unity to implement this setting and shader into its engine.

http://www.3pointstudios.com/3pointshader_help.shtml

Interesting stuff!
I’d love to have this in Unity too. That, and a tangent basis plugin for xnormal so we won’t get normal map seams in Unity. :slight_smile:

I’ve never before seen a normal map that looks as bad as the first one. Do normal maps actually look that bad in Unity now?

Seems to me like the normal map is just baked wrong.

actually, if the low poly has shading errors, the normal map wont do anything to fix or minimize them and only makes them worse. but with object space normal maps or quality mode, it completely overrides most shading errors in the lowpoly. The bake is fine, its just the realtime shaders could be doing a better job.

Normally you fix this by using more geometry to reinforce shading on the low poly.

Hmm, gotta agree on this. It looks like they took extreme examples from both ends. I’ve never seen a normal map produce the effect of the first pic’s error, but have seen it a lot with too high smoothing and too few polygons.

Currently a high percentage of geometry budget is used to combat normal map shading errors opposed to describing form.

With this you can get away with using less polygons.
It really does an amazing job, its really easy to make amazing looking normal maps with a lot less effort. Plus for any 3ds users out there, there’s a free version, so why not try it for yourself.

Oh don’t get me wrong, anything that makes normal maps easier / looks better is fine by me, lol. This uses object space normal maps right? I used to use those a lot before tangent space became the norm and have never really liked it’s limitations compared to object space (who’s own limitations I’m sure can’t be that difficult to overcome for a programmer).

It sure would be nice not to have to worry anymore about UV seams and normal map directions anymore.

its not object space normals, but it creates similar results with normal tangent normal maps generated from max.

Try generating regular grayscale bump maps and only converting them to normal map from inside Unity. I’ve found that tends to give much higher quality than bringing in normal maps themselves. It also tends to fix a number of seam problems too, and you can easily fine tune the amount later without having to go through the process of remaking them…

Hi guys. Let me clear things up here.

Twiik oblivionfeet: I understand your scepticism; however, in this case the Quality Mode modifier, shader and all associated info is freely available for unrestricted download and use, making void the need for speculation.

Hmacyt is entirely correct. The reason the shading is so bad in the first pic is because that mesh has no extra geometry to clean up vertex normals. Normally you’d have to add a significant amount of triangles to avoid sharp turns in vertex normal direction. To make this perfectly clear: Quality Mode allows you to reduce the polycount of your models, which should be interesting to unity users.

As for the demonstration - both pics use exactly the same standard 3ds max tangent space normal map.

Quality Mode rendering works exactly as described, which you can easily confirm by trying it yourself.

There’s interest in unity within 3Point and we’d be happy to help your community add support for Quality Mode normal map rendering in unity.

Hi there

Any news on this? I really really like doing normalmaps the this way as to me this simply is the “right” way of doing normalmaps. Adding extra polygons/texture seams is not the way forward. The 3 point shader allows you to have just a single smoothing group and not forcing you to split up the uvs in more shells than needed.

I strongly recommend Unity Tech to have a look at this and consider implementing it :slight_smile: