我正在开发一个光线追踪程序,不想在处理3D场景的文件格式时重复造轮子。同时,我还希望能够使用其他人创建的场景来测试我的程序。我是一名程序员,而不是3D建模师。
是否有一个特定的或适合光线追踪的3D场景格式?
我正在开发一个光线追踪程序,不想在处理3D场景的文件格式时重复造轮子。同时,我还希望能够使用其他人创建的场景来测试我的程序。我是一名程序员,而不是3D建模师。
是否有一个特定的或适合光线追踪的3D场景格式?
当我编写光线追踪器时,我编写了一个导出器用于Blender(它是免费的)。 Blender本身可以加载数十种格式,然后一个简单的20行Python脚本将为您提供所需的点。
最棒的特性是,在Blender中,您可以将所有模型的面转换为三角形。大多数光线追踪器只能使用三角形(或在内部将多边形转换为三角形)。因此,让Blender来处理这些多边形的繁重工作非常好。
首先,20行代码将允许您仅导出多边形。从那里开始,您可以扩展它以输出材质、法线等。我喜欢这种方法,因为我可以获取我想要的数据以我想要的格式,但仍具有导入更复杂模型的选项。
其他方法也可以,但您首先必须找出如何解析文件,然后将其以您想要的格式获取。我宁愿编写光线追踪器而不是解析器。
我不相信目前有任何特定的场景格式在使用,因为不同的建模师需要不同的参数和设置指令等。
然而,WaveFront .obj
格式非常流行,用于描述场景中的单个对象,并且网络上有许多以这种格式保存的文件可供使用。