динамические кубические карты — opengl

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

Однако при использовании динамической кубической карты мы включаем объекты рядом с камерой. Так, например; у нас есть гигантское стекло перед камерой, и у нас есть объекты перед стеклом, и нам нужно рассчитать преломление. Поскольку в glsl мы передаем функции текстуры только vec3, координата на стекле игнорируется. Например; вектор преломления в середине стекла равен vec3(0, -0,2, -0,6), а преломление в правом нижнем углу стекла также равно vec3(0, -0,2, -0,6). Таким образом, цвета обеих координат будут одинаковыми, но не должны. Как мы можем справиться с этой проблемой?


person Simon Müller    schedule 23.05.2017    source источник


Ответы (1)


Чтобы решить эту проблему, вы можете использовать кубические карты с коррекцией параллакса, это позволяет вам создавать «локальные кубические карты» (с ограничивающей рамкой) вместо «бесконечных кубических карт».

У Себа Лагарда очень хорошая статья, подробно объясняющая все это (см. главу "Коррекция параллакса для локальных кубических карт").

person VB_overflow    schedule 24.05.2017