Количество визуализированных полигонов

#opengl-es

#opengl-es

Вопрос:

Когда-то давно я увлекался программированием Homebrew для Nintendo DS. Во время тестирования аппаратного обеспечения 3D вы могли бы получить количество визуализированных полигонов в данный момент из аппаратного регистра. Я делал это, чтобы подтвердить, сколько, приблизительно, определенной модели будет отрисовано под разными углами, потому что было разрешено максимум 2048 треугольников.

Я надеюсь, что это не совсем глупый вопрос… но вот оно начинается. Есть ли способ получить количество полигонов, которые фактически визуализируются в каждом кадре (не пропущенных буферизацией глубины) в OpenGL? В частности, OpenGL ES 1.1?

Ответ №1:

Вы могли бы просто запустить каждый треугольник с помощью алгоритма, чтобы определить, находится ли он внутри усечения вида, обработав область просмотра как четыре плоскости. Тогда остается только проверить, на какой стороне плоскости находится каждый треугольник, и убедиться, что вы суммируете только те треугольники, которые находятся на правильной стороне всех четырех плоскостей. Это не очень хорошо скажется на скорости рендеринга, но даст вам точное количество визуализируемых полигонов для каждого угла обзора. Этот веб-графический Gems содержит много хорошего исходного кода, который может помочь вам с математической частью вещей, если вам это нужно. Он содержит исходный код для серии из пяти книг, которые содержат графические алгоритмы, такие как пересечение лучей треугольника и т.д.

Редактировать:

Я не заметил вашего комментария о буферизации глубины, приведенное выше описание относится ко всем треугольникам в окне просмотра. Вы могли бы просто добавить еще две плоскости на ваших расстояниях буфера глубины и использовать их для дальнейшей фильтрации видимых полигонов.

Комментарии:

1. Вау… Я думал, что должен быть более простой способ … Думаю, в конце концов, это был не такой глупый вопрос. Я считаю, что должно хватить всех треугольников в окне просмотра. Спасибо.