三菱使用一种简单而通用的基于 XML 的格式来表示场景。由于框架的理念是将离散的功能块表示为插件,所以场景文件可以被解释为“菜谱”,指定应该实例化哪些插件以及如何将它们组合在一起。在下面,我们将通过几个示例了解格式的范围。
一个简单的场景,一个单一的网格,没有灯光和默认的相机设置可能看起来像这样:
<scene version="3.0.0">
<shape type="obj">
<string name="filename" value="dragon.obj"/>
</shape>
</scene>
这些信息使mitsuba能够正确地处理文件,无论任何潜在的未来变化的场景描述语言。
这个例子已经包含了关于格式最重要的事情: 它由对象(例如由 < Scene > 或 < form > 标记实例化的对象)组成,这些对象还可以彼此嵌套。每个对象可选地接受描述其行为的属性(例如 < string > 标记)。除了根对象(< Scene >)之外的所有对象都会导致呈现程序从磁盘搜索和加载插件,因此必须使用 type =”提供插件名称。."参数。
Object 标签还让渲染器知道要实例化的对象是什么类型的: 例如,任何使用 < form > 标签加载的插件都必须符合形状接口,对于名为 OBJ 的插件来说肯定是这种情况(它包含一个 Wavefront OBJ 加载程序)。同样地,你也可以写作
<scene version="3.0.0">
<shape type="sphere">
<float name="radius" value="10"/>
</shape>
</scene>
这加载了一个不同的插件(球体) ,它仍然是一个形状,但是代表了一个半径为10个世界空间单位( world-space units)的球体。mitsuba有大量的插件,请参阅插件参考部分的详细概述。