Render.ru

Получить уникальные вершины из фейсов объекта

VladimirNK

Пользователь сайта
Рейтинг
2
#1
Друзья!

MaxScript-ом занимаюсь 2 дня, пишу экспортер из Макса в формат XPlane OBJ.
Если вопрос сильно уж простой - не обижайтесь.

Есть задача - получить список вершин объекта.
Это можно сделать вот таким вот кодом, как вы все знаете:

num_faces = tmesh.numfaces
for f = 1 to num_faces do
(
face = getFace tmesh f
for v = 1 to 3 do
(
format "VT %\n" (getVert tmesh face[v]) to: out_file
)
)

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

Protactinium

Пользователь сайта
Рейтинг
2
#2
Так можно получить список уникальных вершин сетки, но без связи с гранями:
tmesh = $.mesh
for i=1 to tmesh.numVerts do
print (getVert tmesh i)

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