首页 > 解决方案 > 在 OpenGL、GLSL 中翻译蒙版并转换其后面的对象

问题描述

我一直在尝试在 OpenGL 和 GLSL 中进行一些遮罩,但我在网上找到的资源通常假设纹理及其遮罩具有相同的尺寸且没有转换(OpenGL ES 2.0 中的图像和遮罩

我有一个已翻译的蒙版(粉红色圆圈),我有一个可以在蒙版后面进一步翻译和旋转的纹理(红色方块)。我想在粉红色圆圈下显示红色方块的部分。

在此处输入图像描述

我看到的其他问题要么重用现有的纹理坐标,因为纹理和蒙版的尺寸相同,要么它们有一个额外的蒙版纹理坐标(https://gamedev.stackexchange.com/questions/93893/opengl- positional-2d-texture-masking)我不确定他们是怎么得到的。

如何将不同的转换应用于不同尺寸的蒙版和纹理并仅显示重叠?我考虑过做一些类似于阴影贴图的事情,首先渲染任何遮罩纹理,获取深度贴图,然后在我想要遮罩某些东西时在我的片段着色器中对其进行采样。我实现了一个阴影贴图,这样我就可以重用一些代码。这是一个好的解决方案吗?

标签: c++openglglsltransformationmask

解决方案


推荐阅读