【问题标题】:Pre-rendering a 3D scene programmatically以编程方式预渲染 3D 场景
【发布时间】:2010-11-19 06:30:06
【问题描述】:

对于计算机游戏的关卡生成器,我需要一种以编程方式渲染 3D 场景的方法。更准确地说,我不是指像 OpenGL 或 Direct3D 这样的 3D-API,场景不应该在游戏运行时渲染,而是应该离线渲染以供以后使用。

我知道 RenderMan,但如果有其他替代品我会很感兴趣。关于 RenderMan,这是一个适合此目的的工具吗?

能否使用 COLLADA 描述 3D 场景并将其输入渲染器?

谢谢 约翰内斯

【问题讨论】:

    标签: 3d rendering


    【解决方案1】:

    你有很多选择。这是三个:

    【讨论】:

    • POVray 可能是生成场景的最佳选择,因为它适用于场景描述的简单文本文件。
    • 然而,文本文件是设计渲染场景的最不友好的方式。
    【解决方案2】:

    所以,是的,渲染离线图像就是 RenderMan 的用途。暴雪就是将其用于此目的的游戏公司的一个例子。是的,您还可以导出到另一种场景格式,如 COLLADA 并使用不同的渲染器。有创作场景然后渲染它的问题。渲染器确实对场景文件进行操作,可能是 ascii 格式的,当然你也不想手写一个。也许您正在从游戏引擎或关卡编辑器中导出场景?或者,您需要在 Maya、Houdini、Max、Sketchup、Blender 等建模/动画包中创建它。这些包具有各种插件导出器和渲染器。 RenderMan 一词用于指代场景描述规范,如 COLLADA,也可以专门指 Pixar 的渲染器,它接受 RenderMan 格式。其他几个渲染器也接受 RenderMan 格式,有些甚至是免费的,比如 Pixie。选择建模包和渲染器取决于您的预算和要求...

    【讨论】:

      【解决方案3】:

      这是我的猜测。如果你所说的离线渲染是为了得到一些实时渲染很难实现的东西,尤其是在游戏模式下,比如次表面散射、软阴影、抗锯齿、更重计算的过滤,以及全局光照,你可以按照 Skizz 和 Tim 的建议去做。我也会推荐pbrt

      但是,这一切都取决于你当时喜欢做什么。诸如如何处理并将 3D 对象和环境导入渲染器?你的着色脚本/语言是什么?你会得到什么样的渲染结果需要?一些背景图片?还是几个嵌入了 GI 的渲染出来的高质量纹理?

      【讨论】:

        猜你喜欢
        • 2014-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-04
        • 2011-07-09
        • 2011-05-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多