我想将Panda3D用于我的个人项目,但是在阅读了文档和一些示例源代码之后,我仍然有一些问题:


如何仅渲染一帧并将其保存在文件中?
实际上,我将需要渲染2个不同的图像:一个对象,以及包括先前的单个对象在内的多个对象的场景,但是每个对象只有一帧,并且它们都需要另存为图像文件。
该应用程序将使用Python进行编码,并且需要具有很高的可伸缩性(供成千上万的用户使用)。 Panda3D在这里适合吗? (关于我在Python中的程序,这几乎是一个恒定的复杂性,因此这里没有问题,并且3D模型将是低多边形的,每个场景大约5到20个)。
我需要计算每个对象到相机的透视投影。是否可以直接访问顶点和面(位置,参数等)?
我可以给3D对象重新着色吗?我需要为整个对象设置简单的颜色,但为每个对象设置不同的颜色。可能吗?


另请注意,我是图形和游戏开发领域的新手,但是我了解3D建模和3D理论以及计算机成像理论的一些知识。

感谢您阅读我。

PS:我目前的主要替代方法是使用Soya3D或PySoy,但是它们似乎并没有非常积极地开发或优化,因此尽管它们的内存占用量都较小,但我不知道它们是否真的会比Panda3D的优化程度不高...

最佳答案

您可以使用self.win.saveScreenshot(Filename)拍摄场景的屏幕截图。例:

from panda3d.core import Filename

file_name = Filename('whatever.png'))
self.win.saveScreenshot(file_name)

我自己从未使用过Panda3D Networking API,但应该在客户端方面做得很好。在拥有数千名用户的服务器端,性能可能不尽人意,但是您可以使用其他更适合的技术(例如C或NodeJS)使用服务器技术来编写服务器软件。
是的,您可以访问和修改顶点并将其分组为面。默认顶点数据允许您设置顶点位置,法线,颜色和纹理坐标,尽管您可以根据需要设置自己的自定义顶点格式。看一下手册:Panda3D Manual: Creating and filling a GeomVertexData
是的,可以使用object.setColor(r,g,b,a)设置对象颜色。更多信息:Panda3D Manual: Tinting and Recoloring


希望能帮助到你!

关于python - Panda3D和Python,仅渲染一帧和其他问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12981607/

10-11 22:35