フラグメント シェーダーに少し手を加えて、テクスチャ レンダリングとカラー レンダリングの両方を可能にしました。変更を行った後、すべてのテクスチャが非常にピクセル化されており (古い 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);
}
}