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

De TartareFR
Aller à la navigation Aller à la recherche
 
(29 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
== Une surface de l'eau simple, opaque, plat et réfléchissant ==
== Une surface de l'eau simple, opaque, plate et réfléchissante ==
[[Fichier:PovrayTutoRealisticWater01.png|300px|vignette|droite|Une surface de l'eau simple: [[Fichier:PovrayTutoRealisticWater01.pov]]]]
{{Povray/tuto|Le plus souvent la surface de l'eau paraît comme un miroir opaque. Pour simuler cette surface il suffit d'ajouter une texture comme 'Polished_Chrome'. L'eau même est transparente, légèrement grisée très clair (L'eau claire n'a pas de couleur !!!).
Le plus souvent une surface de l'eau paraît comme un miroir opaque. Pour simuler cette surface il suffit amplement une texture comme 'Polished_Chrome'. L'eau même est transparent en gris très clair sans couleur (L'eau clair n'a pas de couleur !!!).
La couleur d'une surface de l'eau est surtout défini par les objets que se réfléchissent dans la surface. ( Bleu est la couleur de la mer seulement les jours ensoleillés avec un ciel bleu ! L'eau a l'air différente avec des ciels différents ! ).
La couleur d'une surface de l'eau est surtout défini par les objets que se réfléchissent dans la surface. ( Bleu est la couleur de la mer soulement à jours ensoleillé avec un ciel bleu ! L'eau a l'air différent avec des ciels différents ! ).
<syntaxhighlight lang="povray">
<syntaxhighlight lang="povray">
// sea ------------------------------
plane{<0,1,0>, 0
plane{<0,1,0>, 0
       texture{pigment{rgb <.2,.2,.2>}
       texture{pigment{rgb <.2,.2,.2>}
Ligne 15 : Ligne 13 :
               }// end of texture
               }// end of texture
     }// end of plane
     }// end of plane
//-----------------------------------
</syntaxhighlight>
</syntaxhighlight>
Si nous avons inséré les définitions des textures, nous pouvons écrire cela plus court :
Si nous avons inséré les définitions des textures, nous pouvons écrire cela plus court :
<syntaxhighlight lang="povray">
<syntaxhighlight lang="povray">
#include "textures.inc"
#include "textures.inc"
// sea ------------------------------
plane{<0,1,0>, 0
plane{<0,1,0>, 0
       texture{ Polished_Chrome }
       texture{ Polished_Chrome }
     }// end of plane
     }// end of plane
//-----------------------------------
</syntaxhighlight>
</syntaxhighlight>
| [[Fichier:PovrayTutoRealisticWater01.png|300px|vignette|Surface simple, opaque, plate et réfléchissante<br>[[Media:PovrayTutoRealisticWater01.pov|Fichier POVRay correspondant]]]]
}}


== L'eau peu agité avec reflections des nuages ==
== L'eau peu agitée avec reflections des nuages ==
[[Fichier:PovrayTutoRealisticWater02.png|300px|vignette|droite|L'eau peu agité: [[Fichier:PovrayTutoRealisticWater02.pov]]]]
{{Povray/tuto|Des ondes modérées font une surface de l'eau plus réaliste. Nous ajoutons à la texture la commande suivante :
Des ondes modéré font une surface de l'eau plus realiste. Nous ajoutons à la texture le commande suivante :
<syntaxhighlight lang="povray">
<syntaxhighlight lang="povray">
normal{ bumps 0.03
normal{ bumps 0.03
Ligne 35 : Ligne 31 :
         turbulence 0.6
         turbulence 0.6
       }
       }
//-----------------------------------
</syntaxhighlight>
</syntaxhighlight>
| [[Fichier:PovrayTutoRealisticWater02.png|300px|vignette|Surface peu agitée avec réflexion<br>[[Media:PovrayTutoRealisticWater02.pov|Fichier POVRay correspondant]]]]
}}
== La mer agitée, la surface de l'eau plus agitée ==
{{Povray/tuto|Nous obtenons cela par ajouter à la texture la commande suivante :
<syntaxhighlight lang="povray">
normal{ bumps 0.3
        scale 0.05
        turbulence 0.6
      }
</syntaxhighlight>
| [[Fichier:PovrayTutoRealisticWater03.png|300px|vignette|Surface agitée avec bumps<br>[[Media:PovrayTutoRealisticWater03.pov|Fichier POVRay correspondant]]]]
}}
{{Povray/tuto|Aussi un effet très realiste on peut voir par ex. comme cela :
<syntaxhighlight lang="povray">
normal{ crackle 0.15
        scale 0.75
        turbulence 0.3
        translate<-1,0,5>
      }
</syntaxhighlight>
| [[Fichier:PovrayTutoRealisticWater04.png|300px|vignette|Surface agitée avec crackle<br>[[Media:PovrayTutoRealisticWater04.pov|Fichier POVRay correspondant]]]]
}}
== Une surface de l'eau ridée par le vent ==
{{Povray/tuto|Nous obtenons cela avec le motif 'crackle' ou 'bozo' et par ajouter des échelles différentes en direction x et y et aussi une rotation dans la direction transversale au vent :
<syntaxhighlight lang="povray">
normal{ bozo 1.75
        scale <2.0,1,0.3>*0.20
        rotate<0,10,0>
        turbulence 0.9
        translate<0,0,-2>
      }
</syntaxhighlight>
| [[Fichier:PovrayTutoRealisticWater05.png|300px|vignette|Surface de l'eau ridée avec bozo<br>[[Media:PovrayTutoRealisticWater05.pov|Fichier POVRay correspondant]]]]
}}
{{Povray/tuto|L'effet ressemblent avec 'crackle':
<syntaxhighlight lang="povray">
normal{ pigment_pattern{
            crackle
            colour_map { [0, rgb 0]
                          [1, rgb 1] }
            turbulence 1.7
            translate <0,0,1>}
            0.5}
      scale <2.0,1,0.3>*2
      rotate<0,10,0>
    }
</syntaxhighlight>
| [[Fichier:PovrayTutoRealisticWater06.png|300px|vignette|Surface de l'eau ridée avec crackle<br>[[Media:PovrayTutoRealisticWater06.pov|Fichier POVRay correspondant]]]]
}}
Remarque : Tout cela sont seulement des simulations des surfaces ondulées! Géométriquement, ils sont toujours parfaitement plat. Pour obtenir des des surfaces tridimensionnelles ondulées, il faut beaucoup plus ! Voir ici et ici !
== Une surface de l'eau partiellement transparente et réfléchissante ==
{{Povray/tuto|Si l'eau paraît partiellement transparent
et réfléchissent, nous pouvons simuler cela par utiliser la texture 'Glass3' (l'eau clair) ou 'Green_Glass' (l'eau vert par des plantes aquatiques !). Dans ces cas le sous-sol doit être définé bien - le sous-sol a une grande influence à l'apparence de la surface de l'eau!
<syntaxhighlight lang="povray">
plane{<0,1,0>, 0  translate<0,-3,0>
      texture{pigment{color LightWood}
              normal {bumps 0.25
                      scale 0.05}
              finish {ambient 0.45
                      diffuse 0.55}
              }// end of texture
      }// end of plane 1
plane{<0,1,0>, 0
      texture{ Green_Glass
              normal{ripples 0.3
                    scale 0.25
                    turbulence 0.75
                    translate< 1,0,2>}
              finish{ambient 0.45
                    diffuse 0.55
                    reflection 0.3}
            }// end of texture
    interior{I_Glass}
    }// end of plane 2
</syntaxhighlight>
| [[Fichier:PovrayTutoRealisticWater07.png|300px|vignette|Surface de l'eau partiellement transparente et réfléchissante<br>[[Media:PovrayTutoRealisticWater07.pov|Fichier POVRay correspondant]]]]
}}
== Ondes concentriques autour d'un poteau ==
{{Povray/tuto|<syntaxhighlight lang="povray">
plane{<0,1,0>, 0
      texture{ Green_Glass
              normal{ripples 0.3
                    scale 0.25
                    turbulence 0.5
                    translate< 1,0,2>}
              finish{ambient 0.45
                    diffuse 0.55
                    reflection 0.3}
            }// end of texture
    interior{I_Glass}
    }// end of plane 2
</syntaxhighlight>
| [[Fichier:PovrayTutoRealisticWater08.png|300px|vignette|Ondes concentriques<br>[[Media:PovrayTutoRealisticWater08.pov|Fichier POVRay correspondant]]]]
}}
== Un trou dans l'eau - un tourbillon ==
{{Povray/tuto|
Cela on peu faire avec quelques fonctions simples de CSG. À la fin nous devons appliquer une texture avec un composant 'normal' approprié sur le plan pour simuler le tourbillon de l'eau.
Pour plus de clarté j'ai découpé un quart du plan.
# Nous prenons un plan xz ( plane{<0,1,0>,0} ) et un cylindre un peu plus haut. pour éviter des surfaces coïncidentes dans une 'difference'.<br>[[Fichier:PovrayTutoWaterHole01.jpg]]
# Nous soustrayons ce cylindre du notre plan. Nous obtenons un trou avec un arête vive.<br>[[Fichier:PovrayTutoWaterHole02.jpg]]
# Pour arrondir cet arête vive nous prenons un autre cylindere avec le rayon agrandi du rayon du bords ronds.<br>[[Fichier:PovrayTutoWaterHole03.jpg]]
# Encore une fois nous soustrayons ce deuxième cylindre ! <br>[[Fichier:PovrayTutoWaterHole04.jpg]]
# Puis nous ajoutons un tore (un anneau) avec le rayon majeur <nowiki>=</nowiki> rayon de notre deuxième cylindre et le rayon mineur <nowiki>=</nowiki> rayon du bords ronds.<br>[[Fichier:PovrayTutoWaterHole05.jpg]]
# La construction est fini!<br>[[Fichier:PovrayTutoWaterHole06.jpg]]
À la fin nous ajoutons à la texture de l'eau, une normale come cela :
<syntaxhighlight lang="povray">
normal {spiral1  20  0.25
        sine_wave
        turbulence 0.1
        rotate<90,0,0>
        scale 0.5
}
</syntaxhighlight>
| [[Fichier:PovrayTutoRealisticWater09.png|300px|vignette|Un tourbillon<br>[[Media:PovrayTutoRealisticWater09.pov|Fichier POVRay correspondant]]]]
}}

Dernière version du 1 septembre 2013 à 17:54

Une surface de l'eau simple, opaque, plate et réfléchissante

Le plus souvent la surface de l'eau paraît comme un miroir opaque. Pour simuler cette surface il suffit d'ajouter une texture comme 'Polished_Chrome'. L'eau même est transparente, légèrement grisée très clair (L'eau claire n'a pas de couleur !!!).

La couleur d'une surface de l'eau est surtout défini par les objets que se réfléchissent dans la surface. ( Bleu est la couleur de la mer seulement les jours ensoleillés avec un ciel bleu ! L'eau a l'air différente avec des ciels différents ! ).

plane{<0,1,0>, 0
      texture{pigment{rgb <.2,.2,.2>}
              finish {ambient 0.15
                      diffuse 0.55
                      brilliance 6.0
                      phong 0.8
                      phong_size 120
                      reflection 0.6}
              }// end of texture
     }// end of plane

Si nous avons inséré les définitions des textures, nous pouvons écrire cela plus court :

#include "textures.inc"
plane{<0,1,0>, 0
      texture{ Polished_Chrome }
     }// end of plane
Surface simple, opaque, plate et réfléchissante
Fichier POVRay correspondant


L'eau peu agitée avec reflections des nuages

Des ondes modérées font une surface de l'eau plus réaliste. Nous ajoutons à la texture la commande suivante :
normal{ bumps 0.03
         scale <1,0.25,0.25>*1
         turbulence 0.6
       }
Surface peu agitée avec réflexion
Fichier POVRay correspondant


La mer agitée, la surface de l'eau plus agitée

Nous obtenons cela par ajouter à la texture la commande suivante :
normal{ bumps 0.3
        scale 0.05
        turbulence 0.6
      }
Surface agitée avec bumps
Fichier POVRay correspondant
Aussi un effet très realiste on peut voir par ex. comme cela :
normal{ crackle 0.15
        scale 0.75
        turbulence 0.3
        translate<-1,0,5>
      }
Surface agitée avec crackle
Fichier POVRay correspondant


Une surface de l'eau ridée par le vent

Nous obtenons cela avec le motif 'crackle' ou 'bozo' et par ajouter des échelles différentes en direction x et y et aussi une rotation dans la direction transversale au vent :
normal{ bozo 1.75
         scale <2.0,1,0.3>*0.20
         rotate<0,10,0>
         turbulence 0.9
         translate<0,0,-2>
       }
Surface de l'eau ridée avec bozo
Fichier POVRay correspondant


L'effet ressemblent avec 'crackle':
normal{ pigment_pattern{
             crackle
             colour_map { [0, rgb 0]
                          [1, rgb 1] }
             turbulence 1.7
             translate <0,0,1>}
             0.5}
       scale <2.0,1,0.3>*2
       rotate<0,10,0>
     }
Surface de l'eau ridée avec crackle
Fichier POVRay correspondant


Remarque : Tout cela sont seulement des simulations des surfaces ondulées! Géométriquement, ils sont toujours parfaitement plat. Pour obtenir des des surfaces tridimensionnelles ondulées, il faut beaucoup plus ! Voir ici et ici !

Une surface de l'eau partiellement transparente et réfléchissante

Si l'eau paraît partiellement transparent

et réfléchissent, nous pouvons simuler cela par utiliser la texture 'Glass3' (l'eau clair) ou 'Green_Glass' (l'eau vert par des plantes aquatiques !). Dans ces cas le sous-sol doit être définé bien - le sous-sol a une grande influence à l'apparence de la surface de l'eau!

plane{<0,1,0>, 0  translate<0,-3,0>
       texture{pigment{color LightWood}
               normal {bumps 0.25
                       scale 0.05}
               finish {ambient 0.45
                       diffuse 0.55}
               }// end of texture
       }// end of plane 1

plane{<0,1,0>, 0
      texture{ Green_Glass
              normal{ripples 0.3
                     scale 0.25
                     turbulence 0.75
                     translate< 1,0,2>}
              finish{ambient 0.45
                     diffuse 0.55
                     reflection 0.3}
             }// end of texture
     interior{I_Glass}
     }// end of plane 2
Surface de l'eau partiellement transparente et réfléchissante
Fichier POVRay correspondant


Ondes concentriques autour d'un poteau

plane{<0,1,0>, 0
      texture{ Green_Glass
              normal{ripples 0.3
                     scale 0.25
                     turbulence 0.5
                     translate< 1,0,2>}
              finish{ambient 0.45
                     diffuse 0.55
                     reflection 0.3}
             }// end of texture
     interior{I_Glass}
     }// end of plane 2
Ondes concentriques
Fichier POVRay correspondant

Un trou dans l'eau - un tourbillon

Cela on peu faire avec quelques fonctions simples de CSG. À la fin nous devons appliquer une texture avec un composant 'normal' approprié sur le plan pour simuler le tourbillon de l'eau. Pour plus de clarté j'ai découpé un quart du plan.

  1. Nous prenons un plan xz ( plane{<0,1,0>,0} ) et un cylindre un peu plus haut. pour éviter des surfaces coïncidentes dans une 'difference'.
    PovrayTutoWaterHole01.jpg
  2. Nous soustrayons ce cylindre du notre plan. Nous obtenons un trou avec un arête vive.
    PovrayTutoWaterHole02.jpg
  3. Pour arrondir cet arête vive nous prenons un autre cylindere avec le rayon agrandi du rayon du bords ronds.
    PovrayTutoWaterHole03.jpg
  4. Encore une fois nous soustrayons ce deuxième cylindre !
    PovrayTutoWaterHole04.jpg
  5. Puis nous ajoutons un tore (un anneau) avec le rayon majeur = rayon de notre deuxième cylindre et le rayon mineur = rayon du bords ronds.
    PovrayTutoWaterHole05.jpg
  6. La construction est fini!
    PovrayTutoWaterHole06.jpg

À la fin nous ajoutons à la texture de l'eau, une normale come cela :

normal {spiral1  20  0.25 
        sine_wave
        turbulence 0.1
        rotate<90,0,0>
        scale 0.5
}