¿Cuáles son las desventajas de marcar cada borde como una costura al desenvolver una malla?

9

Soy un programador que está tratando de aprender un poco de modelado 3D básico. Estoy razonablemente cómodo con el modelado de geometría básica y puedo desenvolver y texturizar modelos simples. Pero tengo una pregunta...

Cuando se trata de desenvolver modelos, todos los tutoriales enfatizan la necesidad de marcar la menor cantidad de costuras posible al desenvolver una malla. Mi pregunta es, ¿por qué? Supongo que esto es muy obvio para las personas con experiencia en modelado, pero no para mí (dado que mis esfuerzos de texturas se limitan principalmente a la generación de AO o mapas normales).

¿Supongo que se trata únicamente de preservar la forma del modelo cuando se trata de editar la textura difusa? ¿Es esa la única razón por la que no desea simplemente cortar cada borde y colocar todas las caras individualmente?

Me doy cuenta de que estoy mostrando mi total ignorancia del tema al hacer esta pregunta, así que disculpas, pero a veces las cosas obvias son las más difíciles de encontrar respuestas a .

NM01
fuente

Respuestas:

10

Cada "costura UV" en su modelo, es decir, cada lugar donde las caras del modelo son continuas mientras se corta el mapa UV para el mismo borde, es un problema tanto para los artistas como para el hardware.

  • Hace que sea más difícil texturizar el modelo correctamente. Esto es especialmente cierto cuando la edición se realiza en la textura directamente, en 2D, no en un programa de pintura 3D. Cuantas menos costuras, más fácil es envolver mentalmente la textura alrededor del modelo.
  • Si bien la combinación simple puede funcionar para la textura difusa y algunos otros tipos de textura, debe tener mucho cuidado con cosas como un mapa normal de espacio tangente. Para estos, no puede simplemente mezclar linealmente (interpolar) entre los valores X e Y (generalmente asignados a R y B en visores de textura) sin que el vector normal resultante se desnormalice y la costura se vuelva visible (generalmente como un poco más oscura "línea") bajo algunas condiciones de iluminación. Por otro lado, tratar de arreglarlo en la textura y hacer que los valores en ambos bordes UV estén cercanos o iguales pueden hacer que la costura se vuelva visible porque es anormalmente plana en comparación con el resto del modelo.
  • Los sombreadores de píxeles tienen que hacer más trabajo en cada discontinuidad (incluso si eso generalmente se abstrae en el hardware hoy en día), y llegar a diferentes lugares de memoria para obtener los datos de textura (que generalmente es la "ruta de código" menos optimizada en el hardware) , en lugar de trabajar normalmente con valores de textura espacialmente cercanos.
  • El mipmapping automático (y muy pocas tiendas pueden permitirse retocar las texturas de baja resolución generadas manualmente) interrumpirá todo el trabajo duro que usted y sus artistas hicieron para hacer invisible una costura en la resolución predeterminada.

Dicho esto: si su estilo artístico dicta que las caras del modelo son claramente distintas entre sí y solo tendrán bordes "duros" y explícitos, nada de eso es un problema.

Martin Sojka
fuente
Excelente punto sobre los accesos de memoria incoherentes en el sombreador de píxeles. Saltar alrededor de una textura como esa realmente destrozará el caché de texturas.
Bob Somers
@Bob Somers: Para ser justos, esto no será un gran éxito en el rendimiento a menos que esté programando para una plataforma móvil o de gama baja, o si ya está gravando las GPU (s) al máximo.
Martin Sojka
Buen punto Martin. Sin embargo, he estado viviendo en tierra GPGPU durante el año pasado escribiendo código sensible al rendimiento, así que pensé que era un punto interesante que no es obvio de inmediato. :)
Bob Somers
6

Dos grandes razones están dando sentido a la textura sin envolver y los artefactos de borde .

Como mencionó, puede ser muy difícil para un artista entender cómo sus ediciones 2D se ajustarán al modelo 3D si las costuras no tienen sentido. En el caso en que cada cara se separó y se colocó de manera óptima con algún tipo de algoritmo de empaquetado de contenedores, sería casi imposible editar la textura a mano. Esperemos que estén usando algún tipo de herramienta de pintura 3D en estos días, pero aún así es bueno (¡y necesario!) Hacer ediciones directamente en la textura 2D.

El otro problema (artefactos de borde) puede aparecer debido a limitaciones de precisión de coma flotante con muestreo de textura. Digamos que las caras están dispuestas desconectadas sobre un fondo negro. Debido a un error de coma flotante en sus cables de textura o durante el muestreo en la tarjeta de video, es muy probable que esos píxeles de borde negro se muestren ocasionalmente o se mezclen cuando se filtra la textura. Debido a que esto afecta a cada cara, tendrás este extraño efecto de fondo-artefacto-estructura metálica. La única forma de combatir esto sería encoger artificialmente sus cordones de textura muy ligeramente, pero luego cada cara se vería extraña porque no se alinearía con sus vecinos en cuanto a textura.

Lo bueno de minimizar las costuras es que hay menos bordes en su modelo donde la cara está adyacente al fondo (sin usar), por lo que hay menos lugares para que esos artefactos se arrastren. La mayoría de las caras están inmediatamente adyacentes a sus caras vecinas en el modelo real, por lo que los artefactos de borde son píxeles adyacentes en la textura y nunca los notará.

Bob Somers
fuente