gpt4 book ai didi

java - 我如何在 jogl 中使用 gluPerspective()?

转载 作者:行者123 更新时间:2023-11-30 09:39:41 27 4
gpt4 key购买 nike

我有一个 init() 方法,我正在尝试创建一个 Perspective 渲染。下面是我到目前为止的代码,但是我传递给 gluPerspective(fovy, aspect, zNear, zFar) 的数字是错误的。我觉得fovy是视野(60度),aspect是宽高比(width/height),但是不知道zNear是什么zFar 是。

public void init(GLAutoDrawable gld) {
//We will use the default ViewPort

GL gl = gld.getGL();
glu = new GLU();

gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);


glu.gluLookAt(
25, 15, 0, // eye
25, 15, 30, // at
0, 1, 0 // up
);



// Set up camera for Orthographic projection:
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluPerspective(60, 500/300, 0.0, 60.0);

gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();

}

最佳答案

Near 和 far 值指定了对象可见的范围(它们定义了 near 和 far 裁剪 planes )。实际上,使用该视角将看不到 60.0 以外的对象。

正如 Tim 已经评论的那样,最好明确写入浮点值(即 500.0f/300.0f)。

但更糟糕的是,您在将观察矩阵设置为恒等式之前设置了观察矩阵(假设在方法开始时矩阵模式是 GL.GL_MODELVIEW)。可能以下顺序更好:

gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
glu.gluLookAt(...);

也许您需要研究更多关于相机抽象的信息。

关于java - 我如何在 jogl 中使用 gluPerspective()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9725028/

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