This tutorial will show you techniques for game modelling that can change your life as they did with mine many years ago.
In Those years i developed some tools and script to optimize those techniques but you can use them in almost all softwares with basic tools.
Those tecniques are easy to understand and to use but require some experience.
Using them at best let you to do faster and better at the same time.
Press on the image to see larger.
This weapon don’t use normalmaps and have some of the edges chamfered and is very low poly 2500 triangles.
It use a normal gouraund shader and no smoothing groups and a slight reflection to better notice the precision of shading ( no unwanted bumps and deformations).
Compare it with whatever well made model using a unique smooth group an no texture and normal map.
Even highter poly never will show those super reflection catching edges.
With this tecnique is easy to have a good overall shading and perfectly sharp specular.
It performs as good as a lowpolyer non chamfered edges model with smoothing group but looks far better and have almost the same number of real vertices of a not filleted one.
All other details can be applied in normalmapping also without any hipoly version for the entire model but only for details maybe only some floating models, without subdivision but using the same techniques.
We will understand why and how to make superspecular soft edges with very few polygons without smoothing groups and why smothing groups and hard edges are so bad visually and in performances.
We will see how to improve the overall look of our shaded objects to a subdivision geometry level but with very few polygons and how to get the best out our normalmaps with a better visual quality.
This expecially apply to hard surfaces we can find in many props and enviroments, but can work with any kind of model.
Read the rest of the chapter one to understand a first easy tecnique to improve your shading.
Shading:
All lighting formulas have in common the use of a light vector that we decide, placing the right kind of light in the right place and the actual pixel normal vector calculated automatically by the normal of our model’s triangles in the process I’m going to explain.
To calculate the normal at any pixel we need to know the normal at any given point on a surface of a triangle.
We commonly use an interpolated normal vector given by the interpolation of vertex normal vector of the pixel owner triangle.
Normal vector at vertices are calculated based on an interpolation between all the normals of triangles that share that vertex.
In all this automatic process we lose a lot of control on the shading of our model.
This lack of control mainly causes bad lighting interaction due to shading issues that lead to unnatural bumps, discontinuites in the percived curvature of objects and an overall perception that something is wrong.
This become more evident with specular light due to it exponential nature.
All issues are a lot more visible and can cause some strange specular shapes or lead to surfaces that don’t catch as many specular reflections as one would expect.
Who of us have never modelled an object with very good shapes and topology just to discover how bad it reacts to lighting?
To fix those problems, 90% of people create hard edges to divide object surfaces in many smoothing groups or many poly to impose their will upon normal interpolation.
Let’s talk about smoothing groups and the creation of hard edges.
Smoothing groups are slow.They duplicate vertices unecessarely also if our program of reference doesn’t tell us.In Computer Games slow = bad but this isn’t the worst thing smooth groups do.
They fix up our surfaces while creating hard edges surrounding our groups and this is the real bad thing.
Those hard edges look orrible and are common in at least all computer games and bad prerendered artworks but actually inexistent in the real world.
All real world edges are soft with bigger or also very small fillets that capture light from a wide range of directions and so have a huge reflective potential.
Hard edges capture the light from only one direction so they have almost zero reflective potential.
Hard edges are the special guest in many productions also on nextgen consolles.
Soft Edges on box
In this Chapter we will see how to fix a box like shape without the use of any projected normalmap and smoothing group and creating a basic soft edge that can improve a lot the lighting and the silhouette of our object when it comes neat to the view.
Those 6 objects share the same overall shape.
They are rendered with per pixel lighting without any normalmapping techniques.
If we apply normalmapping on those, the overall quality of the normalmap will strongly depend on the quality we will have already reached during modelling process.
the 6th one use the first of the techniques i will explain in this series of tutorials.
You will see how it is the more optimized way to do the job.
Those 6 boxes are really different in quality.
In games we commonly see the first 4.
A box is composed of 8 vertices.
They duplicate for 3 reasons.
- different material applied to faces that share the same vertex (they actually aren’t duplicated but are rendered twice).
- vertex that lie on uv seams.
- vertex that lie on smoot group seams = on an hard edge.
The 1st box
The first one is the most common box to see in a game.
It consists always in 24 vertices indipendently by materials or uv because it uses 3 different normals for every model vertex so 3 real vertices for every one in model.
Normalmap cannot get rid of the hard edges but only introduce some unnatural specularity on face borders.
The 2nd box
The second one looks terrible but is also featured in a lot of models.
It is very fast with its 8 vertices in the best case and 24 in the worst(rare) case.
His shading has nothing to do with is silhouette and his specularity is more common for a sphere than a box.Normalmap cannot do miracles and give only an illusion of soft edge filleting while it try to transform this bad shading in something similar to a box.
The quality of the normalmapping will depend widely on the resolution and compression, giving some bad quality at near distance, showing a not perfectly clean surface.
The 3rd box
The third one looks far better in silhouette and shading and makes some good work at mid to far distance but is also the worst of all solutions, featuring in all cases 96 real vertices.
His edges can look soft at distance and capture some kind of specular at interesting angles.His vertex weight is 4 times the one of the first box.
Also In this case normalmapping cannot get rid of hard edges and is not pratical to apply normalmapping to chamfered hard edges.
The 4th box
4th is the same as 3th but with only one smooth group.
It doesn’t look correct in shading.
We notice a curvature of his planar surfaces.his edges catch as many reflections we can look for ,but his curvature is not acceptable and can look very bad in some more complex models.
Normalmap can fix almost completely this or at lest do it best to fix it but you always need a hipoly model to project and the final normalmap contain a lot of gradients compression dipendent and not as precise as floating point math.
The 5th box
this model is a midpoly solution.It features many segments on the edges to bend at our will the interpolation it looks good and no normalmap can make his shading better but it can be really inpratical in poly limited situations and however we cannot use this solution on all objects or we can easy get 10 times out of our poly budget.
This technique is commonly used in important parts of racing cars with a 2 or 3 segments chamfer.Here i we have 3 segment chamfering and however is noticeable a little gradient in lighting that suggest a curved surface.
The 6th box
The last box use my technique it is very fast because don’t use any smooth group so performs the best also with normalmapping.
Actually for a game engine is the same as the 4th and share the same polygons of the 3th and 4th.But is far better than both.
Notice how specular light is sharper on the technique i use than in the middle box that use multiple sectors but no shading adjustment but normal interpolation.
I Used a solution so simple that for years i asked myself why no game use it instead od solution 3th and 4th.
It can be applied to almost any model and not only boxes i used them to explain the rudimental of this tecnique.
Let’s analyze why is better than other solutions.
-No shading discontinuites or bumps.
-Top Quality even with normalmap that is actually neutral 255 128 128 in planar and edge parts of the texture with no compression degradation.
- Possibility to not use normalmap for all the model but only on some parts.
- No normalmaps = lot more horsepower + memory with no tangentspace structs as tangent and binormal vector3 in vertex that use the same space you can use on part of your models to have 3 other handmade uv sets.
-Good edges also with tiled normalmapping vs unique mapped with projection.
-Silhouette difference with 5th case only at very near distance and at extreme angles.
-Speed equal to 4th case and worst case only a bit slower than 2th tecnique real application (with goon not too stretched uv).
- Let to use mainly floating detail models for normalmap projection without to fight with hard surface subdivision of the entire model = less hipoly work.
- Let to have complete control over the shading with fine tuned curves and special artistic driven fx(artist driven specular shapes without to change geometry).
- No holes and better control in deformation based on normals(es pushing).
What’s the trick
Solution is as simple as natural you have only to edit your shading and don’t let application to do it for you with the interpolated normal creation.
If you never did it you aren’t stupid are only one of a million people that doesn’t give importance to model shading in their modelling workflow hoping that normalmaps can fix everything.
It can be as fast as Selecting smoothing groups.
Workflow for boxes and other planar shapes is really simple just add an edit Normal modifier after you have unwrapped the model and select a planar face and do an average normal on it.
Perform the same for all other planar faces but not on fillets or fillets intersections.
As you noticed you have forced normals to follow perfectly all the box main planes but what appens to fillets?
fillets are interpolated between main plane normals so in box case we have every fillet catch the light in a 90 degree range creating perfect specular.
Fillet intersection the same way has even more light catching power and we can notice perfectly shaped specular on edges and perfectly round specular on fillet intersection.
That’s all for this first chapter I’ will back soon with the next one showing other tecniques on other kind of shapes.Try yourself to do a model like this you can do it now with all you learned in this chapter.





[...] upon normalmapping. It will introduce techniques i use that makes normalmapped model looks better. Tutorial for Superspecular soft edges tecniques i used on this model to let it perform good edge specularity without normalmap smoothing [...]
for gods sakes man… hit the J key!