Отбор усеченной вершины opengl без вызовов glGet*

В различных примерах вычисления усеченной пирамиды используется glGetFloatv() для получения текущей проекции и матриц представления модели (GL_PROJECTION_MATRIX, GL_MODELVIEW_MATRIX), и на их основе выполняется отбраковка усеченной пирамиды.

Я читал, что glGet* — это то, что вам не нужно в основном цикле рендеринга;

«Использование функций «Get» или «Is» снижает производительность рендеринга. Эти команды заставляют графическую систему выполнять все вызовы OpenGL в очереди, прежде чем она сможет ответить на запрос «Get» или «Is».

Итак, мой вопрос. Как мне создать надежный алгоритм отбраковки Frustum в моем коде и куда его поместить, чтобы гарантировать, что эта задержка никогда не произойдет?


person Andreas    schedule 06.09.2009    source источник


Ответы (2)


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

person Goz    schedule 06.09.2009