2

对于我的个人项目,我需要:

  1. 生成从 3D 对象到 2D 平面的透视投影(在空间中定义的点上,这将是相机)。

  2. 获取透视投影的确切区域/点坐标

  3. 生成多个 3D 对象的透视投影,其中一些对象可能位于其他对象之后。

  4. 渲染场景(只有一张图像,不会有任何动画,所以不需要实时渲染)。

对于第 1,2 和 4 点,我想我已经找到了一种使用 PyGame 的方法,如下所述:http: //codentronix.com/2011/04/21/rotating-3d-wireframe-cube-with-python/

但是对于第 3 点,我有点卡住了,因为即使我可以获得每个对象的透视投影,我怎么知道哪个对象是真正可见的,哪个(完整对象或部分对象)不可见?

我真的需要准确地知道对象的哪些部分可见,哪些部分不可见,因此我的最终目标是拥有一个屏幕图像矩阵,其中每个对象的投影区域都清晰定义。

例如,如果矩阵包含我的屏幕图像的所有像素,并且我们有 10 个对象,我们将在没有对象时得到 0,在我们可以看到对象 n1 时得到 1,在对象 n2 可见时得到 2,等等。

我必须补充一点,我是一位在 Python 和许多其他语言方面有成就的开发人员,但我之前从未做过任何与游戏相关的开发或渲染开发。

有人可以帮助我走上正确的轨道吗?

PS:附带问题:如果您还可以指出比 PyGame 更好的透视投影和渲染优化实现,我会非常感兴趣!

4

1 回答 1

1

我建议将 OpenGL 用于此类任务。学习基本的 OpenGL(这看起来很基础)并不费力。看看这里(众所周知的教程)和这里(使用 Python、Qt 和 OpenGL 的基本示例)。我认为通过一些努力,这可能需要你一天的时间才能开始。

于 2012-10-18T20:22:37.263 回答