Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在代码中复制GLM::透视图_C++_Opengl_Glm Math - Fatal编程技术网

C++ 在代码中复制GLM::透视图

C++ 在代码中复制GLM::透视图,c++,opengl,glm-math,C++,Opengl,Glm Math,我在理解glm::perspective时遇到问题。我知道它是干什么的,但不了解它的机理。有人知道源代码/过程是什么吗?都是开源的,请看: 模板 GLM_FUNC_限定符详细信息::tmat4x4透视图 ( valType const&fovy, valType const&aspect, valType const&zNear, valType const&zFar ) { 断言(方面!=valType(0)); 断言(zFar!=zNear); #ifdef GLM_力_弧度 valType

我在理解glm::perspective时遇到问题。我知道它是干什么的,但不了解它的机理。有人知道源代码/过程是什么吗?

都是开源的,请看:

模板
GLM_FUNC_限定符详细信息::tmat4x4透视图
(
valType const&fovy,
valType const&aspect,
valType const&zNear,
valType const&zFar
)
{
断言(方面!=valType(0));
断言(zFar!=zNear);
#ifdef GLM_力_弧度
valType const rad=福维;
#否则
#pragma消息(“GLM:不推荐使用度作为参数的透视函数。#在包含GLM标头之前定义GLM_FORCE_弧度以删除此消息。”)
valType const rad=glm::弧度(fovy);
#恩迪夫
valType tanHalfFovy=tan(弧度/valType(2));
详细信息:tmat4x4结果(valType(0));
结果[0][0]=valType(1)/(aspect*tanHalfFovy);
结果[1][1]=valType(1)/(tanHalfFovy);
结果[2][2]=-(zFar+zNear)/(zFar-zNear);
结果[2][3]=-valType(1);
结果[3][2]=-(valType(2)*zFar*zNear)/(zFar-zNear);
返回结果;
}
…根据.

可能的副本创建矩阵,请参见: