Articulo de referencia

Mapeo de texturas proyectivas

El mapeo de texturas proyectivo es un método que permite proyectar una imagen texturizada sobre una escena como si se tratara de un proyector de diapositivas . Este método resul...

El mapeo de texturas proyectivo es un método que permite proyectar una imagen texturizada sobre una escena como si se tratara de un proyector de diapositivas . Este método resulta útil en diversas técnicas de iluminación y es el punto de partida para el mapeo de sombras .

El mapeo de texturas proyectivo es esencialmente una transformación matricial especial que se realiza por vértice y luego se interpola linealmente como en el mapeo de texturas estándar.

Enfoque de tubería de función fija

HistóricamenteEl uso del mapeo de texturas proyectivas implicó considerar una forma especial de generación de coordenadas de textura lineales del ojo.transformación ( tcGen para abreviar). Esta transformación se multiplicó luego por otra matriz que representaba las propiedades del proyector, las cuales se almacenaban en la matriz de transformación de coordenadas de textura.La matriz concentrada resultante era básicamente una función tanto de las propiedades del proyector como de las posiciones de los vértices de visión.

Los puntos clave de este enfoque son que la función tcGen lineal del ojo depende de las coordenadas del ojo en el vértice, que a su vez dependen tanto de las propiedades del ojo como de las coordenadas del vértice en el espacio del objeto (más específicamente, la posición del vértice en el espacio del objeto se transforma mediante la matriz de proyección de vista del modelo). Por ello, la matriz de textura correspondiente puede utilizarse para "desplazar" las propiedades del ojo, de modo que el resultado concentrado sea el mismo que si se utilizara una función tcGen lineal del ojo desde un punto de vista distinto al del observador.

Enfoque de canalización programable

Un método menos complejo para calcular este enfoque se hizo posible con los sombreadores de vértices .

El algoritmo anterior puede reformularse simplemente considerando dos matrices de modelo-vista-proyección: una desde el punto de vista del observador y la otra desde el punto de vista del proyector.

En este caso, la matriz de proyección del modelo-vista es esencialmente la concentración mencionada de tcGen lineal para el ojo con la función de desplazamiento del proyector prevista. Mediante estas dos matrices, unas pocas instrucciones son suficientes para generar la posición del vértice transformada en el espacio del ojo y una coordenada de textura proyectiva. Esta coordenada se obtiene simplemente considerando la matriz de proyección del modelo-vista del proyector; en otras palabras, es la posición del vértice en el espacio del ojo si el proyector considerado fuera un observador.

Advertencias

En ambos enfoques propuestos existen dos pequeños problemas que pueden resolverse fácilmente y que provienen de las diferentes convenciones utilizadas por el espacio visual y el espacio de textura.

Definir las propiedades de estos espacios escapa al alcance de este artículo, pero es bien sabido que las texturas suelen estar en el rango [0..1], mientras que las coordenadas del espacio de visión se encuentran en el rango [-1..1]. Según el modo de envoltura de textura utilizado, pueden aparecer diversos artefactos, pero es evidente que se requiere una operación de desplazamiento y escalado para obtener el resultado esperado.

El otro problema es, en realidad, de índole matemática. Es bien sabido que las operaciones matriciales utilizadas generan una retroproyección. Históricamente, este artefacto se ha evitado mediante el uso de una textura especial en blanco y negro para eliminar las proyecciones innecesarias. Con sombreadores de píxeles, se puede emplear un enfoque diferente: una simple comprobación de coordenadas es suficiente para distinguir entre las proyecciones hacia adelante (correctas) y las retroproyectadas (incorrectas, que deben evitarse).

Referencias

  1. ^ Eldocumento originaldelsitio web de nVIDIA incluye toda la documentación necesaria sobre este tema. El mismo sitio también contienesugerencias adicionales.
  2. La generación de coordenadas de textura se trata en la sección 2.11.4 "Generación de coordenadas de textura" de laespecificación OpenGL 2.0. La generación de coordenadas de textura lineales para el ojo es un caso especial.
  3. ^ La matriz de texturas se introduce en la sección 2.11.2 "Matrices" de laespecificación OpenGL 2.0.
  • http://www.3dkingdoms.com/weekly/weekly.php?a=20 Un tutorial que muestra cómo implementar texturizado proyectivo utilizando el enfoque de canalización programable en OpenGL.