是否有特定的3D场景格式或非常适合光线追踪?

时间:2011-01-19 12:03:45

标签: 3d file-format raytracing scene

我正在研究光线跟踪器,当涉及到3D场景的文件格式时,我不想重新发明轮子。我也希望能够用他人制作的场景来测试我的节目。我是程序员而不是3D建模师。

是否有特定的3D场景格式或非常适合光线追踪?

3 个答案:

答案 0 :(得分:6)

确实没有特定于光线跟踪的格式(除非您计算PovRay格式)。光线跟踪是一种渲染图像的方法,可以应用于任何场景。人物建模场景将使用他们选择的建模软件,并且通常以建模者的默认格式保存。

看起来你没有任何要求加载特定的格式(或者你不会问)所以我猜你只是想能够从网上导入各种几何进行测试。如果是这种情况,请查看ompf论坛:http://ompf.org/他们有一个部分,其中包含指向免费场景的链接。你可以了解那里常见的东西。

另一种选择是利用开放资产导入库: http://assimp.sourceforge.net/

这可以为您导入大量文件格式。它将它们全部加载到内部数据结构中,然后您可以根据需要进行处理。它使用BSD许可证,因此它应该与您正在进行的操作合理地许可。

答案 1 :(得分:5)

当我编写光线跟踪器时,我为Blender编写了一个导出器(它是免费的)。 Blender本身可以加载几十种格式,然后一个简单的20行python脚本将为您提供所需的点数。

超级漂亮的功能是在Blender中你可以将所有模特的面转换为三角形。大多数光线追踪器仅适用于三角形(或在内部将多边形转换为三角形)。因此,让Blender做那些处理这些多边形的繁重工作是非常好的。

从20行代码开始,您只能导出多边形。从那里,你可以将它扩展到输出材料,法线等。我喜欢这种方法,因为我可以以我想要的格式获得我想要的数据,但仍然可以选择导入更复杂的模型。

其他方法可行,但您首先必须弄清楚如何解析文件,然后以您想要的格式获取它。我宁愿编写光线跟踪器而不是解析器。

答案 2 :(得分:1)

我不相信使用任何特定的场景格式,因为不同的建模者需要不同的参数和设置指令等。

然而,WaveFront .obj format非常适合在场景中描述内的单个对象,并且该格式的许多文件都可在互联网上获得。