Ajustar los normales para conseguir un buen sombreado y unos buenos reflejos.
Primero de todo, nosotros deberiamos saber que es un normal. Un normal es un vector
(con una longitud y una dirección).
Cada vertice tiene un normal, y lo más importante es que normales afectan a las reflexiones de
la luz en el coche.
Lar dirección del normal indica la dirección en que la luz será reflejada por la superficie,
por tanto si tu ves la superficie en la dirección de normal toda la luz será reflejada.
Pero si tu ves la superficie de otra dirección diferente a la dirección del normal
la superficie refleja menos luz. Cuanto mayor es la direrencia entre las direcciones menos
luz se refleja. Esto se aprecia en la siguiente imagen:
La longitud del normal idica cuanta luz es reflejada en la dirección del normal.
Cuanto más corta es la longitud del normal, menor es la reflexión.
La siguiente imagen mustra esto (izquierda: normales largos (normalizados); derecha: normales cortos):
En este tutorial solo vamos a trabajar con normales normalizados (todos los normales van a tener la misma
longitud).
Vamos a usar el métode de cálculo y el de proyección para obtenr un bonito sombreado y unas buenas
reflexiones en nuestro coche de gp4.
Ahora vamos a ver algun ejemplo de diferentes tipos de superficies:
NOTA: en todo el tutorial vamos trabajar con el
normals automatic update y extended desactivados.
Una superficie un poco curvada.
Esta es una superficie con los normales calcualados
(Surface -> Normals -> Calculate).
El sombreado y la reflexión es buena, se puede ver en las siguientes imagenes:
Esta es la superficie:
Y su sombreado:
Pero ahora vamos a hacer algunas modificaciones a esta superficie (1 solo objeto), concretamente la
vamos a dividir en 2 nuevos objetos y vamos a calcular los normales.
El sombreado de la superficie resultante es:
Se observa que el sombreado no es bueno, y además parece que el objeto tiene una linia
en la cual el sombreado cambia.
Ahora vamos a ver la refelexión de esta superfice. La pirmera imagen es el objeto original, y
se puede observar que tiene una buena reflexión que es suave y continua.
Pero la superficie dividida en dos objetos tiene una reflexión mala que no es continua.
La siguiente imagen muestra esto:
La explicación de esto son los normales. En la primera imagen (superficie original formada por
un solo objeto) se puede ver que el centro hay un solo vértice (vértice simple).
Pero en la superficie dividida que está formado por dos objetos, en el centro hay dos vértices
(doble vértice).
Por tanto el sombreado discontinuo y la reflexión discontínua es debida al doble vértice.
Esto es importante porque diferentes objetos no pueden compartir vertíces y esto es un problema
cuando queremos obtener un sombreado contínuo y una reflexión continua en un coche para gp4
que está formado por deiferentes objetos. A lo largo del tutorial veremos como solucionoar este
problema y ver cuando usar en una superficie vetices símples o dobles.

Vertíce simple.
Vértice doble.
Una superfície muy doblada.
Esta superficie tiene los normales calculados.
(Surface -> Normals -> Calculate).
Como se observa, esta superficie tiene un borde afilado (es decir con un angulo casi que recto).
Veamos los problemas que tienen este tipo de superfícies:
Esta es la superfície con su sombreado:
La imagen anterior muestra que el sombreado no es bueno, sobre todo en el borde afilado.
Además, las reflexiones tampoco no son buenas como muestra la siguiente imagen:
Esto es porque una superficie con un borde afilado deberia se como dos superficies diferentes
que reflejen la luz de forma distinta. Para solucionar esto vamos a dividir la superficié en dos
objetos diferentes (por el borde).
Primero, veamos los normales de esta superficie (la superficie original):
Se puede ver que las direciones de los normales próximos al borde son muy diferentes.
Para solucionar este problema como hemos dicho vamos a "partir" la superfice en dos.
Para dividir la superfice en dos objetos: pasar al nivel de caras (polígonos) y
Select -> Quadr, entonces seleccionar las caras de una de las nuevas superfícies:
Después ir a Create -> Objects -> Detach, activar del modo SEL y hacer click en la vista.
Entonces, escribir el nombre del nuevo objeto en la caja de diálogo que aparecerá.
Ahora tenemos la superfície dividida en dos objetos. Si ves el sombreado de esta superficie formada
por dos objetos puedes ver que el sombrado es el mismo. Esto es porque los normales son los mismos
ya que no los hemos modificado después de dividir la superfície en dos objetos y tenemos
desecdtivado el normals automatic update and extended mode.
Por tanto ahora ya podemos unir los dos objetos que forman la superfície en uno solo
para tener un solo objeto (como en la superficie original que esta formada por un solo objeto).
Para hacer esto, selecciona los dos objetos que forman la superfície en el nivel de objetos,
entonces ves a
Create -> Objects -> UniteSelect
y haz click en la vista (notar que la vista es la pantalla en la que estamos trabajando: vista desde
arriba, abajo, derecha... es decir cada uno de las quatro partes en la que está dividido la pantalla de ZModeler).
Escribe el nombre del nuevo objeto en la caja de diálogo que aparecerá, finalmente el resultado
es un solo objeto a partir de los dos objetos seleccionados con un borde formado por vértices dobles.
Este proceso se conoce como el método del vertíce doble.
Pero para conseguir la reflexión correcta tenemos que calcular los normales. Para hacer esto ir a Surface ->
Normals -> Calculate y en el nivel de objetos hacer click en el objeto, finalmente en la vista 3D veremos la
siguiente imagen:
Ahora tenemos un borde afilado en el vista 3D y este objeto parece que tenga dos superfícies independientes
que reflejen la luz de forma diferente y entre ellas hay una discontinuidad del sombreado.
La explicación es fácil, las superficies con doble vértice tienen una discontinuidad en el sombreado.
La imagen anterior muestra que la superfície de la derecha (la vertical) y la superfície de la izquierda
tienen un "juego" diferente de normales porque no comparten ningún vértice y entonces se trata de una
superfície con doble vértice que tiene un borde afilado.
Por tanto las superfícies con vértices dobles son buenas si queremos hacer dos superfícies independientes
con un borde afilado y un sombreado discontínuo.
Como es de esperar las superfícies con vertices dobles además de tener un sombreado discontínuo tienen
una reflexión discontinua, la siguientes imagenes muestran esto.
La primera es de la superficie original ya la segunda de la superficie con vertíces dobles:
Superficie original, con una reflexión contínua:
Superficíe con vertice doble, con una reflexión discontínua:
Para acabar con esta parte del tutorial podemos ver una comparativa de los normales de la suprfície
original y la superfície con vetíces dobles.
Superficie original, con un sombreado contínuo y una reflexión contínua:
Superficíe con doble vertice, con un sombreado discontinuo y una reflexión discontínua en el borde:
Finalmente la conclusión de este tutorial es que cuando tengamos bordes afialados podemos solucionar
este problema usando el método de los vértices dobles.
Pero si lo que queremos es obtener un lado afilado con una reflexión continua y un sombreado contínuo
tenemos que incrementar el nº de poligonos de la zona del borde sin usar el métode de los vértices dobles.
El resultado es un borde "redondeado" con una reflexión continua y un sombreado contínuo.
Las siguientes fotos muetran una superficie muy doblada con un borde con una reflexión continua y
un sombreado contínuo con un nº de poligonos elevado en la zona del borde:
Para concluir esta parte del tutorial veamos un resumen de lo dicho anteriormente:
si queremos una superfície con un sombreado y unas reflexiones continuas no tenemos que usar la técnica
de los vértices dobles, simplemente incrementar el nº de polígonos cuando sea necesario.
Pero si nuestra superfície pertinece a dos o más objetos la cosa no es tan fácil. Primero si tenemos una
superfice que acabamos de crear y la queremos dividir en varios objetos no hay ningún problema en
conseguir un sombreado y unas reflexiones continuas. Simplemente crear el objeto, calcular los normales
y dividir el objeto en los nuevos objetos y no recaulcular los normales a los nuevos objetos (recordar
que hay que tener desactivado en normals automatic update). No recalcular los normales es muy importante
porque si los recalculamos obtenemos una suprfície con un sombreado y unas reflexiones discontinuas.
Por ejemplo nosotros vamos a usar esta técnica para hacer el cuerpo del coche de GP4 (recordar que un
coche de GP4 tiene un montón de objetos).
El alerón delanteró de un coche de GP4.
En la sección de crear la malla 3D se ha explicado como crear el alerón delantero y aquí vamos a continuar
con este trabajo ajustando los normales para nuestro alerón.
En la sección de crear la malla 3D se ha explicado como crear el alerón usando la técnica de los vértices dobles,
pero el siguiento ejemplo muestra el resultado que hubieramos obtenido si no se hubieran usado estos vértices
dobles, es diecr si la superficie superior y inferior del alerón compartieran los vértices con la superfície
lateral.
Se puede comprobar en la siguiente imagen que el conjunto de normales del alerón es malo ya que los normales
están orientados hacia direcciones muy diferentes y por tanto el somgreado y las reflexiones es malo.
Para solucionar este problema basta con dividir la parte superior y inferior del alerón de la superfíce
lateral. Para ello se ha usado el metode explicado anteriormente de seleccionar la supferficie, ir a
Create -> Objects -> Detach, activar del modo SEL y hacer click en la vista.
Entonces, escribir el nombre del nuevo objeto en la caja de diálogo que aparecerá.
A continuación se unen los objetos en uno solo y se calculan los normales. El resultado es:
Se puede ver que los normales ahora esta bien, apuntan más o menos hacia la misma dirección.
El siguiente paso es crear la otra parte del alerón como se explicó en la parte de crear la malla 3d.
Se vemos en la vista 3D el alerón delantero al completo se obserba que el sombreado y la reflexión son
buenos.
Otra forma de ajustar los normales (usando como base el alerón con los vertices dobles).
Para ajustar los normales, seleccionar la parte superiror del alerón, poner el eje (la X gris)
en un lugar como en la imagen (para poner el eje en cualquier lugar, poner el ratón en el
lugar deseado y presionar " . "). Activar el modo SEL y entonces seleccionar la herramienta
Surface -> Normals -> Projection y hacer click en la vista superior (top view).
Los normales del aleron delantero van a tener un buen ajuste en la vista 3D, y como se puede observar
el sombreado y las reflexiones son buenas:
Las diferencias entre los normales calculados y los proyectados se muestran en la siguiente imagen:
Por tanto es tu decisión usar un método o otro (calcular o proyección) para ajustar los normales.
El cuerpo del coche de GP4.
En la siguiente imagen se puede ver el problema que surge al tener diferentes objetos
que forman una superfície que debe tener un sombreado contínuo y una reflexión contínua.
Para solucionar este problema tenemos que unier todos los objetos del cuerpo del coche en un solo objeto,
a continuación unir los vértices dobles (ver explicación más abajo), calcular los normales y
finalmente dividir el cuerpo del coche
en diferentes objetos sin recalcular los normales después de dividir el cuerpo del coche.
El resultado es un coche con un sombreado continuo y unas reflexiones continuas.
La siguiente imagen muestra el coche después de aplicarle todo lo dicho anteriormente:
Para unir los vertíces dobles en uno sólo los pasos a seguir son:
- Pasar al nivel de vértices
- Activar el modo MUL
- Activar el modo SEL
- Ir a la herramienta Select -> Single
- Ir a la herramienta Create Objects -> Unite select
Entonces hacer click con el botón izquierdo para unir los vértices próximos (vertíces dobles) y
después de esto hacer click con el botón izquierdo para unir los vertíces seleccionados
(Vamos a pasar de tener dos vértices a tener uno solo).
Después de unir todos los vértices dobles pasar al nivel de objetos y calcular los normales,
finalmente dividir el cuerpo del coche en diferentes objetos.