作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试渲染一个混合了完全透明像素和完全不透明像素的纹理。似乎我唯一的选择是按距离从后到前渲染它们(毕竟是完全不透明的多边形),因为即使是完全透明的像素也会更新深度缓冲区,但我不确定这是否准确。是吗?
似乎可以告诉片段着色器将深度缓冲区单独留给透明像素,但显然不是。我错过了什么吗?
除了许多我没有想到的多边形之外,还有其他一些明智的方法来渲染高度不规则形状的图像吗?
最佳答案
既然问了这个问题,我似乎至少找到了一个答案。 discard
片段着色器中的语句似乎满足了我的需要:
void main(void) {
vec4 textureColor = texture2D(uSampler, vTextureCoord);
if (textureColor.a < 0.5)
discard;
else
gl_FragColor = vec4(textureColor.rgb * vLighting, textureColor.a);
}
关于WebGL:纹理中的零 alpha 像素一定会更新深度缓冲区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12335284/
我是一名优秀的程序员,十分优秀!