【问题标题】:GLM opengl clipping issues - Game Engine c++GLM opengl 裁剪问题 - 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());

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

【问题讨论】:

    标签: c++ opengl 3d clipping glm-math


    【解决方案1】:

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

    使nearPlane 更大,farPlane 更小。

    【讨论】:

    • 哇,谢谢,我以前试过这个,但我想我没能正确调整它。非常感谢!我现在将值设置为 1.0f 和 1000.0f,它似乎可以工作。谢谢!
    猜你喜欢
    • 2011-05-27
    • 2010-12-01
    • 2011-11-24
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    相关资源
    最近更新 更多