stringtranslate.com

Mapeado de texturas

1: Modelo 3D sin texturas
2: Mismo modelo con texturas
Mapear una textura bidimensional en un modelo 3D

El mapeo de texturas [1] [2] [3] es un método para mapear una textura en un gráfico generado por computadora . La textura aquí puede ser detalle de alta frecuencia , textura de superficie o color .

Historia

La técnica original fue iniciada por Edwin Catmull en 1974 como parte de su tesis doctoral. [4]

En 1983, el trabajo realizado por Johnson Yan, Nicholas Szabo y Lish-Yaan Chen en su invención "Método y aparato para la generación de texturas" proporcionó la generación de texturas en tiempo real, donde la textura se podía generar y superponer sobre superficies (curvilíneas y planas) de cualquier orientación. Se podrían modelar patrones de textura que sugieran el material del mundo real que debían representar de manera continua y sin aliasing, proporcionando en última instancia un nivel de detalle y transiciones graduales (imperceptibles) de nivel de detalle. La generación de texturas se volvió repetible y coherente de cuadro a cuadro y permaneció en la perspectiva correcta y la ocultación apropiada. [5] Debido a que la aplicación de texturas en tiempo real se aplicó a los primeros sistemas CGI de simuladores de vuelo tridimensionales, muchas de estas técnicas se utilizaron ampliamente en computación gráfica y juegos y aplicaciones durante los años siguientes, ya que la textura era a menudo el primer requisito previo para una apariencia realista. gráficos.

También en 1983, en un artículo "Pyramidial Parametrics", Lance Williams, otro pionero de los gráficos, introdujo el concepto de mapear imágenes en superficies para aumentar el realismo de dichas imágenes. [6]

El mapeo de texturas originalmente se refería al mapeo difuso , un método que simplemente mapeaba píxeles de una textura a una superficie 3D ("envolviendo" la imagen alrededor del objeto). En las últimas décadas, la llegada de la renderización de múltiples pasadas, la multitextura , los mapas mip y los mapeos más complejos como el mapeo de altura , el mapeo de relieve , el mapeo normal , el mapeo de desplazamiento , el mapeo de reflexión , el mapeo especular , el mapeo de oclusión y muchas otras variaciones de la técnica. (controlados por un sistema de materiales ) han hecho posible simular un casi fotorrealismo en tiempo real reduciendo enormemente el número de polígonos y cálculos de iluminación necesarios para construir una escena 3D realista y funcional.

Ejemplos de multitextura :
1: Esfera sin textura, 2: Mapas de textura y relieve, 3: Mapa de textura únicamente, 4: Mapas de opacidad y textura

Mapas de textura

Amapa de textura [7][8]es una imagen aplicada (mapeada) a la superficie de una forma opolígono. [9]Esto puede ser unaimagen de mapa de bitso unatextura de procedimiento. Pueden almacenarse enformatos de archivos de imágenes, referenciados porformatos de modelos 3Dodefiniciones de materiales, y ensamblarse enpaquetes de recursos.

Pueden tener de 1 a 3 dimensiones, aunque las 2 dimensiones son las más comunes para las superficies visibles. Para su uso con hardware moderno, los datos del mapa de texturas se pueden almacenar en ordenamientos combinados o en mosaico para mejorar la coherencia de la caché . Las API de renderizado generalmente administran recursos de mapas de textura (que pueden estar ubicados en la memoria del dispositivo ) como buffers o superficies, y pueden permitir el " renderizado a textura " para efectos adicionales como posprocesamiento o mapeo de entorno .

Por lo general, contienen datos de color RGB (ya sea almacenados como color directo , formatos comprimidos o color indexado ) y, a veces, un canal adicional para combinación alfa ( RGBA ), especialmente para vallas publicitarias y texturas de superposición de calcomanías . Es posible utilizar el canal alfa (que puede resultar conveniente almacenar en formatos analizados por hardware) para otros usos, como la especularidad .

Se pueden combinar múltiples mapas de textura (o canales ) para controlar la especularidad , las normales , el desplazamiento o la dispersión del subsuelo , por ejemplo, para la representación de la piel.

Se pueden combinar múltiples imágenes de texturas en atlas de texturas o texturas de matriz para reducir los cambios de estado del hardware moderno. (Pueden considerarse una evolución moderna de los gráficos de mapas en mosaico ). El hardware moderno a menudo admite texturas de mapas de cubos con múltiples caras para el mapeo del entorno.

Creación

Los mapas de textura se pueden adquirir mediante escaneo / fotografía digital , diseñarse en software de manipulación de imágenes como GIMP , Photoshop o pintarse sobre superficies 3D directamente en una herramienta de pintura 3D como Mudbox o zbrush .

Aplicación de textura

Este proceso es similar a aplicar papel estampado a una caja blanca. A cada vértice de un polígono se le asigna una coordenada de textura (que en el segundo caso también se conoce como coordenadas UV ). [10] Esto se puede hacer mediante la asignación explícita de atributos de vértice , editados manualmente en un paquete de modelado 3D mediante herramientas de desenvolvimiento UV . También es posible asociar una transformación procedimental del espacio 3D al espacio de textura con el material. Esto podría lograrse mediante proyección plana o, alternativamente, mapeo cilíndrico o esférico . Mapeos más complejos pueden considerar la distancia a lo largo de una superficie para minimizar la distorsión. Estas coordenadas se interpolan en las caras de los polígonos para muestrear el mapa de textura durante el renderizado. Las texturas se pueden repetir o reflejar para extender un mapa de bits rectangular finito sobre un área más grande, o pueden tener un mapeo " inyectivo " único uno a uno de cada pieza de una superficie (lo cual es importante para el mapeo de renderizado y el mapeo de luz , también conocido como hornear ).

Espacio de textura

El mapeo de texturas mapea la superficie del modelo (o el espacio de la pantalla durante la rasterización) en el espacio de textura ; En este espacio, el mapa de textura es visible en su forma no distorsionada. Las herramientas de desenvolvimiento UV suelen proporcionar una vista en el espacio de textura para la edición manual de coordenadas de textura. Algunas técnicas de renderizado, como la dispersión del subsuelo, se pueden realizar aproximadamente mediante operaciones de textura-espacio.

Multitexturizado

La multitextura es el uso de más de una textura a la vez en un polígono. [11] Por ejemplo, se puede utilizar una textura de mapa de luz para iluminar una superficie como alternativa a recalcular esa iluminación cada vez que se renderiza la superficie. Se utilizan microtexturas o texturas detalladas para agregar detalles de mayor frecuencia, y los mapas de tierra pueden agregar desgaste y variación; esto puede reducir en gran medida la aparente periodicidad de las texturas repetidas. Los gráficos modernos pueden utilizar más de 10 capas, que se combinan mediante sombreadores , para mayor fidelidad. Otra técnica de multitextura es el mapeo de relieve , que permite que una textura controle directamente la dirección de orientación de una superficie para sus cálculos de iluminación; puede dar una muy buena apariencia a una superficie compleja (como corteza de árbol u hormigón rugoso) que adquiere detalles de iluminación además de la coloración detallada habitual. El mapeo de relieve se ha vuelto popular en los videojuegos recientes, ya que el hardware de gráficos se ha vuelto lo suficientemente potente como para acomodarlo en tiempo real. [12]

Filtrado de texturas

La forma en que las muestras (por ejemplo, cuando se ven como píxeles en la pantalla) se calculan a partir de los texels (píxeles de textura) se rige por el filtrado de texturas . El método más económico es utilizar la interpolación del vecino más cercano , pero la interpolación bilineal o la interpolación trilineal entre mapas MIP son dos alternativas comúnmente utilizadas que reducen los alias o irregularidades . En el caso de que una coordenada de textura esté fuera de la textura, se sujeta o se envuelve . El filtrado anisotrópico elimina mejor los artefactos direccionales al visualizar texturas desde ángulos de visión oblicuos.

Transmisión de texturas

La transmisión de texturas es un medio de usar flujos de datos para texturas, donde cada textura está disponible en dos o más resoluciones diferentes, para determinar qué textura debe cargarse en la memoria y usarse según la distancia de dibujo desde el espectador y cuánta memoria está disponible para texturas. La transmisión de texturas permite que un motor de renderizado utilice texturas de baja resolución para objetos alejados de la cámara del espectador y las resuelva en texturas más detalladas, leídas de una fuente de datos, a medida que el punto de vista se acerca a los objetos.

Horneando

Como optimización, es posible representar detalles de un modelo complejo de alta resolución o de un proceso costoso (como la iluminación global ) en una textura de superficie (posiblemente en un modelo de baja resolución). El horneado también se conoce como mapeo de renderizado . Esta técnica se utiliza más comúnmente para mapas ligeros , pero también se puede utilizar para generar mapas normales y mapas de desplazamiento . Algunos juegos de ordenador (por ejemplo, Messiah ) han utilizado esta técnica. El motor de software Quake original utilizaba horneado sobre la marcha para combinar mapas de luz y mapas de color (" almacenamiento en caché de superficie ").

El horneado se puede utilizar como una forma de generación de nivel de detalle , donde una escena compleja con muchos elementos y materiales diferentes se puede aproximar mediante un solo elemento con una sola textura, que luego se reduce algorítmicamente para reducir el costo de renderizado y menos llamadas . También se utiliza para tomar modelos de alto detalle de software de escultura 3D y escaneo de nubes de puntos y aproximarlos con mallas más adecuadas para la renderización en tiempo real.

Algoritmos de rasterización

Varias técnicas han evolucionado en implementaciones de software y hardware. Cada uno ofrece diferentes compensaciones en precisión, versatilidad y rendimiento.

Mapeo de texturas afines

Debido a que el mapeo de textura afín no tiene en cuenta la información de profundidad sobre los vértices de un polígono, donde el polígono no es perpendicular al espectador, produce un defecto notable, especialmente cuando se rasteriza como triángulos.

El mapeo de texturas afín interpola linealmente las coordenadas de textura a través de una superficie, por lo que es la forma más rápida de mapeo de texturas. Algunos software y hardware (como la PlayStation original ) proyectan vértices en el espacio 3D en la pantalla durante el renderizado e interpolan linealmente las coordenadas de textura en el espacio de la pantalla entre ellos. Esto se puede hacer incrementando las coordenadas UV del punto fijo o mediante un algoritmo de error incremental similar al algoritmo de línea de Bresenham .

A diferencia de los polígonos perpendiculares, esto provoca una distorsión notable en las transformaciones de perspectiva (ver figura: la textura del cuadro de verificación aparece doblada), especialmente cuando los primitivos están cerca de la cámara . Esta distorsión se puede reducir subdividiendo el polígono en polígonos más pequeños.

Para el caso de objetos rectangulares, usar primitivas cuádruples puede parecer menos incorrecto que el mismo rectángulo dividido en triángulos, pero debido a que la interpolación de 4 puntos agrega complejidad a la rasterización, la mayoría de las primeras implementaciones preferían solo los triángulos. Parte del hardware, como el mapeo de texturas directo utilizado por la Nvidia NV1 , pudo ofrecer primitivas cuádruples eficientes. Con la corrección de perspectiva (ver más abajo), los triángulos se vuelven equivalentes y esta ventaja desaparece.

Para objetos rectangulares, especialmente cuando son perpendiculares a la vista, la interpolación lineal a través de un quad puede dar un resultado afín superior en comparación con el mismo rectángulo dividido en dos triángulos afines.

Para objetos rectangulares que están en ángulo recto con el espectador, como pisos y paredes, la perspectiva solo necesita corregirse en una dirección a lo largo de la pantalla, en lugar de en ambas. El mapeo de perspectiva correcto se puede calcular en los bordes izquierdo y derecho del piso, y luego una interpolación lineal afín a lo largo de ese tramo horizontal se verá correcta, porque cada píxel a lo largo de esa línea está a la misma distancia del espectador.

Corrección de perspectiva

La textura correcta en perspectiva tiene en cuenta las posiciones de los vértices en el espacio 3D, en lugar de simplemente interpolar coordenadas en el espacio de la pantalla 2D. [13] Esto logra el efecto visual correcto pero es más costoso de calcular. [13]

Para realizar la corrección de perspectiva de las coordenadas de textura y , siendo el componente de profundidad desde el punto de vista del espectador, podemos aprovechar el hecho de que los valores , y son lineales en el espacio de la pantalla a lo largo de la superficie que se está texturizando. Por el contrario, el original y antes de la división no son lineales en la superficie del espacio de la pantalla . Por lo tanto, podemos interpolar linealmente estos recíprocos a través de la superficie, calculando valores corregidos en cada píxel, para dar como resultado un mapeo de textura en perspectiva correcta.

Para ello, primero calculamos los recíprocos en cada vértice de nuestra geometría (3 puntos para un triángulo). Para el vértice tenemos . Luego, interpolamos linealmente estos recíprocos entre los vértices (por ejemplo, usando coordenadas baricéntricas ), lo que da como resultado valores interpolados en toda la superficie. En un punto dado, esto produce , y interpolados . Tenga en cuenta que esto aún no se puede utilizar como nuestras coordenadas de textura, ya que nuestra división modificó su sistema de coordenadas.

Para corregir de nuevo al espacio, primero calculamos el corregido tomando nuevamente el recíproco . Luego usamos esto para corregir nuestro : y . [14]

Esta corrección hace que en las partes del polígono que están más cerca del espectador la diferencia de píxel a píxel entre las coordenadas de la textura sea menor (estirando la textura más) y en las partes más alejadas esta diferencia sea mayor (comprimiendo la textura). .

El mapeo de textura afín interpola directamente una coordenada de textura entre dos puntos finales y :
dónde
El mapeo correcto de perspectiva interpola después de dividir por profundidad , luego usa su recíproco interpolado para recuperar la coordenada correcta:

El hardware de gráficos 3D normalmente admite texturas con perspectiva correcta.

Se han desarrollado varias técnicas para representar la geometría mapeada de texturas en imágenes con diferentes compensaciones de calidad/precisión, que se pueden aplicar tanto al software como al hardware.

Los mapeadores de texturas de software clásicos generalmente hacían solo mapeos simples con como máximo un efecto de iluminación (generalmente aplicado a través de una tabla de búsqueda ), y la corrección de la perspectiva era aproximadamente 16 veces más costosa.

Rotación de cámara restringida

El motor Doom no permitía pisos con rampas ni paredes inclinadas. Esto requiere una corrección de perspectiva solo una vez por cada tramo horizontal o vertical, en lugar de por píxel.

El motor de Doom restringió el mundo a paredes verticales y pisos/techos horizontales, con una cámara que solo podía girar alrededor del eje vertical. Esto significaba que las paredes tendrían una coordenada de profundidad constante a lo largo de una línea vertical y los pisos/techos tendrían una profundidad constante a lo largo de una línea horizontal. Después de realizar un cálculo de corrección de perspectiva para la profundidad, el resto de la línea podría utilizar un mapeo afín rápido. Algunos renderizadores posteriores de esta época simularon una pequeña cantidad de inclinación de la cámara con corte , lo que permitió la apariencia de una mayor libertad al usar la misma técnica de renderizado.

Algunos motores fueron capaces de renderizar mapas de altura con texturas mapeadas (por ejemplo, Voxel Space de Nova Logic y el motor de Outcast ) a través de algoritmos incrementales tipo Bresenham , produciendo la apariencia de un paisaje con texturas mapeadas sin el uso de primitivas geométricas tradicionales. [15]

Subdivisión para corrección de perspectiva.

Cada triángulo se puede subdividir en grupos de aproximadamente 16 píxeles para lograr dos objetivos. En primer lugar, mantener el molino aritmético ocupado en todo momento. En segundo lugar, producir resultados aritméticos más rápidos. [ impreciso ]

Subdivisión del espacio mundial

Para el mapeo de texturas en perspectiva sin soporte de hardware, un triángulo se divide en triángulos más pequeños para renderizar y se usa un mapeo afín en ellos. La razón por la que esta técnica funciona es que la distorsión del mapeo afín se vuelve mucho menos perceptible en polígonos más pequeños. La Sony PlayStation hizo un uso extensivo de esto porque solo admitía mapeo afín en hardware pero tenía un rendimiento triangular relativamente alto en comparación con sus pares.

Subdivisión del espacio de la pantalla

Técnicas de subdivisión del espacio de la pantalla. Arriba a la izquierda: similar a un terremoto, arriba a la derecha: bilineal, abajo a la izquierda: const-z

Los renderizadores de software generalmente prefieren la subdivisión de pantalla porque tiene menos gastos generales. Además, intentan realizar una interpolación lineal a lo largo de una línea de píxeles para simplificar la configuración (en comparación con la interpolación afín 2D) y, por lo tanto, nuevamente la sobrecarga (además, el mapeo de texturas afín no cabe en el bajo número de registros de la CPU x86) . ; el 68000 o cualquier RISC es mucho más adecuado).

Se adoptó un enfoque diferente para Quake , que calcularía las coordenadas de perspectiva correcta solo una vez cada 16 píxeles de una línea de escaneo e interpolaría linealmente entre ellas, funcionando efectivamente a la velocidad de la interpolación lineal porque el cálculo de perspectiva correcta se ejecuta en paralelo en el coprocesador. [16] Los polígonos se representan de forma independiente, por lo que puede ser posible cambiar entre tramos y columnas o direcciones diagonales dependiendo de la orientación de la normal del polígono para lograr una z más constante, pero el esfuerzo parece no valer la pena.

Otras técnicas

Otra técnica fue aproximar la perspectiva con un cálculo más rápido, como un polinomio. Otra técnica más utiliza el valor 1/z de los dos últimos píxeles dibujados para extrapolar linealmente el siguiente valor. Luego, la división se realiza a partir de esos valores, de modo que solo se debe dividir un pequeño resto [17] , pero la cantidad de contabilidad hace que este método sea demasiado lento en la mayoría de los sistemas.

Finalmente, el motor Build amplió el truco de distancia constante utilizado para Doom al encontrar la línea de distancia constante para polígonos arbitrarios y renderizar a lo largo de ella.

Implementaciones de hardware

El hardware de mapeo de texturas se desarrolló originalmente para simulación (por ejemplo, como se implementó en Evans y Sutherland ESIG y Singer-Link Digital Image Generators DIG), y estaciones de trabajo de gráficos profesionales como Silicon Graphics , máquinas de efectos de video digitales de transmisión como Ampex ADO y que aparecieron más tarde. en gabinetes Arcade , consolas de videojuegos de consumo y tarjetas de video para PC a mediados de la década de 1990. En la simulación de vuelo , el mapeo de texturas proporcionó importantes señales de movimiento y altitud necesarias para el entrenamiento de pilotos que no están disponibles en superficies sin textura. También fue en las aplicaciones de simulación de vuelo donde se implementó el mapeo de texturas para el procesamiento en tiempo real con patrones de textura prefiltrados almacenados en la memoria para acceso en tiempo real por parte del procesador de video. [18]

Las unidades de procesamiento de gráficos (GPU) modernas proporcionan unidades de función fija especializadas llamadas muestreadores de texturas , o unidades de mapeo de texturas , para realizar mapeos de texturas, generalmente con filtrado trilineal o mejor filtrado anisotrópico de múltiples toques y hardware para decodificar formatos específicos como DXTn . A partir de 2016, el hardware de mapeo de texturas es omnipresente ya que la mayoría de los SOC contienen una GPU adecuada.

Algunos hardware combinan el mapeo de texturas con la determinación de superficies ocultas en renderizado diferido basado en mosaicos o renderizado de líneas de exploración ; Dichos sistemas solo recuperan los texels visibles a expensas de utilizar un mayor espacio de trabajo para los vértices transformados. La mayoría de los sistemas se han decidido por el enfoque de almacenamiento en búfer Z , que aún puede reducir la carga de trabajo del mapeo de texturas con la clasificación de adelante hacia atrás .

Entre el hardware de gráficos anterior, había dos paradigmas en competencia sobre cómo entregar una textura a la pantalla:

El mapeo de texturas inverso es el método que se ha convertido en estándar en el hardware moderno.

Mapeo de textura inversa

Con este método, un píxel de la pantalla se asigna a un punto de la textura. Cada vértice de una primitiva de renderizado se proyecta a un punto en la pantalla, y cada uno de estos puntos se asigna a una coordenada de texel au,v en la textura. Un rasterizador interpolará entre estos puntos para completar cada píxel cubierto por la primitiva.

La principal ventaja es que cada píxel cubierto por una primitiva se atravesará exactamente una vez. Una vez que se transforman los vértices de una primitiva, la cantidad de trabajo restante aumenta directamente con la cantidad de píxeles que cubre en la pantalla.

La principal desventaja frente al mapeo de textura directo es que el patrón de acceso a la memoria en el espacio de textura no será lineal si la textura está en ángulo con la pantalla. Esta desventaja a menudo se soluciona mediante técnicas de almacenamiento en caché de texturas , como la disposición de memoria de texturas swizzled .

La interpolación lineal se puede utilizar directamente para un mapeo de texturas afín simple y eficiente, pero también se puede adaptar para lograr una perspectiva correcta.

Mapeo de texturas hacia adelante

El mapeo de textura directo asigna cada texel de la textura a un píxel en la pantalla. Después de transformar una primitiva rectangular en un lugar en la pantalla, un renderizador de mapeo de textura directo itera a través de cada texel en la textura, esparciendo cada uno en un píxel del frame buffer .

Este fue utilizado por algunos hardware, como el 3DO , el Sega Saturn y el NV1 .

La principal ventaja es que se accederá a la textura en un orden lineal simple, lo que permitirá un almacenamiento en caché muy eficiente de los datos de la textura. Sin embargo, esta ventaja es también su desventaja: a medida que una primitiva se hace más pequeña en la pantalla, todavía tiene que iterar sobre cada texel de la textura, lo que provoca que muchos píxeles se sobredibujen de forma redundante.

Este método también es muy adecuado para renderizar primitivas cuádruples en lugar de reducirlas a triángulos, lo que proporcionaba una ventaja cuando la textura correcta en perspectiva no estaba disponible en el hardware. Esto se debe a que la distorsión afín de un quad parece menos incorrecta que el mismo quad dividido en dos triángulos (consulte el mapeo de textura afín arriba). El hardware NV1 también permitió un modo de interpolación cuadrática para proporcionar una aproximación aún mejor de la corrección de la perspectiva.

Las implementaciones de hardware existentes no proporcionaban un mapeo de coordenadas UV efectivo , lo que se convirtió en una técnica importante para el modelado 3D y ayudó a recortar la textura correctamente cuando la primitiva sobrepasa el borde de la pantalla. Estas deficiencias podrían haberse solucionado con un mayor desarrollo, pero desde entonces el diseño de la GPU se ha movido principalmente hacia el mapeo inverso.

Aplicaciones

Más allá del renderizado 3D, la disponibilidad de hardware de mapeo de texturas ha inspirado su uso para acelerar otras tareas:

Tomografía

Es posible utilizar hardware de mapeo de texturas para acelerar tanto la reconstrucción de conjuntos de datos de vóxeles a partir de exploraciones tomográficas como para visualizar los resultados . [19]

Interfaces de usuario

Muchas interfaces de usuario utilizan mapeo de texturas para acelerar las transiciones animadas de elementos de la pantalla, por ejemplo, Exposé en Mac OS X.

Ver también

Referencias

  1. ^ Wang, Huamin. "Mapeo de texturas" (PDF) . departamento de Ciencias e Ingeniería Informática . Universidad del Estado de Ohio . Archivado desde el original (PDF) el 4 de marzo de 2016 . Consultado el 15 de enero de 2016 .
  2. ^ "Mapeo de texturas" (PDF) . www.inf.pucrs.br . Consultado el 15 de septiembre de 2019 .
  3. ^ "Mapeo de textura CS 405". www.cs.uregina.ca . Consultado el 22 de marzo de 2018 .
  4. ^ Catmull, E. (1974). Un algoritmo de subdivisión para la visualización por computadora de superficies curvas (PDF) (tesis doctoral). Universidad de Utah.
  5. ^ "Método y aparato para la generación de texturas".
  6. ^ Williams, Lance (julio de 1983). "Paramétricas piramidales". Gráficos de computadora . 17 (3): 1–11. doi :10.1145/964967.801126.
  7. ^ Fosner, Ron (enero de 1999). "DirectX 6.0 se vuelve balístico con múltiples funciones nuevas y código mucho más rápido". Microsoft.com . Archivado desde el original el 31 de octubre de 2016 . Consultado el 15 de septiembre de 2019 .
  8. ^ Hvidsten, Mike (primavera de 2004). "La guía de mapeo de texturas OpenGL". páginas de inicio.gac.edu . Archivado desde el original el 23 de mayo de 2019 . Consultado el 22 de marzo de 2018 .
  9. ^ Jon Radoff, Anatomía de un MMORPG, "Anatomía de un MMORPG". radoff.com . 22 de agosto de 2008. Archivado desde el original el 13 de diciembre de 2009 . Consultado el 13 de diciembre de 2009 .
  10. ^ Roberts, Susan. "Cómo utilizar texturas". Archivado desde el original el 24 de septiembre de 2021 . Consultado el 20 de marzo de 2021 .{{cite web}}: CS1 maint: unfit URL (link)
  11. ^ Blythe, David. Técnicas avanzadas de programación de gráficos utilizando OpenGL. Siggraph 1999. ( PDF ) (ver: Multitextura)
  12. ^ Síntesis de mapas de relieve en tiempo real, Jan Kautz 1 , Wolfgang Heidrichy 2 y Hans-Peter Seidel 1 , ( 1 Max-Planck-Institut für Informatik, 2 Universidad de Columbia Británica)
  13. ^ ab "El léxico A a la Z de 1996 de próxima generación: corrección de perspectiva". Próxima generación . Núm. 15. Imagine Media . Marzo de 1996. pág. 38.
  14. ^ Kalms, Mikaël (1997). "Mapeo de texturas en perspectiva". www.lysator.liu.se . Consultado el 27 de marzo de 2020 .
  15. ^ "Motor de terreno Voxel", introducción. En la mente de un codificador, 2005 (archivado en 2013).
  16. ^ Abrash, Michael. Edición especial del Libro negro de programación de gráficos de Michael Abrash. The Coriolis Group, Scottsdale Arizona, 1997. ISBN 1-57610-174-6 (PDF Archivado el 11 de marzo de 2007 en Wayback Machine ) (Capítulo 70, pág. 1282) 
  17. ^ US 5739818, Spackman, John Neil, "Aparato y método para realizar una interpolación perspectivamente correcta en gráficos por computadora", publicado el 14 de abril de 1998 
  18. ^ Yan, Johnson (agosto de 1985). "Avances en imágenes generadas por computadora para simulación de vuelo". IEEE . 5 (8): 37–51. doi :10.1109/MCG.1985.276213. {{cite journal}}: Enlace externo en |ref=( ayuda )
  19. ^ "mapeo de texturas para tomografía".

Software

enlaces externos