如何在四边形的正面和背面放置不同的颜色

fra*_*kie 2 opengl

实际上,我的问题是在标题中.我使用着色器和缓冲区的"现代opengl"方法,我想知道是否存在任何方式在一个四边形的两侧获得不同的颜色.

期望的结果(背面和正面)

在此输入图像描述 在此输入图像描述

Joe*_*ewd 6

GLSL提供内置gl_FrontFacing变量,用于确定片段是前向片段还是后向片段(true如果是前向片段),例如,如果它是四边形的正面片段或背面的片段四边形.

在片段着色器中,您可以检查此变量并为每个面部方向设置相应的颜色:

if(gl_FrontFacing)
{
    outColor = color1;
}
else    // Fragment is back facing fragment
{
    outColor = color2;
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您可以使用它从 2 组纹理坐标或 2 个采样器中进行选择 (2认同)