Descriptions et Exemples pour le raytracer de POV-Ray par Friedrich A. Lohmüller,
English English English
Deutsch
Italiano Italiano

Page d'Accueil
- Tutoriel POV-Ray

- Ciel réaliste
    - Ciel d'azur
    - Partiellement couvert
    - Couches de nuages
    - Liasse de plans
    - Nuages et ombres
    - Nuages par media
    - Coucher du soleil
    - Ciel parsemé détoiles
    - Skydomes et Skymaps
   > Skyboxes et cubemaps
    - Environnement HDRI

    - Téléchargement
 
                                                     

Comment créer un ciel réaliste avec POV-Ray

Contenu | 1 | 2 | 3 | 4 | 5 | 6| 7.0 | 7.1 | 8 | 9 | 10

Cubic Environment Mapping -
La projection cubique de l'environnement

Skyboxes et cubemaps avec des images de panorama à 360°.

C'est une autre méthode d'environment mapping les techniques de la projection de l'environnement, aussi appelée "cubic environment mapping" ou "panorama cube mapping".
C'est une méthode très habituele dans le jeus 3D video.
Un skybox est un cube grand avec un image de 360° du ciel e du sol ("skymap") projetée ("mapped") sur la face interne de ce cube avec des vues de 90°x90° sur chaque face du cube. Cette méthode de "environment mapping" peut eviter le problème des distorsions extrêmes aux pôles d'une sphère avec "spherical mapping".
Un programme gratuit pour afficher et explorer un environnement en Skybox est le SkyboxViewer par Gerd Platl.

Nous pouvons réaliser un skybox en POV-Ray par uv_mapping d'un image_map sur un box.
Nous utilisons le uv_mapping pour projeter une texture dans le plan XY de <0,0> à <1,1> sur le surface du cube. L'image s'enroule around autour du cube de la manière comme dans les images ci-contre.

Pour utiliser un photo de panorama à 360° pour une skymap dans un skybox (avec POV-Ray 3.6/3.7) nous avons besoin de corriger le gamma de l'image ou photo avec la macro suivante :

// Macro pour corriger les images
// pour image_map avec assumed_gamma = 1.0 ;
#macro Correct_Pigment_Gamma(Orig_Pig, New_G)
  #local Correct_Pig_fn =
      function{ pigment {Orig_Pig} }
  pigment{ average pigment_map{
   [function{ pow(Correct_Pig_fn(x,y,z).x, New_G)}
               color_map{[0 rgb 0][1 rgb<3,0,0>]}]
   [function{ pow(Correct_Pig_fn(x,y,z).y, New_G)}
               color_map{[0 rgb 0][1 rgb<0,3,0>]}]
   [function{ pow(Correct_Pig_fn(x,y,z).z, New_G)}
               color_map{[0 rgb 0][1 rgb<0,0,3>]}]
   }}
#end //
// "image_map" avec gamma corrigé:
//    Correct_Pigment_Gamma(
//    pigment{ image_map{ jpeg "colors.jpg"}}
//    , Correct_Gamma)
//------------------------------------------------
box{ <-1, -1, -1>,< 1, 1, 1>
 texture{ uv_mapping
   Correct_Pigment_Gamma( // gamma correction
     pigment{
     image_map{ jpeg "Cubemap_2_2048x1536.jpg"
                map_type 0    // planar
                interpolate 2 // bilinear
                once //
              } //  end of image_map
    } // end of pigment
    , 2.2) //, New_Gamma
    finish { ambient 1 diffuse 0 }
 } // end of texture
scale 10000
} // end of skybox --------------------
Sky_map
Un 360° panorama cube map
pour cubic mapping sur un cube de POV-Ray.
box uv_mapping sequence
La séquence comme une texture
dans le plain XY de <0,0> à <1,1>
s'enveloppée autour d'un cube in POV-Ray.
Sample scene skymap
Cube map enveloppée autour d'un cube.
// uv_mapping pour box - POV-Ray syntaxe
box{ <-1,-1,1>,<1,1,1>
     texture{ uv_mapping  pigment{ ... }
              uv_mapping  normal { ... }
              uv_mapping  finish { ... }
            } // end texture
     scale 1
     rotate<0,0,0>
}//--------------------
uv_mapping syntaxe pour un cube en POV-Ray
Cubemap_2_inside_1.jpg
Skymap projeté sur un cube en POV-Ray
Cubemap_2_inside.gif 499kB
Animation du Panorama 360° avec skybox.
Description de cette scène pour POV-Ray (sans animation)
Cubemap_2_inside_1.txt ou Cubemap_2_inside_1.pov

Téléchargement de cette cubic map in 2048x1536 pixel (768 kB)
ici: Cubemap_2_2048x1536.jpg

Contenu | 1 | 2 | 3 | 4 | 5 | 6| 7.0 | 7.1 | 8 | 9 | 10

top

© Friedrich A. Lohmüller, 2013
homepage:www.f-lohmueller.de
 
Visitors:
(since May-1999)
Thanks for your visit!