Я пытаюсь настроить все на своем движке, но не могу понять, в каком порядке добавлять объекты и источники света, чтобы все отображалось правильно.
Я настроил свою проекцию и матрицу просмотра модели в своей инициализации:
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? Могу ли я просто расположить свет нормально или снова мне нужно перевести его туда? Или я слишком много думаю об этом?