¿El mapeo UV genera para algunos puntos del modelo 3D varios puntos en la proyección 2D?


8

Suponga que mi modelo 3D es una pirámide con una base rectangular y numero cuatro esquinas de la base con 1, 2, 3, 4 y le doy 5 al punto superior. Si proyecto esta pirámide en un objeto en forma de estrella 2D, ¿no se asociarían los cuatro puntos externos de la estrella con el punto número 5 en el modelo 3D?

Imagen dibujada a mano de una pirámide de base cuadrada y su red 2D en forma de estrella


Parece que piensas que "proyectar esta pirámide en un objeto en forma de estrella 2D" es una operación definida. No lo es, hasta que lo hagas.
Jessy

2
Para hacer un mapa UV de esa manera, debes pensar en (5) como cuatro vértices diferentes que tienen las mismas coordenadas XYZ.
Russell Borogove el

Respuestas:


10

De la forma en que generalmente se define, cada vértice en una malla corresponde a una coordenada UV, y debe haber exactamente una de esas coordenadas por vértice, porque así es como un renderizador buscaría texels. Por lo tanto, es imposible tener múltiples coordenadas UV para un solo vértice a menos que tenga múltiples parametrizaciones para su malla.

Sin embargo, las mallas a menudo se dividen durante las parametrizaciones y los mismos vértices pueden terminar en múltiples ubicaciones, como en su ejemplo. Muy a menudo, esos vértices simplemente se replican mientras se carga / renderiza, por lo que el mapeo de vértice a uv permanece de 1 a 1 o de muchos a 1. Por lo tanto, un procesador probablemente interpretará su ejemplo de la siguiente manera (v5 se divide en 4):

ingrese la descripción de la imagen aquí


4

Solo necesito agregar un poco a la respuesta de ap_.
Por supuesto, puede tener múltiples UV para un vértice, esto se llama capas UV. Así es como los motores han mostrado mapas de luz y mapas de albedo al mismo tiempo, desde la llegada de los mapas de luz. (¿motor de terremoto en 1996, tal vez?)
Puede tener más capas UV, si desea hacer multi-texturas como para terrenos, mapa de luz, albedo grande, detalle de albedo, mapa normal ...

Desafortunadamente, el rasterizador nunca elegirá una capa UV dependiendo de la primitiva que esté renderizando. Tal renderizador podría hacerse con un búfer de índice suplementario (primitivo al búfer de mapeo de capa UV) pero no hay tarjetas gráficas y ninguna API de gráficos lo admite. Esta es una violación innecesaria para KISS de todos modos.

Entonces, lo que se haría en este caso es separar el vértice de la pirámide en 4 vértices distintos durante el tiempo de diseño. De todos modos, la primera razón para esto, no es el desenvolvimiento de los rayos UV, sino la definición principalmente normal. Si desea bordes afilados, debe romper el sombreado, por lo tanto, debe tener diferentes normales, también, como los rayos UV, generalmente se definen 1-1 en la secuencia de vértices.

Sugerencia final, tal vez realmente no quieras usar esta envoltura, prefiero sugerir esto:

ingrese la descripción de la imagen aquí

De esta manera, tiene una continuidad perfecta para el filtrado y la apariencia en los bordes y en el ápice.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.