对于计算机游戏的关卡生成器,我需要一种以编程方式渲染3D场景的方法。更确切地说,我不是指像OpenGL或Direct3D这样的3D-API,场景不应该在游戏的运行时渲染,而是场景应该离线渲染以供以后使用。
我知道RenderMan,但如果还有其他选择,我会感兴趣。关于RenderMan,这是否适用于此目的?
可以使用COLLADA描述3D场景并将其送入渲染器吗?
由于 约翰内斯
答案 0 :(得分:3)
答案 1 :(得分:1)
所以,是的,渲染离线图像是RenderMan的用途。暴雪是一个游戏公司的例子,它将它用于此目的。是的,您还可以导出到另一种场景格式,如COLLADA并使用不同的渲染器。有关创作场景然后渲染它的问题。渲染器可以对场景文件进行操作,这些文件可能采用ascii格式,当然您不想手动编写。也许你是从游戏引擎或关卡编辑器导出场景?否则,您将需要在Maya,Houdini,Max,Sketchup,Blender等建模/动画包中创建它。这些包具有各种插件导出器和渲染器。术语RenderMan用于指代场景描述规范,如COLLADA,它也可以专门指代Pixar的渲染器,它接受RenderMan格式。其他几个渲染器也接受RenderMan格式,有些甚至是免费的,比如Pixie。选择建模包和渲染器取决于您的预算和要求......
答案 2 :(得分:0)
这是我的猜测。如果离线渲染的意思是获得实时渲染难以实现的东西,特别是在游戏模式中,如子表面散射,软阴影,抗锯齿,更重的计算过滤,以及全局照明,你可以去寻找Skizz和Tim的建议。我还建议pbrt。
但是,这完全取决于你的背景和喜欢的事情。像你如何处理并将3D对象和环境导入渲染器?,你的着色脚本/语言是什么?,你会得到什么样的渲染结果?需要?一些背景图片?或者嵌入了GI的几种渲染出的高质量纹理等等。