if 句で色を設定するとパフォーマンスが低下するのはなぜですか? これは私の現在のフラグメントシェーダーコードです:
if(u_habitatSettings.z>0.0)
{
if(tNames.r<=BLINK && tNames.g<=BLINK && tNames.b<=BLINK && tNames.a>0.0)
{
if(v_blinkIndices==BLINK_BE_ASSAULTED)
{
tNames=vec4(1, 0, 0, u_habitatSettings.z);
}
else if(v_blinkIndices==BLINK_ASSAULT)
{
tNames=vec4(0, 0, 1, u_habitatSettings.z);
}
}
}
このコードを使用すると、約 20 fps になります。と の 2 行をコメントアウトするtNames=vec4(1, 0, 0, u_habitatSettings.z);
とtNames=vec4(0, 0, 1, u_habitatSettings.z);
、fps が 60fps (デバイスの最大 fps) に増加します。
問題は if 句が原因で、2 行をコメントアウトするときにコンパイラがそれらを削除するためですか? それとも2行が問題ですか?