glslを使用して画面を特定の色にフェードさせたいこれまでのところ、これは私のglslコードであり、非常にうまく機能します。
uniform sampler2D textureSampler;
uniform vec2 texcoordOffset;
uniform vec3 sp;
uniform vec3 goal;
varying vec4 vertColor;
varying vec4 vertTexcoord;
void main(void) {
vec3 col=texture2D(textureSampler, vertTexcoord.st).rgb;
gl_FragColor = vec4(col+((goal-col)/sp), 1.0);
//gl_FragColor = vec4(col+((goal-col)*sp), 1.0); //as suggested below also this doesn't solve the problem
}
私が抱えている唯一の問題は、sp値が高いと、色が完全に新しい色にフェードしないことです。問題は、シェーダーで機能する精度が原因だと思います。誰かが精度を上げる方法についてアイデアを持っていますか?
編集: この効果はドライバーに依存している可能性がありますか?最新のドライバーでATIを使用していますが、誰かがNVIDIAカードのコードを試すことができますか?