我正在尝试在opengl中创建一个场景,我的灯光也遇到了问题。我认为这与将我的模型从世界起源转换到各自的位置有关。
我的场景中只有一盏灯位于世界中心的右侧,但是你可以看到场景前方墙上的灯光。
我已经编写了自己的着色器。我怀疑我是否过早地计算照明,因为它似乎是在模拟世界各地之前计算它,或者我使用的是本地坐标而不是世界坐标(我认为这是正确的.. )。
(请忽略玻璃,它们使用全局光和不同的着色器)
有谁知道确实是这种情况,或者哪里是找到解决方案的最佳地点。
以下是我调用渲染模型的方法。
glUseProgram(modelShader);
//center floor mat
if (floorMat)
{
glUniformMatrix4fv(modelShader_modelMatrixLocation, 1, GL_FALSE, (GLfloat*)&(modelTransform.M));
floorMat->setTextureForModel(carpetTexture);
floorMat->renderTexturedModel();
}
答案 0 :(得分:0)
原来我没有计算世界空间的照明。
我没有使用转置的模型世界,而是使用普通的顶点位置