草庐IT

android - GLSL IF 速度与乘数

我知道这个问题通常被问到,但答案总是“视情况而定”,所以我提出了一个具体问题,希望能得到具体答案。我知道IF在GLSL上的缺点,它们可能非常昂贵,甚至在某些硬件中执行所有代码。所以,我有一个来自示例(双抛物面阴影贴图)的fragment着色器,它使用if's来确定要使用哪个贴图并计算深度,但我知道用乘数替换那些if's非常容易,问题是fragment着色器中是否有纹理采样,使用if或使用乘法器过滤未使用的数据会更快?这些是建议的代码:IF版本://Alphaisavariablecomputedonthefly,cannotbereplacedfloatdepth=0;floatmyd