对于我的个人项目,我需要:
生成从 3D 对象到 2D 平面的透视投影(在空间中定义的点上,这将是相机)。
获取透视投影的确切区域/点坐标
生成多个 3D 对象的透视投影,其中一些对象可能位于其他对象之后。
渲染场景(只有一张图像,不会有任何动画,所以不需要实时渲染)。
对于第 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 更好的透视投影和渲染优化实现,我会非常感兴趣!