这是该程序在 Tegra 3 设备上渲染几个四边形的结果:
#extension GL_OES_standard_derivatives : enable
precision mediump float;
uniform sampler2D sampler2d;
varying vec2 textureCoord;
void main()
{
vec4 texColor = texture2D(sampler2d,textureCoord);
gl_FragColor = vec4(fwidth(texColor.a),0.0,0.0,1.0);
}
我使用的纹理是一个空的、透明的 png,但无论我在这个纹理中放什么,这些线框总是可见的。
Mali-400 设备上的相同代码可以正常工作。谁能告诉我 Tegra fwidth 实现是否正确或我的代码有问题?上面的代码只是一个例子,只显示了着色器的错误部分。