我目前正在研究我的游戏引擎,遇到了一些我自己无法解决的问题。我改变了建立自己的数学库的想法,所以我重新使用 GLM,因为它是一个完美的解决方案。 但问题来了,我的代码一切正常,但现在随着功能的改变,我遇到了对象裁剪和相交的问题。
第一张图片显示了我的场景在放大时的样子。一切看起来都近乎完美,平面与立方体正确相交。
滚动出十字路口会随机困惑,我无法解释发生了什么,也不知道我的问题出在哪里。 这是我计算投影矩阵的方式:
proj = glm::perspective((double)fovy, (double)aspect, (double)nearPlane,(double) farPlane);
这是我计算 View 的方式:
view = glm::lookAt(pos, tar, gameObject->transform.getUp());
我知道我应该发布更多代码,但代码太多,我真的不知道从哪里开始。所以请告诉我哪些代码可能很重要,然后我将其发布。非常感谢你,我希望有人能帮助我。如果需要更 multimap 片,请告诉我。
最佳答案
看起来你没有足够的深度分辨率。当 nearPlane
非常小而 farPlane
非常大时,会发生这种情况。例如,0.0001 到 10000.0 将为您提供低深度分辨率。
使 nearPlane
变大,farPlane
变小。
关于c++ - GLM opengl 裁剪问题 - Game Engine c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299880/