GLM opengl 裁剪问题 - Game Engine c++
GLM opengl clipping issues - Game Engine c++
我目前正在研究我的游戏引擎,但我 运行 遇到了一些我自己也弄不明白的麻烦。我改变了建立自己的数学库的想法,所以我重新使用 GLM,因为它是一个完美的解决方案。
但问题来了,我的代码一切正常,但现在随着功能的改变,我遇到了对象裁剪和相交的问题。
第一张图片显示了我的场景在放大时的样子。一切看起来都近乎完美,平面与立方体正确相交。
滚动出交叉点会随机混乱,我无法解释发生了什么,也不知道我的问题出在哪里。
这是我计算投影矩阵的方式:
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
变小。
我目前正在研究我的游戏引擎,但我 运行 遇到了一些我自己也弄不明白的麻烦。我改变了建立自己的数学库的想法,所以我重新使用 GLM,因为它是一个完美的解决方案。 但问题来了,我的代码一切正常,但现在随着功能的改变,我遇到了对象裁剪和相交的问题。
第一张图片显示了我的场景在放大时的样子。一切看起来都近乎完美,平面与立方体正确相交。
滚动出交叉点会随机混乱,我无法解释发生了什么,也不知道我的问题出在哪里。 这是我计算投影矩阵的方式:
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
变小。