MeshLab: визуализация файла obj с моими собственными вычисленными нормалями - PullRequest
5 голосов
/ 29 июня 2011

Я пытаюсь написать файл obj с вершинами.Я вычисляю нормали вершин в своем коде и также пишу в этот файл.Когда я пытаюсь визуализировать этот файл в Meshlab, он правильно читает вершины, но когда я перехожу к 'Render-> Показать нормали вершин', он не показывает вычисленные мной нормали.Скорее MeshLab вычисляет свои собственные нормали и показывает их.

Я не уверен, как я могу визуализировать нормали, которые я вычислил / записал в файл.Я хочу применить шейдер Meshlab позже на основе моих вычисленных нормалей.

Чтобы проверить это, я создал тестовый файл obj-

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

Это всего один квадрат.Теперь, если я изменяю значения нормалей в этом файле, он по-прежнему показывает свои собственные нормали вершин, когда я выбираю 'Render-> Показать нормали вершин'.Как я могу иметь свои собственные нормали и применить шейдер, который работает с моими вычисленными нормалями ??Пожалуйста, помогите.

Спасибо !!

1 Ответ

0 голосов
/ 24 мая 2015

Не все импортеры OBJ уважают нормы. Я обнаружил эту старую ошибку, которая, кажется, все еще остается открытой о том, как MeshLab игнорирует нормали в OBJ: http://sourceforge.net/p/meshlab/bugs/70/

Возможно, вы все делаете правильно, но проблема может быть не на вашей стороне.

При работе с сетчатым обменом, который может стать довольно сложным из-за разных уровней поддержки в различных программах, удобно, если вы делаете это много, чтобы иметь несколько 3D-приложений для проверки ваших экспортированных данных. Тогда вы сможете быстрее выяснить, является ли проблема на вашей стороне или на их стороне.

Единственный обходной путь, если вам абсолютно необходимо, чтобы объект правильно отображался на фоне поврежденного импортера и не может использовать другие форматы, - это вручную разворачивать (дублировать) вершины, чтобы получить эти острые складки / жесткие края. Это не даст вам столько свободы, сколько произвольно задает нормали, но позволит сохранить те прерывистые границы, где области не должны плавно интерполироваться, а вместо этого иметь складку.

...