テクスチャの1つを反転させたいマルチテクスチャフラグメントシェーダを作成しましたが、これを行うと、テクスチャがすべてギザギザになります。この問題の解決策はありますか?
これは私のフラグメントシェーダーコードです:
void main(void)
{
lowp vec4 camera = texture2D(texture0, destinationTexCoord);
lowp vec4 viewfinder = texture2D(texture1, vec2(destinationTexCoord.x, 1.0 - destinationTexCoord.y));
lowp vec4 result = mix(camera, viewfinder, viewfinder.a);
gl_FragColor = result;
}
私が使用しているテクスチャフィルタリング:
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
いくつかの背景情報:フラグメントシェーダーでこれらのテクスチャをブレンドしているので(ブレンドコードを削除)、2番目の平面を回転させてフレームバッファーにマージするソリューションを探していません。フラグメントシェーダーのテクスチャ座標を中心に反転/回転するのは良い考えではないかと思います。
最後に、「回転するかしないか」という統一された表現を渡します。その結果、1つのテクスチャが回転するかどうかが決まります。