Opengl Lighting Artifact(翻译前计算光线)

时间:2017-12-08 22:52:27

标签: opengl lighting artifact

我正在尝试在opengl中创建一个场景,我的灯光也遇到了问题。我认为这与将我的模型从世界起源转换到各自的位置有关。

我的场景中只有一盏灯位于世界中心的右侧,但是你可以看到场景前方墙上的灯光。

我已经编写了自己的着色器。我怀疑我是否过早地计算照明,因为它似乎是在模拟世界各地之前计算它,或者我使用的是本地坐标而不是世界坐标(我认为这是正确的.. )。

(请忽略玻璃,它们使用全局光和不同的着色器)

Light in scene

有谁知道确实是这种情况,或者哪里是找到解决方案的最佳地点。

以下是我调用渲染模型的方法。

glUseProgram(modelShader);

//center floor mat 
if (floorMat)
{
    glUniformMatrix4fv(modelShader_modelMatrixLocation, 1, GL_FALSE, (GLfloat*)&(modelTransform.M));
    floorMat->setTextureForModel(carpetTexture);
    floorMat->renderTexturedModel();
}

1 个答案:

答案 0 :(得分:0)

https://www.youtube.com/watch?annotation_id=annotation_1430411783&feature=iv&index=86&list=PLRwVmtr-pp06qT6ckboaOhnm9FxmzHpbY&src_vid=NH68sIdF-48&v=P3DQXzyjswQ

原来我没有计算世界空间的照明。

我没有使用转置的模型世界,而是使用普通的顶点位置