我在片段着色器上做了一些工作,以允许纹理渲染和颜色渲染。进行更改后,我的所有纹理都非常像素化(就像一个旧的 8 位游戏),我不得不将纹理坐标的精度提高到中等。这也给了我性能上的打击。我只是不明白为什么我突然不得不改变精度。
这是“原始”着色器:
varying lowp vec2 TexCoordOut;
uniform sampler2D Texture;
uniform lowp float opacity;
void main(void) {
gl_FragColor = opacity * texture2D(Texture, TexCoordOut);
}
这是着色器在更改后的样子:
varying mediump vec2 TexCoordOut;
uniform sampler2D Texture;
uniform lowp vec4 color;
uniform lowp float opacity;
uniform int colorRender;
void main(void) {
if (colorRender == 1)
{
gl_FragColor = color;
} else {
gl_FragColor = opacity * texture2D(Texture, TexCoordOut);
}
}