« Povray/Tutorials/RealisticSky » : différence entre les versions

De TartareFR
Aller à la navigation Aller à la recherche
Ligne 198 : Ligne 198 :
} // end of sky_sphere --------------------
} // end of sky_sphere --------------------
</syntaxhighlight>
</syntaxhighlight>
[[Fichier:PovrayTutoRealisticSky10Image.jpg|800px|gauche]]
| [[Fichier:PovrayTutoRealisticSky10Demo.png|300px|vignette|Projection d'une image<br>[[Media:PovrayTutoRealisticSky10Demo.pov|Fichier POVRay correspondant]]<br>[[Media:PovrayTutoRealisticSky10Font.ttf|Fichier Font correspondant]]<br>[[Media:PovrayTutoRealisticSky10Image.jpg|Fichier JPEG correspondant]]]]<br>[[Fichier:PovrayTutoRealisticSky10.png|300px|vignette|Scène d'exemple<br>[[Media:PovrayTutoRealisticSky10.pov|Fichier POVRay correspondant]]<br>[[Media:PovrayTutoRealisticSky10Image.jpg|Fichier JPEG correspondant]]]]
| [[Fichier:PovrayTutoRealisticSky10Demo.png|300px|vignette|Projection d'une image<br>[[Media:PovrayTutoRealisticSky10Demo.pov|Fichier POVRay correspondant]]<br>[[Media:PovrayTutoRealisticSky10Font.ttf|Fichier Font correspondant]]<br>[[Media:PovrayTutoRealisticSky10Image.jpg|Fichier JPEG correspondant]]]]<br>[[Fichier:PovrayTutoRealisticSky10.png|300px|vignette|Scène d'exemple<br>[[Media:PovrayTutoRealisticSky10.pov|Fichier POVRay correspondant]]<br>[[Media:PovrayTutoRealisticSky10Image.jpg|Fichier JPEG correspondant]]]]
}}
}}

Version du 7 septembre 2013 à 13:12

Un ciel clair d'azur d'été

Le monde vu de l'intérieur d'une hémisphère du type "cloche à fromage" avec un brouillard réaliste à l'horizon fait avec une "color_map{gradient <0,1,0> ..." tirant la couleur bleu foncé au zénith à blanc au niveau d'horizon. Le tout agrandi par "scale 10000".

Le seul problème : Nous devons placer le soleil dans cette hémisphère, autrement nous ne voyons seulement le composant "ambient" de toutes les textures !

sphere{<0,0,0>,1 hollow
 texture{
  pigment{gradient <0,1,0>
          color_map{
           [0.0 color White]
           [0.8 color rgb<0.1,0.25,0.75>]
           [1.0 color rgb<0.1,0.25,0.75>] }
         } // end pigment
  finish {ambient 1 diffuse 0}
  } // fin de la texture
 scale 10000
 }

Nous obtenons la même résultat sans ces restrictions par l'utilisation de "sky_sphere" avec ce "pigment" .

sky_sphere{
 pigment{ gradient <0,1,0>
          color_map{
          [0.0 color rgb<1,1,1>        ]
          [0.8 color rgb<0.1,0.25,0.75>]
          [1.0 color rgb<0.1,0.25,0.75>]}
        } // end pigment
 } // end of sky_sphere -----------------
Un ciel clair d'azur d'été
Fichier POVRay correspondant

de beaux Nuages mais avec un horizon minable

Dans un monde à l'intérieur d'un hémisphère du type "cloche à fromage" nous ne pouvons pas utiliser une texture avec des nuages parce que les nuages sont en collision avec l'horizon très irréaliste !

Malheureusement presque tout les ciels couvert de nuages créés avec "sky_sphere" souffriront de cette maladie !


Un ciel avec de beaux nuages mais un horizon minable
Fichier POVRay correspondant

Un ciel partiellement couvert avec horizon réaliste

Le ciel est formé d'un plan bleu décoré avec quelques nuages. Les nuages deviennent plus petites vers l'horizon - cela est réaliste ! Cet effet, on ne peut pas le simuler avec une "sky_sphere" !

Un brouillard realiste ("fog") recouvre la ligne noire l'intersection entre le plan du sol et le plan du ciel. d'horizon

Le seul problème : Nous devons placer le soleil dans cette hémisphère, autrement nous ne voyons seulement le composant "ambient" de toutes les textures !

Un ciel partiellement couvert avec horizon réaliste
Fichier POVRay correspondant

Un autre ciel partiellement couvert

Le ciel est formé d'un plan bleu décoré avec quelques nuages. Les nuages deviennent plus petites vers l'horizon - réaliste ! Un brouillard realiste ("fog") recouvre la ligne noire d'horizon entre le plan du sol et le plan du ciel.

Le seule problème ici : Nous devons placer le soleil sous ce plan!

plane{<0,1,0>,1 hollow
       texture{
        pigment{ bozo turbulence 0.92
          color_map {
           [0.00 rgb <0.2, 0.3, 1>*0.5]
           [0.50 rgb <0.2, 0.3, 1>*0.8]
           [0.70 rgb <1,1,1>]
           [0.85 rgb <0.25,0.25,0.25>]
           [1.0 rgb <0.5,0.5,0.5>]}
          scale<1,1,1.5>*2.5
          translate<1.0,0,-1>
          }// end of pigment
        finish {ambient 1 diffuse 0}
        }// end of texture
        scale 10000
     }// end of plane

fog { fog_type   2
      distance   50
      color      White
      fog_offset 0.1
      fog_alt    1.5
      turbulence 1.8
    }
Un ciel partiellement couvert avec horizon réaliste
Fichier POVRay correspondant


Un ciel avec 2 couches de nuages

Pour cela on a besoin de 3 plans placés les uns sur les autres. Au niveau le plus haut : Un plan avec un ciel bleu, avec "finish{ ambient 1 diffuse 0)" pour éviter des ombres sur le bleu du ciel.

Au-dessous de ce pemier plan, un second plan avec une structure de nuages partiellement transparente. Ce plan forme les nuages 'hauts. Sous ce plan un troisième plan avec une structure de nuages plus transparente. Ces nuages ont une autre direction, cela peut être simuler avec des échelles differentes pour x et z. Cela est une version plus clair les "T_Clouds" de Darin Dugger dans le fichier include "e;skies.inc";. Est aussi modifiée pour permettere l'usage de fog - cela n'est pas possible avec l'objet original "O_T_Cloud2"

Un ciel avec 2 couches de nuages
Fichier POVRay correspondant


Liasse de plans avec texture de nuages

Ici plusiers de plans s'empilent l'un sur l'autre et sont coloriés avec un motif semitransparent de nuages que saffaiblisent vers les couches supérieures et vers les couches de base. L'idée original pour cette méthode j'ai trouvé ici :

Stacked Sky Planes macro "stsky.inc" de Jaime Vives Piqueres, 2000 ici http://www.ignorancia.org/ Voir "techniques" >> "Stacked Planes".

Il y a un fichier include file pour ces nuages : PovrayTutoRealisticSky06.inc Note: Le fichier include fait seulement les nuages. Vous devez ajuter un fond bleu du ciel (par ex. avec sky_sphere{ ... } ). L'handicap de cette méthode : si on regarde du niveau des nuages ou vers l'horizon, on peut voir les lacunes entre les plans.

Liasse de plans avec texture de nuages
Fichier POVRay correspondant
Fichier Include correspondant

Nuages avec ombre sur le sol

Pour obtenir cet effet le solei doit être positionné au-dessous du plan plus 'haut avec la couleur bleu et sur le plan transparent avec les nuages blancs.

Pour faciliter de trouver une position du solei précisement entre les nuages on peut utiliser une sphère avec un texture miroitant et avec phong par ex. "Polished_Chrome".

Nuages avec ombre sur le sol
Fichier POVRay correspondant

Nuages massifs par media

Avec un media, nous pouvons faire de vrais nuages: avec une structure massive et à travers lesquels on peut "voler dans les nuages" ! Ici une "density" nuageuse est limité mollement par une "density" du type "boxed". Pour plus de details sur "media" voir mon tutoriel Conception du Intérieur des Objets transparents avec POV-Ray.
box{ <-1,-1,-1>,<1,1,1>
  texture{
    pigment{ rgbf 1} // color Clear
  } // end of texture
  interior{
   media{
    method 3
    //intervals 2
    samples 10,10
    absorption 1
    emission 0.5
    scattering{ 0.8,<1,1,1>*0.5}
    density{ bozo
             color_map {
              [0.00 rgb 0]
              [0.50 rgb 0.01]
              [0.65 rgb 0.1]
              [0.75 rgb 0.5]
              [1.00 rgb 0.2]
             } // end color_map
             turbulence 0.85
             scale  0.75
             translate<1, 0.75,2>
           } // end density
    density{  boxed // or: spherical
              color_map {
               [0.0 rgb 0]    // border
               [0.1 rgb 0.05]
               [1.0 rgb 1]    // center
              } // end color_map
             scale <1,1,1>*1
           } // end density
   } // end media
  } // end interior
 hollow
 scale<1,0.5, 1> translate<0,0.5,0>
scale 15 translate<0,02,30>
}
Nuages avec ombre sur le sol
Fichier POVRay correspondant


Ciel étoilé

Pour créer un ciel de nuit avec des millions d'étoiles nous pouvons utiliser les textures des ciels parsemés d'étoiles (de Jeff Burton) avec les templates "Starfield1, Starfield2, ..., Starfield6", que nous trouvons dans le fichier include standard "stars.inc. Nous devons utiliser ces textures avec une échelle appropriée (dépendant des dimensions de l'image).
#include "stars.inc"
sphere{ <0,0,0>, 1
        texture{ Starfield1 scale 0.25
               } // end of texture
        scale 10000
      }
}


Projection de l'environnement

Skydomes et Skymaps avec des images de panorama à 360°.

Un skydome est une hémisphère ou sphère (si nous voulons simuler l'espace) avec une texture d'un image de panorama à 360° du ciel ("skymap") projetée ("mapped") sur la face interne de cette hémisphère ou sphère. Nous pouvons réaliser cela en POV-Ray avec image_map et sky_sphere.

Pour utiliser un photo de panorama à 360° pour une skymap dans un skydome (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)
//------------------------------------------------
sky_sphere{
   Correct_Pigment_Gamma( // gamma correction
     pigment{
     image_map{ jpeg "sky_map_p_04_5200x1300.jpg"
                map_type 2    //  cylindrical
                interpolate 2 //  bilinear
                once //
              } //  end of image_map
      scale<1,1.02,1> rotate<0,0.00,0>
    } // end of pigment
    , 2.2) //, New_Gamma
} // end of sky_sphere --------------------
PovrayTutoRealisticSky10Image.jpg

On peut trouver plus des photos de panorama à 360° de ciels sur blenderartists.org