Я пытаюсь создать (простой) игровой движок, используя c ++, SDL и OpenGL, но, похоже, не могу сообразить следующий шаг. Это то, что я до сих пор ...
Объект движка, который контролирует основной игровой цикл
Средство визуализации сцены, которое будет визуализировать сцену
Стек игровых состояний, которые можно нажимать и высовывать
В каждом штате есть коллекция актеров, а у каждого актера - коллекция треугольников.
Средство визуализации сцены успешно настроило матрицу проекции вида
Я не уверен, что моя проблема связана с тем, как сохранить позицию актеров или как создать очередь рендеринга.
Я прочитал, что эффективно создать очередь рендеринга, которая будет рисовать непрозрачные полигоны спереди назад, а затем рисовать прозрачные полигоны сзади спереди. Из-за этого мои актеры обращаются к методу queueTriangle объекта рендеринга сцены. Затем объект рендеринга сцены сохраняет указатель на каждый из треугольников актеров, затем сортирует их в зависимости от их положения и затем отображает их.
Проблема, с которой я сталкиваюсь, состоит в том, что для того, чтобы это произошло, треугольнику нужно знать свое положение в мировых координатах, но если я использую glTranslatef и glRotatef, я не знаю этих координат!
Может кто-нибудь, пожалуйста, пожалуйста, предложите мне решение или, возможно, свяжите меня с (простым) руководством о том, как решить эту проблему.
Thankyou!