Shading Tutorial for GP4 cars using normals with ZModeler v1.0 by Vicente Martí
First of all, we should remember what is a normal. A normal is a vector (with a length and
direction).
Each vertex has a normal, and the most important the normals affect the reflections of the
light on the car.
Normal's direction indicates the direction that light will be reflected from a surface,
so if you see the surface in the direction of the normal all the light will be reflected.
But, if you see the surface in other direction different to the direction of the normal
the surface reflects less light. The more the difference between the directions the less
the reflected light. You can see it in the following image:
The length of the normal indicates how much light is reflected in the direction of
the normal.
The shorter the normal the less the reflection. It's very clear in the image:
(left: long normals (normalized), right: short normals)
In this tutorial we will only work with normalized normals (all the normals will have the same length).
We will use the calculation, projection,... methods to make a nice shading to our GP4 car.
Now we are going to see several examples of surfaces:
NOTE: we will work in all the tutorial with the normals automatic update and extended mode switched off.
A slightly bended surface.
This is a surface with calculated normals (Surface -> Normals -> Calculate). The shading and the reflection is good, you can see it in the following images:
This is the surface:
And this is his shading:
But now we are going to detach the surface in two objects and calculate the normals.
The shading of the resulting surface (the new surface has two objects) is:
You can see that the shading isn't good, and it seems that the object have a line in
which the shading change.
Now, we can see the reflection in this object. The first image is the original object,
and you can see that have a good reflection and it's smooth and continuos.
But the detached surface has an ugly reflection and moreover the reflection isn't continuous.
You can see it in the following image:
We can explain it using the normals. In the first image we can see that the vertex of the
center are single. But in the second image (the detached surface) the vertex are double.
So the discontinuous shading is due to the double vertex.
I have to tell you that different objects can't share vertices and it's one
of the problems that we will have when we make GP4 cars.
A very bended surface.
This is a surface with calculated normals (Surface -> Normals -> Calculate). This surface has a sharp edge.
We will see the problems of this kind of surfaces:
This is the surface:
This surface has a bad shading, and the edge of the surface isn't good. Moreover
the reflections aren't good.
It's because a surface with a sharp edge should be like two different surfaces that reflect
the light in a different way. Yes, we can do it detaching the two parts of the surface.
First, let's see a image of the normals of these surface:
You can see that the directions of the normals next to the vertex are very different.
So to solve this we can detach the surfaces.
To detach the surfaces: Switch to faces level and Select -> Quadr, then select the faces
of one of the new surfaces:
Then go to Create -> Objects -> Detach, activate SEL mode and click on the view.
Then type the name of the new object in the dialog box that will appear.
Now you have the surface detached in two objets. If you see the shading of these two objects in the 3D view
you can see that the shading is the same. But it's because the normals are the same (remember
that we have switched of the normals automatic update and extended mode and we haven't apply any
modification to the normals).
So now we can unite the two detached objects in one. To do this select the two objects
(in objects level), then go to Create -> Objects -> UniteSelect and click on the view.
Write the name of the new object in the dialog box that will appear and now you have an object
with double vertex (this is the name of this process: the double vertex method).
But to get the correct reflection now we have to calculate the normals. Go to Surface ->
Normals -> Calculate and in objects level click on the object, now in 3D view you
will see this:
Now we have a sharped edge in 3D view, and it seems that the surface has two independent
surfaces that reflect the light in a different way. It's because in the edge there
are double vertex
And the surface on the right (vertical) and the surface on the left (horizontal) have a
different set of normals because they don't share any vertex an then the surface with
double vertex has a sharped vertex.
So double vertex are good if we want to make two independent surfaces with a sharped
edge and a discontinuously shading.
We can see that the double vertex surfaces has a discontinuous reflection:
Normal surface:
Double vertex surface:
To finish whit this surface we can see the normals in the 3D view: Normal surface:
Double vertex surface:
Now we know how to solve the problem of sharped edges, but we want a sharped edges
with a continuous shading and reflection we have to increase the number of polygons
in the bended area (without using the double vertex method),and then the edge will
be rounded. You can see it in the photos:
To conclude this part of the tutorial, if you want a surface with continuous shading and reflection
don't use double vertex. But if this surface belong to two or more objects then you have to make
first one object calculate the normals and then detach it in the new objects and don't calculate
the normals, this is very important because if you calculate the normals the shading and the
reflection will become a mess with discontinuous shading and the reflection. For example we will
use these advice when we made the body of the F1 car for GP4 (remember that a GP4 car has a lot
of different objects).
The front wing of the GP4 car.
I create the front wing but I don’t use double vertex to make it, so the shading and the reflection is awful. You can see that it's due to the normals that are oriented in a lot of directions.
To solve this I detached the upper part of the wing and then unite the two resultant parts and then calculate the normals.
The result is:
You can see that the normals are now ok, all (more or less) in the same direction.
When we create the other part of the wing we can see that the shading and the reflection is OK.
Another way is use the projection tool (using as a basis of our work the wing with the double vertex).
To do this select the upper surface of the wing ,
place the axis like in the image (the axis is the grey X), activate the SEL mode and then select
Surface -> Normals -> Projection and click on the Top view. Your normals will have a good
appearance in the 3D view. And the shading and the reflection will be good.
The differences between the calculate and the projection method are shown in the next image:
So it's your decision to use the calculate or the projection method to adjust the normals.
The body of the GP4 car.
In the following image we can see the problem of the different objects in a gp4 car.
To solve this we have to unite all the body of the car, then unite the double vertex,
calculate the normals and finally detach the car body in different objects without
calculate the normals after detach the body in different objects. So we will get a car
with continuous shading and continuous reflection.
After doing this we will get the correct normals and reflection:
To unite the double vertex, follow the following steps:
* Switch to vertices level.
* Switch MUL button
* Switch SEL button
* Select -> Single
* Create Objects -> Unite select
Then right click to unite the near vertex (the double vertex) and after that left click
to unite the selected vertex (then we will have only one vertex and therefore one normal).
After unite all the double vertex switch to objects level and calculate the normals, and finally
detach the car body in different objects.
Please e-mail me and make suggestions to improve the method.
vtemarticent AT hotmail DOT com
Enjoy desgining F1 cars.
And remember to read all the tutorials in the
gpxcarpainting web site
and the
Zmodeler web site
.
You will find a lot of good tutorials and you will learn a lot of new things.
------------------------------------------------------------------------------------------------
Vicente Martí
Vicente Martí home page