gpt4 book ai didi

opengl - 为什么调用透视函数会让我黑屏?

转载 作者:行者123 更新时间:2023-12-05 01:06:31 25 4
gpt4 key购买 nike

我正在使用 Haskell 和 OpenGL 来构建 3D 地形。地形和照明很好,但我在调整相机/ View 时遇到了一些困难。

当我在 display 中运行以下代码时功能:

matrixMode $= Projection
loadIdentity
-- perspective 45 1 0.1 100

matrixMode $= ModelView 0
loadIdentity
lookAt (Vertex3 0 0 0) (Vertex3 0 1 2) (Vector3 0 1 0)

我收到以下图片:

enter image description here

但是当我取消注释该行时
perspective 45 1 0.1 100

我只看到黑屏。

我的点数组很大,但这里是从 ghci 复制的最后几个点:

(1.0,0.0,0.76), (1.0,0.0,0.8), (1.0,0.0,0.84), (1.0,0.0,0.88), (1.0,0.0,0.92), (1.0,0.0,0.96), (1.0,0.0,1.0)



我感觉好像:
  • 我错误地指定了透视平面?或...
  • 我不应该重复调用这些函数中的一个或多个吗?
  • 最佳答案

    默认的投影/观看体积是正交的(实际上是一个立方体),中心在原点。在透视投影中,所有观察光线会聚到原点,即在近平面后面。由于您的原点位于您正在绘制的平面上,因此所有顶点将在屏幕上形成一条线并且不会产生任何碎片。正如 KarolisJuodelė 所说,调整 lookAt功能,使相机不在飞机上......

    enter image description here

    关于opengl - 为什么调用透视函数会让我黑屏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20039722/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com