【发布时间】:2017-12-08 22:52:26
【问题描述】:
我正在尝试在 opengl 中创建一个场景,但我的照明遇到了问题。我相信这与将我的模型从世界的起源翻译到各自的地方有关。
我的场景中只有 1 盏灯位于世界中心的右侧,但是您可以看到场景前面墙上的灯。
我已经编写了自己的着色器。我怀疑我计算照明太早了,因为它似乎是在模型在世界范围内翻译之前计算的,或者我使用的是本地坐标而不是世界坐标(我认为无论如何都是正确的......) .
(请忽略玻璃,它们使用的是全局光和不同的着色器)
有谁知道这是否确实如此,或者哪里是找到解决方案的最佳地点。
下面是我所说的渲染模型。
glUseProgram(modelShader);
//center floor mat
if (floorMat)
{
glUniformMatrix4fv(modelShader_modelMatrixLocation, 1, GL_FALSE, (GLfloat*)&(modelTransform.M));
floorMat->setTextureForModel(carpetTexture);
floorMat->renderTexturedModel();
}
【问题讨论】:
-
我发现这是一个很好的学习网站,也是现代 OpenGL 的一个很好的参考。 learnopengl.com