我正在尝试显示一个地理复杂、半透明(例如 alpha = 0.5)的对象(地形)。当我渲染这个对象时,这个对象隐藏的正面也将被绘制(就像一座实际上位于另一个后面的小山)。
我想看到我的“地形”对象后面的其他对象,但不想看到我的地形(第二座山)的隐藏面。所以实际上设置“整个”对象的透明度,而不是单个面。
问:如何隐藏半透明物体的“隐藏”正面?
我通过将颜色向量与所需的透明度相乘来设置顶点着色器中的透明度:
fColor = vec4(vColor, 1.0);
fColor *= 0.5;
// fColor goes to fragment shader
GL_DEPTH_TEST
GL_LEQUAL
使用深度功能激活。
GL_BLEND
GL_ONE, GL_ONE_MINUS_SRC_ALPHA
使用as 混合功能激活。
我试图GLES20.glDepthMask(false);
在绘制之前停用深度缓冲区,但这没有任何区别。
可能我不知道正确的深度缓冲区设置或混合功能。