Быстрый вопрос: Какой самый быстрый способ визуализации большого массива частиц 4x4 / 8x8 в opengl? В настоящее время я трачу 2 треугольника на каждого, но я думаю, что он медленный, поэтому я действительно хотел бы знать, правильно ли я делаю это .....
opengl
graphics
software-engineering
user1010005
источник
источник
Ответы:
Вы можете рисовать точки с OpenGL.
Вы хотите вызывать glDrawArrays () или glDrawElements () с GL_POINTS (вместо GL_TRIANGLE_STRIP или чем-то еще, что вы используете.)
Это будет рисовать точки на экране в зависимости от текущего размера точки, который вы можете установить с помощью glPointSize () . Вы также можете использовать псевдонимы для этих точек, но по моему опыту не все драйверы / оборудование поддерживают псевдонимы.
Вы не можете текстурировать эти точки; они просто одного цвета.источник
В ядре OpenGL 3.2 и выше, геометрические шейдеры доступны для использования. Чтобы дать краткий обзор, вы бы только сказали OpenGL рисовать точки, которые представляют положения ваших частиц, и эти точки будут нормально проходить через вершинный шейдер, но затем, когда они попадают в геометрический шейдер, он строит прямоугольник (вне из двух трис), испуская вершины на следующую стадию конвейера. Наряду с вершинами вы можете программно генерировать нормали и координаты текстуры.
Поскольку все это делается аппаратно, я уверен, что это самый быстрый способ визуализации частиц точечного спрайта.
источник