VR-рендеринг на основе Instanced в OpenGL
Я пытаюсь использовать инстансинг для рендеринга VR в OpenGL с 1 вызовом отрисовки, 2 экземплярами (один для левого глаза, один для правого глаза). Затем вершинный шейдер преобразует вершины влево для instanceID 0 и вправо для instanceID 1. Единственное, что мне нужно, - это окно просмотра для каждого экземпляра для автоматического выбора / отсечения оборудования. Это выполнимо в DirectX, но в OpenGL?
1 ответ
Недавно я на самом деле реализовал инстансированный стерео рендеринг для VR и столкнулся с той же проблемой. У меня был выбор использовать геометрический шейдер для инстансированных видовых экранов, но я не хотел, чтобы это накладные расходы привели. Итак, в итоге я сдвинул перспективу для каждого вида и использовал плоскость отсечения.
Так что это, вероятно, то, что вы ищете, плоскость клипа. Это действительно просто реализовать в вершинном шейдере, вы просто передаете координату 'x' в gl_ClipDistance. https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/gl_ClipDistance.xhtml
Удачи