Opengl 透视投影矩阵:如何仅从水平视场和纵横比计算垂直视场?
考虑以下透视投影矩阵,该矩阵仅在调用方给定的垂直视野和纵横比下工作(非常好):Opengl 透视投影矩阵:如何仅从水平视场和纵横比计算垂直视场?,opengl,3d,matrix,projection-matrix,perspectivecamera,Opengl,3d,Matrix,Projection Matrix,Perspectivecamera,考虑以下透视投影矩阵,该矩阵仅在调用方给定的垂直视野和纵横比下工作(非常好): func (me *Mat4) Perspective (fovY, aspect, near, far float64) { tfY = near * math.Tan(fovY * math.Pi / 360) tfX = tfY * aspect me.Frustum(-tfX, tfX, -tfY, tfY, near, far) } 如何扩展这个函数的主体来支持这一点:调用者现在可
func (me *Mat4) Perspective (fovY, aspect, near, far float64) {
tfY = near * math.Tan(fovY * math.Pi / 360)
tfX = tfY * aspect
me.Frustum(-tfX, tfX, -tfY, tfY, near, far)
}
如何扩展这个函数的主体来支持这一点:调用者现在可以指定垂直(fovY)或水平(fovX)视场,但不能同时指定两者,还可以指定纵横比。该函数如何仅根据给定的纵横比和fovX计算缺失的fovY?这应该可以:
近
和宽度/2
和角度fovx/2
)近
和高度/2
和角度视野/2
)