Loading

为什么在球坐标系中,sinTheta2=std::max(T(0), 1 - cosTheta(w) * cosTheta(w));

 

球坐标系中,计算sin2θ时,采用的是如下公式,感觉不理解为什么要搞一个max函数,直接1 - cosTheta(w) * cosTheta(w)不行吗,另外,即使要用max,max的第一个参数应该是T(0)的平方吧

//计算sin(theta)的平方
template<typename T>
inline T sinTheta2(const Vec3<T> &w)
{
    return std::max(T(0), 1 - cosTheta(w) * cosTheta(w));
}

把图画出来分析一下

后来发现我眼拙了,T(0)我理解成了w[0],实际上这里T(0)只是转型成T类型的0 

posted @ 2018-06-19 19:43  注销111  阅读(169)  评论(0编辑  收藏  举报