2011-06-29 16 views
5

Estoy tratando de escribir un archivo obj con vértices. Estoy computando las normales de los vértices en mi código y también escribiendo en este archivo. Cuando trato de renderizar este archivo en Meshlab, leo los vértices correctamente, pero cuando voy a 'Render-> Show vertex normales', no muestra las normales que calculé. Más bien, MeshLab calcula sus propias normales y las muestra.MeshLab: Renderizar archivo obj con mis propias normales calculadas

No estoy seguro de cómo puedo visualizar las normales que calculé/escribí al archivo. Quiero aplicar el sombreador Meshlab más tarde en función de mis normales computadas.

Para probar esta creé una prueba obj Archivo-

vn 0.517350 0.517350 0.517350 
v 0.500000 0.500000 0.500000 
vn -0.333333 0.666667 0.666667 
v -0.500000 0.500000 0.500000 
vn 0.666667 -0.333333 0.666667 
v 0.500000 -0.500000 0.500000 
vn -0.666667 -0.666667 0.333333 
v -0.500000 -0.500000 0.500000 
f 1//1 2//2 3//3 
f 4//4 3//3 2//2 

Este es sólo un cuadrado. Ahora si cambio los valores normales en este archivo, aún muestra sus propias normales de vértice cuando selecciono 'Render-> Mostrar las normales de los vértices'. ¿Cómo puedo tener mis propias normales y aplicar el sombreador que funciona en mis normales computadas? Por favor ayuda.

Gracias!

+0

¿Intentó primero declarar todos los vértices, luego todas las normales? Tal vez el análisis de archivo .obj espera eso (algunos analizadores lo hacen). Otra sugerencia: trate de incluir también las coordenadas de textura, incluso si no las usa. –

+0

No todos los importadores de OBJ respetan las normas y algunas veces anulan la malla con sus propias normales calculadas. Primero me aseguraría de que ese no sea el caso con MeshLab, de lo contrario, podría estar haciendo todo bien y aún así obtener un resultado incorrecto. –

Respuesta

0

No todos los importadores de OBJ respetan las normas. Encontré este viejo error que parece estar todavía abierto sobre cómo MeshLab ignora las normales en OBJs: http://sourceforge.net/p/meshlab/bugs/70/

Es posible que esté haciendo todo correctamente, pero el problema puede no estar de su lado.

Al tratar con el intercambio de malla que puede ser bastante peludo debido a los diferentes niveles de soporte en varios programas, es útil si lo haces mucho para tener múltiples aplicaciones 3D para probar tus datos exportados. Entonces puede averiguar más rápidamente si el problema está de su parte o la de ellos.

Una solución si absolutamente necesita que el objeto se visualice correctamente contra un importador dañado y no puede usar otros formatos es desabrochar manualmente (duplicar) los vértices para proporcionarle esos pliegues/bordes duros. Eso no le dará tanta libertad como la especificación arbitraria de las normales, pero le permitirá conservar esos límites discontinuos donde las regiones no deben interpolarse sin problemas y en su lugar tienen un doblez.

Cuestiones relacionadas