如何解决距离较远时的glutSolidSphere照明问题
由于某种原因,当使用 glutSolidSphere 并且相机离物体相对较远时,我会得到奇怪的不规则照明效果/闪烁。见下文:
这也发生在 glutSolidCube 中,我假设其他人也是如此。
我已经尝试了在类似问题中可以找到的所有内容,但没有成功
我尝试启用以下所有内容以及以下内容的不同组合,并尝试在多个地方这样做
glEnable(GL_BLEND);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LINE_SMOOTH);
glEnable(GL_NORMALIZE);
glDepthFunc(GL_LEQUAL);
并且还删除了所有 glEnable(GL_TEXTURE_2D);任何地方
当我使用 glEnable(GL_LIGHT0);
打开照明并使用 glShadeModel(GL_SMOOTH) 和 glShadeModel(GL_FLAT) 以及如果我不启用 GL_COLOR_MATERIAL 甚至仅使用这样的位置灯时,就会出现问题:
float light_position[] = {100.0f,100.0f,1.0f};
glLightfv(GL_LIGHT0,GL_POSITION,light_position);
这还能是什么?
解决方法
终于找到了永远的问题。显然,在 gluPerspective 视图中为 zNear 使用非常低的值(即使高于零)会导致此问题。
以下解决了问题:
gluPerspective(90,(float) width / (float) height,0.1f,Z_RANGE);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。