OpenGL - GLSL - 将金属粗糙度图提取到金属图和粗糙度图?

OpenGL - GLSL - Extract MetalRoughness map to metal map and roughness map?

我有一个问题,我希望它是正确的地方,我开始使用 PBR,为此我已经开始使用损坏的头盔模型 (https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/DamagedHelmet)。

我的问题是,在我能够阅读的所有教程中,他们将金属和粗糙度作为单独的纹理贴图。

在这种情况下,我只有金属和粗糙度的独特纹理。

这个贴图有什么方法可以提取粗糙度贴图和金属贴图吗?

MetalRoughness Map

glTF 2.0 specs 将金属粗糙度纹理贴图定义为单个纹理:

The metalness values are sampled from the B channel. The roughness values are sampled from the G channel.

因此在 GLSL 程序中,您只需要从绑定纹理中获取 .b 和 .g 组件。