Перевод маски и преобразование объектов за ней в OpenGL, GLSL - PullRequest
0 голосов
/ 20 апреля 2020

Я пытался сделать некоторые маски в OpenGL и GLSL, но ресурсы, которые я нашел в Интернете, обычно предполагают, что текстуры и их маски имеют одинаковые размеры и без преобразований ( Изображения и маски в OpenGL ES 2.0 )

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

enter image description here

Другие вопросы, которые я видел, либо повторное использование существующей координаты текстуры потому что текстура и маска имеют одинаковые размеры, или у них есть дополнительная координата текстуры для маски (https://gamedev.stackexchange.com/questions/93893/opengl-positional-2d-texture-masking), которую я не уверен, как они получили.

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

...