2011-01-19 5 views
7

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?

¿Hay un formato de escena en 3D específico o adecuado para raytracing?

+1

Relacionado: http://stackoverflow.com/questions/4364537/what-types-of-geometry-definition-file-format-is-best-used-with-ray-tracing-to-in –

Respuesta

4

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 miniatura 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, podrá 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.

+2

En realidad, la mayoría de los trazadores de rayos _ reales se adaptan perfectamente a los sólidos geométricos.Es un software de modelado y renderizadores basados ​​en ráster que típicamente solo hacen frente a triángulos (o quads). – Alnitak

+0

Bueno, eso no es lo que dije en mi comentario ¿verdad? Vuelve y vuelve a leer mi respuesta. Estaba hablando de exportar triángulos y hablar de cómo Blender lo hace más fácil al reducir los cuadrantes y polígonos a triángulos. Los sólidos geométricos son fácilmente compatibles con trazadores de rayos, pero nunca he visto un rastreador de un solo rayo que mantenga los polígonos en formato poligonal. En cambio, primero los convertirá en triángulos, ya que esto simplifica la tubería. Los sólidos geométricos nunca se mencionaron en esta pregunta. –

+0

Usted dijo "La mayoría de los trazadores de rayos ** solo ** trabajarán con triángulos", lo que para la mayoría de los lectores significaría exactamente eso (y por lo tanto excluyendo los sólidos geométricos). – Alnitak

1

No creo que haya ninguna en particular escena formato en uso, ya que diferentes modeladores requieren diferentes parámetros y directivas de configuración, etc.

El WaveFront .obj format es sin embargo muy popular para describir objetos individuales dentro una escena, y muchos archivos en ese formato están disponibles en Internet.

+0

Bueno, el El formato WaveFront parece ser bastante fácil, pero no es particularmente adecuado para el trazado de rayos debido a su estilo orientado a los vértices y las caras. Simplemente se me pasó por la mente que podría usar el formato POV-Ray. –

+1

Es verdad, no se puede describir un sólido paramétrico en formato OBJ. Sin embargo, el formato POVRay es un "Lenguaje de descripción de escena", con construcciones de programación complicadas, etc. Es mucho más que solo "poner esta esfera aquí". – Alnitak

4

Realmente no hay un formato específico para el trazado de rayos (a menos que cuente 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 tiene ningún requisito para cargar un formato en particular (o no se lo preguntaría), así que supongo que solo quiere 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 el Activo Importar biblioteca abierta: http://assimp.sourceforge.net/

esto puede importar un gran número 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.

Cuestiones relacionadas