En esta página encontrareis el codigo necesario para crear un shader (completamente funcional) que utilice una version personalizada del mapa de entorno cúbico. Como bien sabemos, el mapa cúbico de entorno es una técnica de render que permite simular entornos bastante complejos y realistas a traves de una textura especial que crea un entorno en el que podemos reflejar detalles de la malla de mejor manera que la que lo hariamos usando un mapa esférico. El problema puede derivarse del hecho de que nuestro engine no nos permita usar mapas cúbicos de entorno a traves del hardware propiamente, o que aun no este implementado, Este código esta escrito en HLSL (DirectX) aunque es muy sencillo, no utiliza nada exclusivo de DirectX y probablemente se pueda usar con OPEN GL con bastante facilidad.
//Sabemos claramente que nunca dividiremos por 0, Por lo que estos calculos son seguros.
//Mapeamos las coordenadas en una textura en proporcion 2x1 de manera que evitamos errores
//de redondeo, aunque estamos desperdiciando el 25% del espacio de textura.
El código marcado en azul indica la parte mas importante de estos shaders, que como se ve, son bastante normalitos, salvo por esa parte especificamente. Ahi calculamos como pasar un vector 3D a una posicion 2D en un mapa de coordenadas especificamente ordenado, como el que sigue:
Y el resultado es el siguiente.
Copyright 2008/2009 Santiago A. Navascués González.