【发布时间】:2010-11-19 06:30:06
【问题描述】:
对于计算机游戏的关卡生成器,我需要一种以编程方式渲染 3D 场景的方法。更准确地说,我不是指像 OpenGL 或 Direct3D 这样的 3D-API,场景不应该在游戏运行时渲染,而是应该离线渲染以供以后使用。
我知道 RenderMan,但如果有其他替代品我会很感兴趣。关于 RenderMan,这是一个适合此目的的工具吗?
能否使用 COLLADA 描述 3D 场景并将其输入渲染器?
谢谢 约翰内斯
【问题讨论】:
对于计算机游戏的关卡生成器,我需要一种以编程方式渲染 3D 场景的方法。更准确地说,我不是指像 OpenGL 或 Direct3D 这样的 3D-API,场景不应该在游戏运行时渲染,而是应该离线渲染以供以后使用。
我知道 RenderMan,但如果有其他替代品我会很感兴趣。关于 RenderMan,这是一个适合此目的的工具吗?
能否使用 COLLADA 描述 3D 场景并将其输入渲染器?
谢谢 约翰内斯
【问题讨论】:
所以,是的,渲染离线图像就是 RenderMan 的用途。暴雪就是将其用于此目的的游戏公司的一个例子。是的,您还可以导出到另一种场景格式,如 COLLADA 并使用不同的渲染器。有创作场景然后渲染它的问题。渲染器确实对场景文件进行操作,可能是 ascii 格式的,当然你也不想手写一个。也许您正在从游戏引擎或关卡编辑器中导出场景?或者,您需要在 Maya、Houdini、Max、Sketchup、Blender 等建模/动画包中创建它。这些包具有各种插件导出器和渲染器。 RenderMan 一词用于指代场景描述规范,如 COLLADA,也可以专门指 Pixar 的渲染器,它接受 RenderMan 格式。其他几个渲染器也接受 RenderMan 格式,有些甚至是免费的,比如 Pixie。选择建模包和渲染器取决于您的预算和要求...
【讨论】:
这是我的猜测。如果你所说的离线渲染是为了得到一些实时渲染很难实现的东西,尤其是在游戏模式下,比如次表面散射、软阴影、抗锯齿、更重计算的过滤,以及全局光照,你可以按照 Skizz 和 Tim 的建议去做。我也会推荐pbrt。
但是,这一切都取决于你当时喜欢做什么。诸如如何处理并将 3D 对象和环境导入渲染器?、你的着色脚本/语言是什么?、你会得到什么样的渲染结果需要?一些背景图片?还是几个嵌入了 GI 的渲染出来的高质量纹理?等
【讨论】: