vers l'index général de l'aide / vers l'index des caméras et lumières / page précédente : positionnement de la caméra
Depuis POV-Ray 3.0, la caméra a la possibilité, par un système d'échantillonnage statistique, de simuler le flou dû à la profondeur de champ.
blur_samples est le nombre maximum d'échantillons supplémentaires qui sont pris pour chaque pixel. Le système consiste en fait, en plus du pixel dont on s'occupe vraiment, à aller regarder la couleur d'un certain nombre de pixels voisins, et puis de faire une moyenne de la couleur de ceux-ci. Ce nombre de pixels voisins, c'est le "blur_samples". Une valeur de 0 court-circuite le processus de calcul de la profondeur de champ. Si la valeur est trop faible, le résultat sera assez granuleux. Pour obtenir un flou bien lisse et régulier, il faut ajuster la valeur en fonction de l'importance du flou et de la qualité désirée. Il n'est pas inutile de recourir à des valeurs aussi élevées que 1000 ou davantage pour les rendus finaux...
aperture (qui veut dire "ouverture") permet de régler l'intensité du flou. C'est un peu comme quand on ferme légèrement les yeux pour mieux distinguer quelque chose, plus l'aperture est petite, plus les choses sont nettes ! Et inversement, bien sûr.
focal_point est le point au niveau duquel tout est net. Tout ce qui se trouve avant ou après ce point redevient progressivement plus flou. C'est le point de "mise au point".
confidence, exprimé entre 0 et 1, dit à quel point le résultat des moyennes successives pour un pixel doivent s'approcher de la "bonne" valeur avant d'arrêter de prendre des échantillons supplémentaires.
variance indique quelle est la plus faible différence de couleur perceptible, usuellement 1/128.
En gros, la "variance" donne le seuil en deçà duquel on ne voit pas la différence entre deux couleurs, et "confidence" dit à quel point POV-Ray doit être exigeant sur la proximité entre la couleur courante et l'hypothétique couleur finale.
Pour augmenter la qualité de rendu, il faut augmenter la "confidence" et/ou diminuer la "variance".
Note : si quelqu'un trouve une manière plus claire d'expliquer ces deux mots-clés, qu'il se manifeste !!
François Dispot a mis au point (!!) un système pour faciliter l'utilisation de la profondeur de champ : il suffit alors de spécifier deux points entre lesquels les objets sont nets.
On peut trouver la documentation complète (en français) de cette macro sur : http://www.wozzeck.net/images/DoF_fr.html
#macro DoF( Location, //le vecteur "location" (le même que sur la caméra) Width, //largeur de l'image finale en pixels; diminuer pour augmenter la netteté. Angle, //en degrés LookAt, //le vecteur "look_at" Plane1, //1er point de netteté Plane2 //2eme point de netteté ) #render "Depth of Field control plug-in V 1.0/n" #local Unary= vnormalize(LookAt-Location); #local Alpha= vdot(Unary, Plane1-Location); //1st sharp distance #local Beta = vdot(Unary, Plane2-Location); //last sharp distance #if (Alpha = Beta) debug (" Both control points are at the same distance/n") error #end #if (Alpha <= 0) debug (" 1st control point is behind camera/n") error #end #if (Beta <= 0) debug (" 2nd control point is behind camera/n") error #end #local d=2/(1/Alpha+1/Beta); //distance to focal point #local H=2/(1/Alpha-1/Beta); //Hyperfocal distance #local F=18/tan(radians(Angle/2)); //Equivalent focal length (in mm) in 35mm #local e=36/Width; //Diameter of confusion center is 1 pixel, in 35mm film mm. #local A=e*H/F; //Aperture (in units, NOT f-stops) #local FocalPoint=Location+d*Unary; //(in units) #debug concat(" aperture ", str(A, 0, 3), "/n") #debug concat(" focal_point <", str(FocalPoint.x, 0, 3), ", ", str(FocalPoint.y, 0, 3), ", ", str(FocalPoint.z, 0, 3), ">/n") aperture A focal_point FocalPoint #end
Usage : Il faut appeler la macro DoF (...) à l'endroit où on spécifie les paramètres de profondeur de champ de la caméra.
page suivante : modes de projection