GLM opengl 裁剪问题 - Game Engine c++
Posted
技术标签:
【中文标题】GLM opengl 裁剪问题 - Game Engine c++【英文标题】:GLM opengl clipping issues - Game Engine c++ 【发布时间】:2016-05-19 21:36:36 【问题描述】:我目前正在开发我的游戏引擎,我遇到了一些我自己无法解决的问题。我改变了关于建立自己的数学库的想法,所以我重新使用 GLM,因为它是一个完美的解决方案。 但是问题来了,我的代码一切正常,但现在改变了功能,我遇到了对象裁剪和交集的问题。
Zoomed In
第一张图片显示了我的场景在放大后的样子。一切看起来几乎完美,并且平面与立方体正确相交。
Zoomed Out
滚动出交叉点会随机混乱,我无法解释发生了什么,也不知道问题出在哪里。 这是我计算投影矩阵的方式:
proj = glm::perspective((double)fovy, (double)aspect, (double)nearPlane,(double) farPlane);
这是我计算视图的方式:
view = glm::lookAt(pos, tar, gameObject->transform.getUp());
我知道我应该发布更多代码,但是我真的不知道从哪里开始。所以请告诉我哪些代码可能很重要,我会发布它。非常感谢你,我希望有人能帮助我。如果需要更多图片,请告诉我。
【问题讨论】:
【参考方案1】:您的深度分辨率似乎不够。当nearPlane
非常小而farPlane
非常大时,就会发生这种情况。例如,0.0001 到 10000.0 的深度分辨率较低。
使nearPlane
更大,farPlane
更小。
【讨论】:
哇,谢谢,我以前试过这个,但我想我没能正确调整它。非常感谢!我现在将值设置为 1.0f 和 1000.0f,它似乎可以工作。谢谢!以上是关于GLM opengl 裁剪问题 - Game Engine c++的主要内容,如果未能解决你的问题,请参考以下文章
Model, View(Camera), Perspective