3D модели: вершины с разным UV

Я пишу скрипт на python, который анализирует файл 3D-модели из одного формата в другой и заметил проблему при сохранении вершин. Кажется, что одна и та же вершина может иметь разные UV на разных гранях.

При написании скрипта я предполагал, что все вершины будут иметь уникальные UV, но теперь это кажется ложным предположением.

Есть ли общий способ хранения граней и вершин?

Было бы неплохо, если бы у меня был словарь для вершин, в котором хранятся UV, нормали и координаты (больше ничего пока хранить не буду) и словарь граней, содержащий список вершин, составляющих грань, но это не сработает, если одна вершина принимает разные значения UV на разных гранях.

Я пытался избежать хранения каждой отдельной вершины (например, хранения вершин с гранями, а не ссылок на вершины), но не могу найти обходной путь.


person MxLDevs    schedule 31.05.2011    source источник


Ответы (1)


Если вершина принадлежит общему ребру между двумя гранями, вам необходимо сохранить текстурные координаты обеих граней. Я обычно храню эту информацию на уровне треугольника, а не на уровне вершины.

person abenci    schedule 31.05.2011
comment
Я боялся, что это так, поскольку я заметил, что иногда вершины повторяются и имеют одинаковые UV, поэтому я не хотел хранить слишком много дубликатов. В любом случае, я изменил свою схему хранения, чтобы помещать номера граней в каждую сетку, а затем сохранять информацию о вершинах для каждой грани. - person MxLDevs; 31.05.2011