1 Archivos adjunto(s)
Bump y normal mapping en nebula2
A ver si alguien me puede resolver esta duda. Estoy realizando recursos 3d para exportarlos al motor gráfico Nébula 2. Leyendo en su página http://www.radonlabs.de/tolkitdocs_h...eneshowto.html tenemos lo siguiente:
Nebula2 uses Normal Maps for Bump mapping. You can use the Nvidia plugin for Photoshop coming with the Toolkit todo convert conventional greyscale Bump maps todo Normal Maps.
Mi duda es: ¿por qué usa Normal Maps en vez de los mapas de grises de toda la vida para el Bump? Y siendo así, ¿puedo hacer normal mapping usando proyecciones de mallas de alta resolución en una lowpoly? Yo he estado haciendo pruebas y no consigo hacer normal mapping -solo consigo usarlo como Bump, pero no se realmente si es porque soy un patán y hago algo mal o si es que realmente no se puede.
Y ya que estoy, aprovecho para preguntar otra duda:
Cuando uso melody (programa de Nvidia para hacer mapas de normales), al generar el mapa de normales me crea dos archivos, y no se bien para que se usa cada uno de ellos. En la imagen que adjunto, el de la izquierda creo que es el que se usa para el normal mapping, pero y el de la derecha? Un saludo y gracias de antemano.
Editado : ya lo he adjuntado. Qué cabeza la mía.
Bump y normal mapping en nebula2
Er de colores es el Bump Maping, (aunque no has puesto nada adjunto). Un Bump mapping usa una escala de grises porque solo tiene información de profundidad.
Un normal mapping es de colores porque usa cada canal (RGB) para informar de cómo rebota la luz en el espacio (XYZ).
Posdata: si el otro archivo es escala de grises, es por si quieres usar la técnica de Parallax mapping.
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 Adobe 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.
Cita:
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.
Bump y normal mapping en nebula2
Gracias half, muy útil tu explicación, no la había leído hasta ahora.
Bump y normal mapping en nebula2