GL_POINT и GL_LINES - реальное использование? - PullRequest
3 голосов
/ 19 июля 2011

Я уже некоторое время использую OpenGL для создания 3D-приложений, но я никогда не понимал, как использовать примитивные типы рисования GL_POINT и GL_LINES для 3D-игр на этапе производства.(Где) точечные и линейные примитивы в OpenGL все еще используются в современных играх?

Ответы [ 8 ]

10 голосов
/ 19 июля 2011

Знаете, OpenGL предназначен не только для игр, но есть и другие виды программ, а не только игры.Подумайте о программах САПР или редакторах карт, где каркасы по-прежнему очень полезны.

7 голосов
/ 19 июля 2011

GL_POINTS используются в играх для точечных спрайтов (либо с помощью функции pointsprite, либо путем генерирования квадрата из точки в геометрическом шейдере) как для эффектов "искривления", так и для объемных облаков.
Они также используются внекоторые специальные алгоритмы, только когда, ну ... когда нужны очки .Например, в построении гистограмм в геометрическом шейдере, как описано в одной из последующих книг о графических процессорах GPU.Или, для отбора экземпляров графического процессора через обратную связь преобразования.

GL_LINES мало используются в играх (в основном это полезно для приложений САПР или моделирования).Помимо того, что они не нужны часто, если они необходимы, вам, как правило, потребуются линии толщиной более 1, которые плохо поддерживаются (читается как: быстрая) во всех реализациях.
В таком случае обычно рисуют толстуюлинии с треугольными полосками.

3 голосов
/ 19 июля 2011

(Где) точечные и линейные примитивы в OpenGL все еще используются в современных играх?

Где вы хотите их использовать?

При стандартных методах точки могут использоваться для построения точечных спрайтов, которые представляют собой двумерные плоские карты, которые всегда обращены к камере и имеют определенный размер. Они всегда квадратные в оконном пространстве. К сожалению, спецификация OpenGL делает их использование несколько сомнительным, так как точечные спрайты обрезаются на основе центра точки, а не размера двух треугольников, которые используются для ее визуализации.

Линии идеально подходят для рисования линий. Когда-то линии не были доступны в потребительском оборудовании, но они существуют уже много лет. Конечно, сглаженный рендеринг строк (GL_LINE_SMOOTH) - это другое дело.

Более важным является взаимодействие этих вещей с геометрическими шейдерами. Вы можете конвертировать очки в квад. Или треугольник. Или что хочешь, правда. Каждая «точка» - это просто выполнение геометрического шейдера. У вас могут быть точки, которые содержат положение и радиус сферы, и геометрический шейдер может выводить квадратик с выравниванием по окну, который является подходящим размером для фрагментного шейдера, чтобы выполнить некоторую логику трассировки лучей.

GL_POINTS просто означает «одна вершина на геометрический шейдер». GL_LINES означает «две вершины на геометрический шейдер». Как вы используете это зависит от вас.

3 голосов
/ 19 июля 2011

Кто сказал, что эти примитивы использовались в современных играх?

GL_LINES имеет решающее значение для каркасных изображений в инструментах трехмерного моделирования.

2 голосов
/ 19 июля 2011

Я бы сказал, для целей отладки, но это только с моей точки зрения.

Некоторые примитивы можно использовать в областях, где вы не думаете, что их можно применить, например, в системе частиц.

1 голос
/ 20 июля 2011

Я согласен с Pompe de velo о том, что строки полезны для отладки.Они могут быть полезны при отладке AI и алгоритмов обнаружения столкновений, чтобы вы могли визуализировать данные, которые используются AI или обнаружением столкновений.В некоторых примерах использования ИИ линии могут использоваться для отображения путей ИИ или сеток путей.Линии могут использоваться для отображения данных управления, которые использует ИИ.Линии могут использоваться, чтобы показать, к чему стремится ИИ.Отображаемые данные могут отображаться в текстовом виде, но иногда их легче увидеть в визуальном виде.

0 голосов
/ 27 февраля 2014

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

0 голосов
/ 18 сентября 2013

В большинстве случаев частицы основаны на GL_POINT, учитывая, что на экране может быть огромное количество частиц, поэтому было бы очень дорого использовать 4 вершины на частицу, поэтому GL_POINT решает эту проблему

GL_LINES goodв целях отладки режим каркаса может использоваться в различных случаях.Как упоминалось выше - в приложениях САПР, но если вы заинтересованы в использовании gamedev - это хорошо для редактора сцен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...