【问题标题】:Working with Lights使用灯光
【发布时间】:2010-01-19 16:30:07
【问题描述】:

尝试掌握灯光并阅读 OpenGL Superbible 书籍。 以下是我目前用于照明的内容。它位于 SetupRC 函数中。

照明主要按照我预期的位置等工作,但我很困惑为什么当我转动相机时,它会在以前较暗的地方变得更亮。我没有移动相机位置,但灯光仍然移动。

这是为什么?这里有点困惑。

    GLfloat ambient[] = { 0.7f, 0.7f, 0.7f, 0.5f };
    GLfloat diffuse[] = { 1.0, 1.0f, 1.0f, 1.0f };

    glEnable(GL_LIGHTING);

    glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);

    glEnable(GL_LIGHT0);


    GLfloat ambientLight[] = {1.0f, 0.0f, 1.0f, 0.5f};
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientLight);

    glEnable(GL_COLOR_MATERIAL);

    glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); //GL_AMBIENT_AND_DIFFUSE

【问题讨论】:

  • Martin Beckett 的回答指向了另一个完全相同的问题。请阅读那里的答案。

标签: opengl lighting


【解决方案1】:

反射光有一个方向,由表面的法线设置。
灯光、表面和相机的位置会影响相机看到的光量。

或者可能看到OpenGL lighting problem when rotating the camera

【讨论】:

  • “反射光”是什么意思?我在表面上看到的光量(在本例中为立方体)。我现在只想要聚光灯照明。
猜你喜欢
  • 2012-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
  • 1970-01-01
  • 2011-09-06
  • 2015-07-23
相关资源
最近更新 更多