2010-09-16 4 views
4

Например, если я нарисую куб и поверну свой персонаж так, чтобы он смотрел в сторону от куба, он использует обработку CPU/gpu, чтобы рисовать его, даже если его нет на экране? Должен ли я, как программист, быть достаточно умным, чтобы не делать вызовы вызова opengl, если объект не находится на экране или очень далеко?Предоставляет ли opengl объекты, которые не отображаются?

ответ

3

Это не делает их как таковые, но использует ресурсы, которые, я считаю, это то, о чем вы просите. Да, да.

Вы, вероятно, после того, как усеченного выбраковки:

1

Вы можете включить 'scissor test' для обрезки рисунка против прямоугольника с ножницами.

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

Octrees и BSP trees - хорошее место для начала.

1

Да, GL действительно отбрасывать пиксели, которые находятся вне поля зрения, но по-прежнему потребляет ресурсы , так как это пиксель. Пропуск обратных вызовов невидимых примитивов - гораздо лучший подход.

2

Да. Все данные вершин, отправленные в OpenGL, будут потреблять ресурсы независимо от того, находится ли соответствующая геометрия. Как было предложено выше, отбрасывание усечения - это оптимизация, которая идентифицирует объекты, которые не будут находиться в объеме представления, и игнорирует/отбирает свои данные вершин. Таким образом, если данные вершин никогда не отправляются на GPU, он никогда не будет обрабатываться графическим процессором.

Смежные вопросы