Open taontech opened 1 year ago
投影矩阵和正交投影的生成方法
static func perspectiveMatrix(fov: Float, aspect: Float, near: Float, far: Float) -> Matrix4 { var matrix = Matrix4() let f = 1.0 / tanf(fov / 2.0) matrix.matrix[0] = f / aspect matrix.matrix[5] = f matrix.matrix[10] = (far + near) / (near - far) matrix.matrix[11] = -1.0 matrix.matrix[14] = (2.0 * far * near) / (near - far) matrix.matrix[15] = 0.0 return matrix }
static func OrthographicMatrix( width:Float,height:Float,near:Float, far:Float ) -> Matrix4 { var matrix = Matrix4() matrix.matrix[0] = 2.0 / width matrix.matrix[5] = 2.0 / height matrix.matrix[10] = 1.0 / (far - near) matrix.matrix[14] = near / (near - far) matrix.matrix[15] = 1.0 return matrix }
由代码可得出,两种投影方式只是用不同的描述参数生成相同数学含义的投影矩阵,所以两种变化是连续的
投影矩阵和正交投影的生成方法
由代码可得出,两种投影方式只是用不同的描述参数生成相同数学含义的投影矩阵,所以两种变化是连续的