Compartir a través de


Asignación de entorno esférico (Direct3D 9)

Los mapas de entorno esféricos o los mapas de esfera son texturas especiales que contienen una imagen de la escena que rodea a un objeto o los efectos de iluminación alrededor del objeto. A diferencia de los mapas de entorno cúbicos, los mapas de esfera no representan directamente los alrededores de un objeto. La imagen de tetera en el tema Asignación de entornos (Direct3D 9) muestra los efectos de reflexión que puede lograr con la asignación de esferas. Un mapa de esfera es una representación 2D de la vista completa de 360 grados de la escena que rodea a un objeto, como si se tomara a través de una lente de ojo de pez, como se muestra en la ilustración siguiente.

ilustración de un mapa de esfera del interior de un edificio

Coordenadas de textura para mapas de entorno esféricos

Las coordenadas de textura que especifique para cada vértice que reciba una asignación de entorno deben abordar la textura como función de la distorsión reflectante creada por la curvatura de la superficie. Las aplicaciones deben calcular estas coordenadas de textura para cada vértice para lograr el efecto deseado. Una manera sencilla y eficaz de generar coordenadas de textura usa el vértice normal como entrada. Aunque existen varios métodos, la siguiente ecuación es común entre las aplicaciones que realizan la asignación de entorno con mapas de esferas.

ecuación de coordenadas de texturas informáticas para un mapa de esfera

En estas fórmulas, usted y v son las coordenadas de textura que se calculan, y NX e NY son los componentes x e y del vértice de espacio de cámara normal. La fórmula es sencilla pero eficaz. Si el valor normal tiene un componente x positivo, el normal apunta a la derecha y la coordenada u se ajusta para abordar la textura correctamente. Del mismo modo para la coordenada v: positivo y indica que el valor normal apunta hacia arriba. Lo contrario es true para los valores negativos de cada componente.

Si los puntos normales están directamente en la cámara, las coordenadas resultantes no deben recibir distorsión. El sesgo +0,5 en ambas coordenadas coloca el punto de distorsión cero en el centro del mapa de esfera y un vértice normal de (0, 0, z) direcciona este punto. Esta fórmula no tiene en cuenta el componente z de la normal, pero las aplicaciones que usan la fórmula pueden optimizar los cálculos omitiendo vértices con una normal que tiene un elemento z positivo. Esto funciona para objetos sombreados planos porque, en el espacio de la cámara, si los puntos normales lejos de la cámara (z positivo), el vértice se selecciona cuando se representa el objeto. En el caso de los objetos sombreados por Gouraud, una normal puede apuntar fuera de la cámara (x positiva) y el triángulo que contiene el vértice todavía puede ser visible. Si no calcula usted y v para este vértice, es posible que la cara se siga usando, lo que da lugar a un comportamiento inesperado.

Aplicación de mapas de entorno esférico

Para aplicar un mapa de entorno a objetos de la misma manera que para cualquier otra textura, establezca la textura en la fase de textura adecuada con el método IDirect3DDevice9::SetTexture . Establezca el primer parámetro en el índice de la fase de textura deseada y establezca el segundo parámetro en la dirección de la interfaz IDirect3DDevice9 devuelta al crear la textura para el mapa de entorno. Puede establecer las operaciones de combinación alfa y de color según sea necesario para lograr los efectos de combinación de texturas deseados.

Asignación de entornos