着色器中的“IF”分支与算术权衡?

时间:2017-02-03 05:02:55

标签: opengl unity3d mobile shader cg

假设我在着色器中需要此功能:

# Load training data into model
print 'Loading training data...'
model = cv2.face.createEigenFaceRecognizer()
model.load(config.TRAINING_FILE)
print 'Training data loaded!'

这可以在没有if (y < 1) return x/y; else { if (x < 0.5) return x; else if (x < y -0.5) return 0.5; else return x - y + 1; } 分支的情况下实现,例如:

if

这是第二个真正值得交易的功能吗?
关于表现。这似乎计算很多。
但是他们说return (x/y) + max(0,y-1)/(y-1) * ( 2 * (max(y - 0.5, x)-(y - 1)) * min(0.5, x) -(x/y) ); 分支对于固定管道GPU是不可行的。

我不会问第二个函数是否会涉及很多计算。

0 个答案:

没有答案