¿Hay un formato de escena en 3D específico o adecuado para raytracing?
file-format scene (3)
Estoy trabajando en un raytracer y no quiero reinventar la rueda cuando se trata de formatos de archivo para escenas en 3D. También quiero poder probar mi programa con escenas hechas por otros. Soy un programador no un modelador 3D.
¿Hay un formato de escena en 3D específico o adecuado para raytracing?
Cuando escribí mi ray tracer, escribí un exportador para Blender (es gratis). Blender en sí puede cargar docenas de formatos, luego un simple script de 20 líneas de python le dará los puntos que necesita.
La característica súper agradable es que dentro de Blender puedes convertir todas las caras de la modelo en triángulos. La mayoría de los trazadores de rayos solo funcionarán con triángulos (o convertirán polígonos a triángulos internamente). Entonces, hacer que Blender haga el trabajo pesado de machacar esos polígonos es súper agradable.
Para comenzar con 20 líneas de código, le permitirá exportar solo los polígonos. A partir de ahí, puede extenderlo a materiales de salida, normales, etc. Me gusta este método, porque puedo obtener los datos que quiero en el formato que quiero, pero aún tengo la opción de importar modelos más complejos.
Otros métodos funcionarán, pero primero debe averiguar cómo analizar un archivo y luego obtenerlo en el formato que desee. Prefiero codificar un rastreador de rayos que un analizador.
No creo que haya ningún formato de escena en uso, porque los diferentes modeladores requieren diferentes parámetros, y las directivas de configuración, etc.
Sin embargo, el formato .obj
WaveFront es muy popular para describir objetos individuales dentro de una escena, y muchos archivos en ese formato están disponibles en Internet.
Realmente no hay un formato específico para el trazado de rayos (a menos que cuentes el formato PovRay). El trazado de rayos es un método de representación de imágenes que se puede aplicar a cualquier escena. Las escenas de modelado de personas usarán el software de modelado de su elección y lo guardarán generalmente en el formato predeterminado del modelador.
Parece que no tienes ningún requisito para cargar un formato en particular (o no lo estarías preguntando), así que supongo que solo deseas importar varias geometrías de la red para probarlas. Si ese es el caso, consulte el foro ompf en: http://ompf.org/ Tienen una sección con enlaces a escenas disponibles gratuitamente. Puede hacerse una idea de lo que es común allí.
Otra opción es utilizar la biblioteca de importación Open Asset: http://assimp.sourceforge.net/
esto puede importar una gran cantidad de formatos de archivo para usted. Los carga en una estructura de datos interna, que luego puede procesar como mejor le parezca. Utiliza una licencia BSD por lo que debe ser razonablemente compatible con la licencia de lo que sea que esté haciendo.