gpt4 book ai didi

c++ - 在代码中复制 GLM::perspective

转载 作者:行者123 更新时间:2023-12-01 21:58:50 54 4
gpt4 key购买 nike

我无法理解 glm::perspective。我知道它的作用,但不明白它的机制。有谁知道源代码/程序是什么?

最佳答案

全部开源,看the code :

template <typename valType>
GLM_FUNC_QUALIFIER detail::tmat4x4<valType, defaultp> perspective
(
valType const & fovy,
valType const & aspect,
valType const & zNear,
valType const & zFar
)
{
assert(aspect != valType(0));
assert(zFar != zNear);

#ifdef GLM_FORCE_RADIANS
valType const rad = fovy;
#else
# pragma message("GLM: perspective function taking degrees as a parameter is deprecated. #define GLM_FORCE_RADIANS before including GLM headers to remove this message.")
valType const rad = glm::radians(fovy);
#endif

valType tanHalfFovy = tan(rad / valType(2));

detail::tmat4x4<valType, defaultp> Result(valType(0));
Result[0][0] = valType(1) / (aspect * tanHalfFovy);
Result[1][1] = valType(1) / (tanHalfFovy);
Result[2][2] = - (zFar + zNear) / (zFar - zNear);
Result[2][3] = - valType(1);
Result[3][2] = - (valType(2) * zFar * zNear) / (zFar - zNear);
return Result;
}

...根据 gluPerspective() documentation 创建一个矩阵.

关于c++ - 在代码中复制 GLM::perspective,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22623405/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com