Estoy tratando de entender la teoría matemática detrás del mapeo UVW. ¿Alguien puede explicarme cómo funciona el mapeo UVW? O al menos proporcionarme un puntero?
Estoy tratando de entender la teoría matemática detrás del mapeo UVW. ¿Alguien puede explicarme cómo funciona el mapeo UVW? O al menos proporcionarme un puntero?
Respuestas:
Así lo entiendo. Podría estar totalmente equivocado, pero estoy seguro de que alguien lo haráfuego corrígeme si me equivoco.
La teoría matemática detrás del mapeo de textura UVW es similar a la teoría detrás del mapeo de textura UV.
Vea el enlace de Bummzack aquí: ¿Qué es exactamente el mapeo UV y UVW? para obtener una mejor explicación de lo que es el mapeo UV. Básicamente, está asignando un área de una textura a un área de una superficie. Interpolar los valores intermedios en función de esas asignaciones.
Lo mismo con UVW. Excepto que ahora está asignando un volumen de textura a un volumen de superficies. Interpolando los valores intermedios. Ahora con la tercera dimensión puede deformar una textura 2D para que se ajuste mejor a un objeto.
Veamos cómo se usa esto en texturas 3D. Las texturas 3D se pueden crear mediante capas de texturas 2D e interpolando los elementos intermedios. Visualmente, una textura 3D podría verse así:
Donde los "planos" en el eje R son texturas 2D. Si tuviéramos que configurar cada capa con un color sólido diferente y aplicar esto a un objeto 3D, obtendríamos algo como esto:
Puede ver cómo los colores sólidos se han interpolado entre las capas. Aquí está el mismo tipo de cosas, pero con un paisaje. Donde de arriba a abajo, las texturas pueden ser: nieve, roca, hierba, arena.
Ahora, si solo estamos usando un "plano" R (una textura 2D), pero ¿estamos mapeando un objeto 3D? Obviamente, esto no da tanta flexibilidad como múltiples capas de texturas, pero seguro es mucho menos trabajo. Sin embargo, solo proyectar una textura 2D en una superficie 3D va a causar algunos problemas. Piensa en la situación en la que haces brillar un láser en una pared. En un ángulo perpendicular, el punto láser es agradable y redondo. En cualquier otro ángulo, el punto comienza a estirarse y sesgarse. Lo mismo sucederá al proyectar una textura 2D en una superficie 3D. Cualquier cara que no sea perpendicular a la proyección estará distorsionada. ¿Cómo arreglamos eso? Al distorsionar la proyección. Tomemos el ejemplo del láser, si tuviéramos un láser que al brillar sobre una superficie perpendicular se estirara y se torciera. Cuando proyectamos ese láser en una pared en ángulo, el ángulo podría "La tercera dimensión nos permite "dar forma" a la proyección para que se ajuste a la superficie a la que apuntamos. Por ejemplo, algún tipo de superficie 3D ondulada podría tener una textura como esta (pero no tan mala):
Como dije, esto es solo mi comprensión. Estoy de acuerdo, no hay mucha buena información sobre este tema. Esperemos que esta respuesta (probablemente incorrecta) incite a alguien con más conocimiento del tema a hablar.
Las imágenes para las texturas 3D provienen de esta página: http://www.gpwiki.org/index.php/OpenGL:Tutorials:3D_Textures