我正在编写一个使用阴影映射的 glsl 片段着色器。按照本教程http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/,我写了这一行来评估 shaodw 偏差以避免阴影痤疮
float bias = 0.005 * tan( acos ( N_L_dot ) );
但我从数学中知道
tan ( acos ( x ) = sqrt ( 1 - x^2 ) / x
使用这样的身份而不是 tan 和 acos 会更快吗?在实践中,要使用这行代码
float bias = 0.005 * sqrt ( 1.f - N_L_dot * N_L_dot ) / N_L_dot ;
我认为我的问题类似于“gpu 在执行 sqrt 和除法或 tan 和 acos 方面是否更快?” ...还是我错过了什么?