Dear users of unity,
I have been creating hundreds of models throughout these past months and never got into using “normal maps” at all. (and I regret it now!)
For all people new to unity, and new to 3D modelling, who are making assets and such; I definitely recommend including normals. I did not include any for a while, and see why my packs were not selling at first. But updates have been made, and i’m very happy with the outcomes.
Anybody looking for extra tutorials on making normal maps very easy, let me know!
Here is just a basic pillar from my “Dungeon and Cemetery Kit” soon to be released:
We’ve decided to move away from normal maps for a lot of the current game. The issue with the pic above is the fact you’ve not baked the normal map in with diffuse, which would be a correct comparison. Then you would see almost zero difference.
Also that image there is probably the worst example for normal maps - non organics. Normal maps excel when you use them for organics, to give the impression of a much higher polycount than it actually is.
Well yes, maybe not the “best” pic as an example. And also, is common sense to use normals for most objects etc.
Just stating that people should use them if not already. Im just one of thousands of artists, and did want this post to be for others to say who is right or wrong, so my apologies.
Just showing an easy way to do it, for those with not much experience!
It’s certainly a must if you’re taking advantage of lighting and textures. I’m taking a class next semester on shaders! The models will all be textureless and a solid color, and the shader will do all of the detail and color that is seen at runtime.
If the lighting is static and you use a lot of unique, non-tiling textures, you can certainly bake “fake normal shading” into the diffuse and it looks great.
For everything else, normals are pretty great. Even for simple things like rounded corners.
Yes, normal maps are overrated when placed next to awesome art. We tend to model the detail in instead, which looks far nicer. This is trivial with box like shapes in the OP, but for organics we use the occasional normal map. And, moving lights are far less common than you expect in games, and gunshot/fx flashes are so brief it doesn’t contribute well enough.
Well, sure, but you still want awesome art and detailed models when using normal maps. Awesome art won’t get any worse with normal maps; it will just improve dynamic lighting cues making its underlying awesomeness more apparent at runtime.
The trade-off is really “static vs dynamic” not “awesomeness vs normal maps”. On a spectrum of dynamic/expensive to static/cheap you have pixel shader to vertex shader to CPU to pre-calculated, and you generally want to shift things as far to the right as you can get away with*.
Baking normals maps (or your high poly model directly) to diffuse is a big performance win because you can shift the work from the pixel (very expensive) to pre-calculated (essentially free). You will, of course, lose specular highlights and the ability to change the lighting colour, direction, and intensity at runtime. Whether that performance and quality trade-off is good or bad is a judgement call based on the type of game you’re creating and your other design/hardware constraints.
Normal maps themselves are actually a counter-example. In that case, however, you are saving the CPU/vertex shader the work of dealing with potentially millions or billions of vertices by baking them down into a texture which the GPU can handle per-pixel relatively easily.
Execution is much faster with 50-100k more verts than using normals for PowerVR hardware in our game, so we’re sparing with the normal maps. During this process we found that normal maps didn’t always improve the visual quality. For some things, they simply don’t for example where lighting is fixed. So there is no point.
For desktop and console, yes. Not for mobile. dot in frag is really quite punishing for these devices we’ve found.
We aren’t particularly using vertex colours. We use textures, and lots of them. I don’t think you understand what I’m saying. I meant higher polygon meshes as opposed to using normal mapping for pvr architecture.
No, I understand. But for many models a higher detailed mesh would allow for vertex colors to work as a texturing alternative and give a nice performance boost(Of course it depends on the visual style)
No there’s not much benefit from using vertex colours instead of a texture. The texture is usually a fixed cost for the fragment shader, and pvr will prefetch this texture anyway. So unless you’re using a ton of textures, there’s not really a performance gain from using vertex colour only. You’d save a multiply at best after the initial lookup (which was likely prefetched).
For a typical GPU you would probably not see much difference.