inmensia |
Normal Mapping en WebGL
Juan Mellado, 6 Septiembre, 2011 - 15:17
Como continuación de mi anterior post, hoy me toca poner la típica imagen del normal mapping. A la izquierda el modelo renderizado con ambiente, difusa y especular. Y a la derecha exactamente el mismo modelo, con el mismo número de polígonos, renderizado igual que el anterior, pero con el mapa de normales aplicado. ![]() Es una técnica que tiene muchos años y que utilizan prácticamente todos los juegos hoy en día, pero no por ello sigue proporcionando un resultado muy espectacular. La imagen está generada directamente en Chrome con WebGL, con tres mapas de normales. Uno para el pelo de 512x512, otro para la cabeza de 512x512 también, y uno último de 1024x1024 para el cuerpo. Hay mucha información en la red acerca de como funciona esta técnica. Resumiendo bastante, se puede simplificar diciendo que consiste en partir de dos modelos. Uno high poly y otro low poly. Sobre el high poly se calculan las normales en cada vértice, que se guardan en una textura, codificadas como componentes RGB, con la misma distribución que el mapeado uv del low poly. Y a la hora de renderizar el low poly se usan las normales de dicha textura para calcular la iluminación. La única matemática que hay que realizar es el cálculo de un sistema de coordenadas (tres vectores) que permita moverse sobre el espacio de la textura, ya que la posición de la cámara y la dirección de la luz se tienen que trasladar a ese espacio para que resulten coherentes con las normales a la hora de aplicar el modelo de iluminación. ¿No encontró lo que buscaba?Utilice el buscador para encontrar más páginas en esta web o en toda Internet. |