#3d #3d-modelling
#3D #3d-моделирование
Вопрос:
Я пишу скрипт на Python, который переводит файл 3D-модели из одного формата в другой и заметил проблему при сохранении вершин. Похоже, что одна и та же вершина может иметь разные UV-значения на разных гранях.
При написании скрипта я предполагал, что все вершины будут иметь уникальные UV, но теперь это кажется ложным предположением.
Существует ли общий способ хранения граней и вершин?
Было бы неплохо, если бы у меня был словарь для вершин, в котором хранятся UV, нормали и координаты (больше ничего пока хранить не буду) и словарь граней, содержащий список вершин, составляющих грань, но это не сработает, если одна вершина принимает разные значения UV на разных гранях.
Я пытался избежать сохранения каждой отдельной вершины (например, хранить вершины с гранями, а не ссылки на вершины), но не могу придумать обходной путь.
Ответ №1:
Если вершина принадлежит общему краю между двумя гранями, вам необходимо сохранить координаты текстуры обеих граней. Обычно я храню эту информацию на уровне треугольника, а не на уровне вершины.
Комментарии:
1. Я боялся, что это так, поскольку я заметил, что иногда вершины повторяются и имеют одинаковые UV, поэтому я не хотел хранить слишком много дубликатов. В любом случае, я изменил свою схему хранения, чтобы помещать «номера граней» в каждую сетку, а затем сохранять информацию о вершинах для каждой грани.