Afin de lire les fichiers .obj dans Mcm3D, il est nécessaire d'ajouter la shape wavefront.cpp [4] développé par Mark Colbert dans le répertoire Mcm3D/shapes. Il est également nécessaire d'adapter le Makefile en ajoutant wavefront à la section SHAPES.
Afin d'illustrer l'utilisation de la shape wavefront nous allons calculer la moyenne
des chemins optiques d'un milieu purement diffusant. En effet pour un ensemble de photons entrant uniformément de façon isotrope à la frontière d'un domaine de volume et dont la frontière est de surface , il a été montré [5] que cette moyenne est indépendante des propriétés de diffusion des photons:
Sampler "bestcandidate" "integer pixelsamples" [4] LookAt 0.3 0.3 0.3 0 0.1 0 0 1 0 Camera "perspective" "float fov" [28] Film "image" "integer xresolution" [400] "integer yresolution" [400] SurfaceIntegrator "directlighting" Accelerator "grid" WorldBegin LightSource "point" "point from" [0.3 0.3 0.3] "color I" [100 100 100] #surface 0 AttributeBegin Translate 0 0 0 ReverseOrientation AreaLightSource "area" "color L" [1 1 1] "integer nsamples" [8] "bool mcmSurfaceIntegrable" ["true"] Texture "cstc" "color" "constant" "color value" [1 0 0] Texture "csti" "int" "constant" "integer value" [0] Material "matte_mcm" "texture Kd" "cstc" "texture numero" "csti" Shape "wavefront" "string filename" ["dragon.obj"] AttributeEnd WorldEndCe qu'il faut remarquer dans ce .pbrt est la ligne Shape qui indique que la shape est de type "wavefront" et que le fichier contenant la géométrie est "dragon.obj". Il faut remarquer également que toute la surface du dragon est indéxée par le même numéro. S'il doit y avoir une distinction entre différentes régions de la surface du dragon, il faut alors découper le dragon en autant de fichiers .obj. La figure est le résultat de la synthèse d'image obtenue à partir de ce fichier .pbrt.
La figure représente la valeur moyenne des chemins optiques dans le dragon pour différentes épaisseurs optiques de à . Cette moyenne a été obtenu par un algoritme Monte-Carlo codé dans Mcm3D pour réalistions et une fonction de phase isotrope. La valeur exacte a été obtenu par un code fortran (disponible ici ? surf_vol_obj.f90 à mettre sur le site web) qui permet de calculer la surface et le volume d'une géométrie lue dans un fichier .obj.
|