如何仅通过向量创建坐标系?(左手坐标系、右手坐标系、本地坐标系或不同空间)
我正在寻找计算本地坐标系算法,只给定一个向量:
原因:
1)也许Z是表面法线,那么X和Y向量将是切线和副切线向量
2)另一个原因是用于光线跟踪:对光源进行采样。给定一个交点,从该点构建本地坐标系,然后跟踪光线到光形状。
原因:
1)也许Z是表面法线,那么X和Y向量将是切线和副切线向量
2)另一个原因是用于光线跟踪:对光源进行采样。给定一个交点,从该点构建本地坐标系,然后跟踪光线到光形状。
Vector3 Z = {0.0f, 0.0f, 1.0f}; // given
// fill x and y
CreateXHandedCoordinateSystem(Vector3* X, Vector3* Y, const Vector3& Z) {
// implementation goes here..
// evaluate algorithm
// calculate X
// Y = cross(X, Z) or something ..
}