gpt4 book ai didi

java - JOGL - 照明/相机

转载 作者:行者123 更新时间:2023-12-01 04:50:51 29 4
gpt4 key购买 nike

我在我的 JOGL 项目中添加了一个光源,当物体静止时,它似乎工作得很好,当我移动相机时,它随着它旋转而逐渐变暗,这是我所期望的,但一旦它旋转 90 度屏幕完全黑了,有人知道这是为什么吗?另一侧是否需要另一个光源?我希望它能像太阳一样,即照亮整个场景,但当相机位于物体的另一侧时,它会稍微变暗。

照明

float light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
float light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
float light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
float light_position[] = { 1.0f, 1.0f, 1.0f, 0.0f };

gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_AMBIENT, light_ambient, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_DIFFUSE, light_diffuse, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_SPECULAR, light_specular, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_POSITION, light_position, 0);

gl.glEnable(GL2.GL_LIGHTING);
gl.glEnable(GL2.GL_LIGHT0);
gl.glDepthFunc(GL.GL_LESS);
gl.glEnable(GL.GL_DEPTH_TEST);
<小时/>

其次,当相机旋转时,某些形状似乎会变形并且看起来像完全不同的形状,即立方体变成枕形,侧面被拉伸(stretch)得令人难以置信,这使我的整个物体看起来略有变形。有没有简单的方法可以改变这种情况?我尝试过弄乱 gluPerspective ,但这似乎也没有改变我想要的东西。有什么办法可以解决这个问题吗?

最佳答案

您已向场景添加漫反射光和镜面反射光,但这些光不会到达背对光源的表面。您可以添加一些环境光(当前在代码片段中设置为 0, 0, 0),以便所有表面都接收到一些照明。

至于变形的形状,这实际上是一个单独的问题,并且没有提供足够的细节来了解为什么会发生这种情况。

关于java - JOGL - 照明/相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14990272/

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