当我在 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。当我注释掉这两行tNames=vec4(1, 0, 0, u_habitatSettings.z);
和tNames=vec4(0, 0, 1, u_habitatSettings.z);
时,fps 增加到 60fps(设备上的最大 fps)。
问题是否是因为 if 子句和编译器在注释掉这两行时删除了它们?还是两条线有问题?