【发布时间】:2009-10-11 15:06:04
【问题描述】:
我正在尝试使用 c++、SDL 和 OpenGL 构建一个(简单的)游戏引擎,但我似乎无法弄清楚下一步。这就是我目前所拥有的......
控制主游戏循环的引擎对象
渲染场景的场景渲染器
可以推送和弹出的游戏状态堆栈
每个州都有一个参与者的集合,每个参与者都有一个三角形的集合。 场景渲染器成功设置视图投影矩阵
我不确定我遇到的问题是否与如何存储演员位置或如何创建渲染队列有关。
我已经读到创建一个渲染队列来从前到后绘制不透明多边形然后从后到前绘制透明多边形是很有效的。因此,我的演员调用场景渲染器对象的“queueTriangle”方法。然后场景渲染器对象存储一个指向每个角色三角形的指针,然后根据它们的位置对它们进行排序,然后渲染它们。
我面临的问题是,要做到这一点,三角形需要知道它在世界坐标中的位置,但如果我使用 glTranslatef 和 glRotatef 我不知道这些坐标!
请有人给我一个解决方案,或者将我链接到如何解决这个问题的(简单)指南。
谢谢!
【问题讨论】: