Отрисовка экземпляров OpenGL - отсечение усеченной пирамиды

Я рисую большое количество кубиков (100 000+) с помощью glDrawElementsInstanced (). Из-за соображений производительности я хотел бы реализовать отсечение усеченного конуса, но я не совсем уверен, как это сделать, когда я использую создание экземпляров. Насколько я знаю, единственный способ получить доступ к отдельному экземпляру объекта - это шейдеры, поэтому я предполагаю, что мне нужно выполнить отсечение там. Я не совсем понимаю, как это сделать. Может ли кто-нибудь указать мне на какие-нибудь учебники?


person user1760770    schedule 04.10.2013    source источник


Ответы (1)


Попытка выполнить отбраковку в вершинном шейдере слишком поздно. Вы должны каким-то образом передать преобразования куба шейдерам, просто возьмите эти данные и настройте Иерархию ограничивающих объемов . Затем нарисуйте только экземпляры, прошедшие отбраковку усеченного конуса.

person Robert Rouhani    schedule 04.10.2013