Что именно означает термин «пакет» в 3D-информатике (3D-движок)?

Я разрабатываю 3D-приложение с использованием OpenGL.

У меня неправильное представление о части следующего сообщения: лучшие практики OpenGL VAO

Я не уверен в значении термина «партия» в этом посте.

Значит ли это для каждого объекта сцены? Так это предлагает создать VAO для каждого объекта сцены или нескольких объектов? Относится ли партия к нескольким объектам, использующим одни и те же материалы, преобразования и затенение?


person user1364743    schedule 23.05.2014    source источник


Ответы (1)


Пакет — это просто «партия» (= группа) примитивов, т. е. точек, линий или треугольников, нарисованных с помощью одного вызова glDraw…. За этим нет никакой более глубокой магии.

Значит ли это для каждого объекта сцены?

Нет. OpenGL не знает, что такое «модель». Эта концепция полностью выходит за рамки того, что делает OpenGL. OpenGL просто рисует на экране точки, линии или треугольники, и все.

Так что предлагает создать VAO для каждого объекта сцены или нескольких объектов?

Нет, это предполагает, что вы создаете VAO и VBO таким образом, чтобы вы могли объединить максимальное количество примитивов (= треугольник | линия | точка), которые можно нарисовать с минимальным количеством glDraw… вызовов в один VAO/VBO.

Например, предположим, что вы визуализируете склад, полный картонных коробок, где каждая коробка имеет (немного) различную форму (подумайте об отделе самообслуживания в магазине ИКЕА; я почти уверен, что они выглядят примерно одинаково в каждом магазине поблизости). мир): Несмотря на разную форму, у коробок есть много общего: их цвет, текстура и т. д. Итак, что вы должны сделать, так это поместить все эти коробки в один VAO/VBO и нарисовать их все вместе, используя одну и ту же текстуру. и шейдер с помощью одного или нескольких glDraw… вызовов.

person datenwolf    schedule 23.05.2014
comment
Итак, подводя итог тому, что вы сказали, пакет определяется всей геометрией (сетками) в сцене, имеющей одну и ту же текстуру (материалы), информацию о преобразовании и затенении. Итак, если моя сцена состоит из дома с определенной текстурой и сотни деревьев вокруг него с другой текстурой, но с другим оттенком, то будет 2 партии. Это правда ? - person user1364743; 23.05.2014
comment
@ user1364743: Нет, партия не определяется таким образом. Пакет — это просто вся геометрия, нарисованная одним вызовом glDraw…. Не переусердствуйте. В нем нет геометрического или связанного со сценой определения. Пакет — это все, что входит в набор, который обрабатывается конкретным вызовом glDraw…, и все. Вы стремитесь собирать данные в такие пакеты таким образом, чтобы свести к минимуму количество glDraw… вызовов. - person datenwolf; 23.05.2014
comment
В порядке. Спасибо за все ваши ответы. - person user1364743; 23.05.2014