我正在构建一个项目,该项目将使用许多PNG文件,这些文件必须从服装的3D模型中渲染出来(我们还没有雇佣人来创建模型)。我们有各种纹理贴图(不同类型和颜色的布料等),这些贴图将与模型一起使用(每个模型可能会用不同的纹理渲染多次)。未来,我们将添加和更改模型和纹理贴图,并需要能够根据需要自动重新渲染PNG。
所以我们正在寻找任何一个:
-
可以从命令行运行的独立三维渲染引擎。它必须接受一种输入格式,我们可以使用自定义脚本轻松生成该格式。
-
一个3D渲染库,可以与流行的编程语言(如Java或Ruby)进行互操作,并可以以流行的建模文件格式加载3D模型。
我们正在关注Yafaray(http://www.yafaray.org),可以从命令行运行,并将XML场景描述作为输入,但我相信可能有更好的选项。你能客观地列出你所知道的各种选择的利弊吗?
离线的3D渲染引擎
Makehuman使用了几个外部渲染器。你可能想看看它们。
你能客观地列出你所知道的各种选择的利弊吗?
没有。目前还不清楚你在设计什么样的项目。
在这一点上,我怀疑你试图从头开始制作自定义渲染场,如果我是对的,正确的解决方案是使用现有的软件-maya/3dsmax有一些渲染场支持,应该也可以制作基于搅拌机的渲染场。从这些包中,maya肯定有脚本支持(我认为是MEL/python),blender的大部分都是用python编写的。
如果你想要GL风格的渲染器,那么Mesa3D提供的库"大部分"与OpenGL兼容,但在CPU上工作,没有图形加速。这意味着您应该能够在不制作窗口的情况下使用它进行屏幕外渲染。因为它在CPU上渲染所有内容,所以它将比在GPU上加速渲染慢得多。
还有Pixomatic软件渲染器,它提供DirectX风格的api。我自己没用过这个。
这取决于你的项目。如果要使用环境遮挡、光能传递或光子跟踪渲染某些三维模型,则需要使用成熟的软件渲染(如blender/maya/3dsmax)的渲染场。如果你只是想离线渲染模型,那么你可以在午休时间使用Mesa3D或标准OpenGL来拼凑一个简单的解决方案。如果我没记错的话,povray非常适合布尔形状,也就是构造性立体几何(使用对三角形进行操作的库来实现布尔形状是很困难的,但在光线跟踪器中是微不足道的)。