el tema es bastante antiguo, pero voy a responder por cualquier principiante que podría buscar cualquier ayuda aquí:
1) & 2)
su mapa normal es como una textura difusa normal, se Necesito cargarlo desde el disco, crear tu texture2D como lo harías con la textura difusa, y bloquearlo con las otras texturas para enviarlo a los shaders. Para resumir, los mapas normales, los mapas de altura, etc. no son diferentes cuando se trata con el lado de la CPU ... siempre los está cargando, creando la textura y bloqueándolos.
3)
mapas normales son simplemente una manera de almacenar las normales de cada fragmento en una textura. Es mejor usarlos con la textura difusa correspondiente, porque esa es la manera de fingir los pequeños detalles. Sin embargo, no siempre es necesario en algunos casos ... por ejemplo, la última vez que trabajé en una forma de obtener agua ... utilicé un mapa de dudv y un mapa normal, pero no el mapa difuso correspondiente, como usado para renderizar en texturas para lograr la reflexión.
4)
mapas normales se hacen corresponder con el mismo coordenadas de textura como la textura difusa ... que significa que si usted tiene un quad coordenadas wich son 0; 0, 0; 1, 1; 0, 1; 1 estas son las coordenadas que utiliza para asignar ambas texturas.
5)
que podría hacerlo sin shaders, supongo ... incluso se puede hacer sin OpenGL si quieres ... shaders están diseñados para este tipo de operaciones, y que va a ser más fácil haz eso con shaders.
Por lo tanto, los mapas normales son texturas que codifican vectores normales en colores ... un vector normal es un vector 3D y los colores son vectores 3D también. Cuando utiliza iluminación, generalmente envía sus normales desde el sombreador de vértices al sombreador de fragmentos ... el sombreador de fragmentos interpolará el valor del vértice normal para encontrar una aproximación del vector normal del píxel. esto se hace de manera predeterminada ...
Con los mapas normales, no se usa un vector normal de vértice, sino el vector normal codificado en la textura.
En primer lugar, deberá convertir el cálculo de iluminación del espacio mundial en espacio tangente. Esto se hace en el sombreado de vértices.
y luego, muestreará su mapa normal en el sombreador de fragmentos como una textura normal. Obtendrá un color RGB de su píxel. tendrá que convertir ese valor en un vector normal, es decir, multiplicarlo por 2 y restar 1, es decir, rgb * 2 - 1, luego usarlo como su vector normal en el cálculo de iluminación.
Gracias, la presentación nVidia y los 3DKingdoms son geniales. He visto paulsprojects uno, pero estaba perdido cuando comenzó en los mapas de cubo. – zyndor