GLM opengl 裁剪问题 - Game Engine c++

GLM opengl clipping issues - Game Engine c++

我目前正在研究我的游戏引擎,但我 运行 遇到了一些我自己也弄不明白的麻烦。我改变了建立自己的数学库的想法,所以我重新使用 GLM,因为它是一个完美的解决方案。 但问题来了,我的代码一切正常,但现在随着功能的改变,我遇到了对象裁剪和相交的问题。

Zoomed In

第一张图片显示了我的场景在放大时的样子。一切看起来都近乎完美,平面与立方体正确相交。

Zoomed Out

滚动出交叉点会随机混乱,我无法解释发生了什么,也不知道我的问题出在哪里。 这是我计算投影矩阵的方式:

proj = glm::perspective((double)fovy, (double)aspect, (double)nearPlane,(double) farPlane);

这是我计算视图的方式:

view = glm::lookAt(pos, tar, gameObject->transform.getUp());

我知道我应该发布更多代码,但代码太多,我真的不知道从哪里开始。所以请告诉我哪些代码可能很重要,然后我将其发布。非常感谢你,我希望有人能帮助我。如果需要更多图片请告诉我。

您的深度分辨率似乎不够。当 nearPlane 非常小而 farPlane 非常大时会发生这种情况。例如,0.0001 到 10000.0 将为您提供低深度分辨率。

使 nearPlane 变大,farPlane 变小。