Gru*_*rig 5 alpha-transparency webgl fragment-shader
我正在尝试渲染一个混合了全透明像素和完全不透明像素的纹理.看起来我唯一的选择就是将它们从后向前渲染(在所有完全不透明的多边形之后),因为即使是完全透明的像素也会更新深度缓冲区,但我不确定它是否准确.是吗?
似乎片段着色器可以被告知单独留下深度缓冲区用于透明像素,但显然不是.我错过了什么吗?
还有其他一些明智的方法来渲染高度不规则形状的图像,而不是我想不到的许多多边形吗?
既然我已经问了这个问题,我似乎至少找到了一个答案.discard片段着色器中的语句似乎可以满足我的需要:
void main(void) {
vec4 textureColor = texture2D(uSampler, vTextureCoord);
if (textureColor.a < 0.5)
discard;
else
gl_FragColor = vec4(textureColor.rgb * vLighting, textureColor.a);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2234 次 |
| 最近记录: |