#opengl #lwjgl #wavefront
#opengl #lwjgl #волновой фронт
Вопрос:
Прочитав формат файла OBJ, я понял, что есть несколько других атрибутов, таких как подобъекты ( -o
), Группы ( -g
) и т.д.
У меня возникли проблемы с пониманием того, как анализировать эти другие параметры (при необходимости). Должен ли я загружать данные вершин и граней каждого ( -o
) в отдельные VAOS?
Кроме того, в этом случае, как будет работать вращение всего объекта? Начнут ли все подобъекты вращаться вокруг своих собственных центров?
Как заставить несколько подобъектов вращаться в унисон, как один объект, и при этом иметь независимый контроль над каждым, когда это необходимо?
Ответ №1:
Должен ли я загружать данные вершин и граней каждого (-o) в отдельные VAOS?
В принципе, да. Каждый объект (-o) или группа сглаживания (-g или —s) по сути является отдельной частью общей модели. Таким образом, вы должны создавать отдельную визуализируемую сетку для каждой группы.
Обычно данные вершин (вершины, нормали, координаты текстуры) не разделяются между моделями, но в формате OBJ нет ничего, что говорило бы, что они не могут быть AFAIK.
Как заставить несколько подобъектов вращаться в унисон, как один объект, и при этом иметь независимый контроль над каждым, когда это необходимо?
Это скорее вопрос дизайна. Предполагая, что у вас есть какой-то древовидный график сцены, тогда вы должны создать корневой узел для всей модели OBJ и присоединить отдельные узлы для каждой группы. Чтобы повернуть всю модель, вы применяете преобразование к корневому узлу. Насколько я знаю, формат OBJ не определяет преобразования, вращения и т.д.