我正在尝试使用我的引擎启动并运行所有内容,但无法确定添加对象和灯光的顺序以正确渲染所有内容。
我在我的初始化中设置了我的投影和模型视图矩阵:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(75.0f,(GLfloat)width/(GLfloat)height, 0.1f , 1000.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
然后,当我渲染几何图形时,我清除缓冲区并加载单位矩阵并更新我的相机。
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
// Camera updates
glRotatef(camera.anglePitch, 1.0f, 0.0f, 0.0f);
glRotatef(camera.angleYaw, 0.0f, 1.0f, 0.0f);
glTranslatef(-camera.position.x, -camera.position.y, -camera.position.z);
// Now render
level.render();
我对我的关卡的看法是一个相机,我收集的是四处移动的眼睛坐标。我正在尝试在我的关卡中渲染对象和灯光,并让它们出现在正确的位置。
我需要在世界上的特定点添加对象。例如,在 (10, 10, 25) 处的圆环。在渲染这个圆环对象之前我需要做些什么来使它们在 10、10、25 时正确显示吗?例如,我是否需要渲染然后翻译它们?
此外,第 2 部分与灯光有关。这几乎是同一个问题。在渲染 50、50、50 的灯光时,我必须考虑什么?我可以正常定位灯还是再做一次,我必须把它翻译到那里吗?还是我想太多了?