Webgl Frustum view - PullRequest
       1

Webgl Frustum view

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

Когда я рендерил 5 блоков в webgl с одной текстурой, приложение работает на скорости 60 кадров в секунду, хорошо.Но когда я рендерил 70 блоков, производительность снижается до ~ 40 кадров в секунду, но объемы просмотра по-прежнему равны 5.

Я отладил приложение, и все 70 блоков используют шейдеры для фрагментов, когда нет необходимости, потому что 65 из нихвне усеченного.Я подумал, что объявление gl.viewport вырезано из полигонов, но не для этого.

Я хотел бы знать, является ли выборка из fustrum техникой, позволяющей избежать этого?Как я могу активировать отбраковку?Есть ли команда webgl, или я должен сделать это вручную?

Заранее спасибо,

1 Ответ

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

Как вы уже догадались: вы должны сделать это вручную.

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

Возможно ли, что ваш цикл прорисовки имеет другие неэффективности, которые могут замедлять процесс по мере увеличения количества блоков?Например, вы привязываете текстуру для каждой коробки?Или запросить шейдер с помощью getAttribLocation или getUniformLocation?Или делать другие запросы WebGL (все из которых значительно замедляют конвейер)?

...