Как перенаправить результат рендеринга в разные области целевой текстуры? - PullRequest
0 голосов

Я пытаюсь создать серию карт глубины (около 300 и более) с инстансированным рендерингом в opengl.

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

Для удобства последующего использованияМой первоначальный план был попыткой сделать несколько карт глубины низкого разрешения текстурой высокого разрешения.Вот так: https://i.imgur.com/tETVoCZ.png (без рендеринга экземпляров, только несколько вызовов отрисовки).

Мой текущий результат: https://i.imgur.com/ognhTrH.png (экземплярный рендеринг, INSTANCE_COUNT = 2, разрешение карты глубины составляет 1/4 от целевой текстуры).Карты глубины в двух разных исходных пространствах перекрываются.Я не могу контролировать вывод кадра шейдера в нужную область.

Рендеринг в Multiviewport может решить эту проблему, и я работаю над этим.Я не знаю, если вызов glViewportIndexedf() 300 раз за кадр существенно повлияет на производительность при рендеринге сложной модели.

Есть ли другой лучший способ решить эту проблему?Любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...