Bump y normal mapping en nebula2

Bueno, veo que el mensaje que escribí en respuesta a este mensaje también desapareció. Por lo que dice ahí, puedes utilizar cualquier Normal Map, ya sea uno sacado a partir de un Bump map (imagen en escala de grises) o uno extraído a partir de un modelo high-poly para aplicarlo a uno Low-poly. En realidad, ambos normal maps son idénticos, lo único que cambia es la forma de generarlos. Unos se generan usando el plugin de Nvidia para Photoshop (y similares) y los otros con utilidades como orb, melody, la utilidad de Ati, etc.

En cuanto a por que se utilizan normal maps en lugar de Bump maps, es porque las aceleradoras requieren este tipo de codificación. Ten en cuenta que lo que tú ves en un Normal Map, no son simplemente colores. En realidad, son vectores (normales) que indican la orientación de la normal de cada fragmento del modelo al que se le aplique dicho Normal Map. Por el contrario, un Bump map codifica alturas y no puede ser utilizado directamente por una aceleradora. Para poder hacer uso de él, antes hay que extraer las normales, calculando las derivativas (variación de altura de los píxeles adyacentes, que es precisamente lo que hace el plugin de Photoshop) en cada punto del Bump map. Precisamente una de las razones por las que en la página que has puesto sobre Nébula dice.

Remember that your Bump maps must be named todo match this pattern: *_bump.*. Otherwise compression artefactos Will occur and ruin the Bump effect.

Es porque, como los normal maps (como he dicho) no son simples colores sino vectores normales, si comprimes dichos colores lo que estás haciendo es modificar las normales por lo que la iluminación o cualquier tipo de componente que se calcule a partir de las normales, no saldrá bien.

Finalmente, el tema de melody que te genera esas dos imágenes, ambos son normal maps, con la diferencia de que el de la izquierda está en Tangent-space mientras que el de la derecha está en world-space. ¿cuales son las ventajas e inconvenientes? La ventaja del Normal Map en world-space sobre el Tangent-space es que posteriormente, en el shader que se utilice para hacer determinados cálculos como la iluminación, se podrá utilizar directamente sin ningún tipo de cálculos intermedios (como, por ejemplo, pasar los vectores de la luz a Tangent-space), lo cual es algo más rápido. Por contra, el inconveniente es que en el momento en que tengas un modelo con una deformación aplicada (la posición de los vértices se modifique), dicho Normal Map en world-space ya no te servirá de nada, mientras que la versión en Tangent space sí que seguirá funcionando. Ahora bien, ¿Qué versión debes utilizar? ¿la versión en world-space o la versión en Tangent-space (también existe la versión en object-space)? La respuesta depende de cómo calcule las cosas nebula2, pero lo normal es que utilice la versión en Tangent-space por la razón que he dado antes. Saludos.

Ver más sobre el tema y los comentarios en el foro