【问题标题】:glutSolidSphere lighting issue when further away距离较远时的 glutSolidSphere 照明问题
【发布时间】:2021-08-04 23:36:07
【问题描述】:

由于某种原因,当我使用 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, 100.0f, 1.0f};
glLightfv(GL_LIGHT0, GL_POSITION, light_position);

这还能是什么?

【问题讨论】:

    标签: glut freeglut glu


    【解决方案1】:

    在永远之后终于解决了问题。显然,在 gluPerspective 视图中为 zNear 使用非常低的值(即使高于零)会导致此问题。

    以下解决了问题:

    gluPerspective(90, (float) width / (float) height, 0.1f, Z_RANGE);
    

    见:https://gamedev.stackexchange.com/a/55516

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      相关资源
      最近更新 更多