Là où l'objet isosurface utilise des fonctions de surface, F(x, y, z)=0, l'objet paramétrique est une série d'équations pour une surface exprimée sous la forme de paramètres qui positionnent les points sur la surface, x(u, v), y(u, v), z(u, v). Chaque paire de valeurs pour u et v donne un point unique dans l'espace 3D.
L'objet paramétrique n'est pas plein, il est "creux", comme une coquille fine.
Syntaxe :
parametric { function { FUNCTION_ITEMS }, function { FUNCTION_ITEMS }, function { FUNCTION_ITEMS } <u1, v1>, <u2, v2> [contained_by { SPHERE | BOX }] [max_gradient FLOAT_VALUE] [accuracy FLOAT_VALUE] [precompute DEPTH, VarList] }
Les valeurs par défaut sont :
accuracy : 0.001
La première fonction calcule la valeur x de la surface, la seconde y et la troisième z. Toute fonction dont le résultat est numérique est autorisée.
balise l'espace (u, v), dans lequel la surface sera calculée.
contained_by { ... } Le contained_by 'objet' limite l'aire d'échantillonnage de POV-Ray pour la surface de la fonction. Ce conteneur peur être une sphère ou une boîte, chacune d'elles utilise la syntaxe standard de POV-Ray. Si ce n'est pas spécifié, une box {<-1,-1,-1>, <1, 1, 1>} sera utilisée par défaut.
max_gradient n'est pas réellement le gradient maximal. C'est la magnitude maximale des six dérivées partielles sur des fourchettes spécifiées de u et v. Donc, si vous prennez dx/du, dx/dv, dy/du, dy/dv, dz/du, et dz/dv et les calculez sur l'ensemble de la fourchette, le max_gradient est la maximum des valeurs absolues de toutes les valeurs.
accuracy Le défaut est 0.001. De plus petites valeurs donnent des surfaces plus précises, mais prend plus de temps de rendu.
precompute peut accélérer le rendu des surfaces paramétriques. Il divise simplement les surfaces paramétriques en plus petites (2^profondeur) et précalcule la fourchette des variables (x,y,z) que vous spécifiez après la profondeur. La profondeur maximale est 20. De grandes valeurs de la profondeur peuvent produire des tableaux qui consomment beaucoup de mémoire, prennent du temps d'analyse et se rendent plus vite. Si vous déclarez une surface paramétrique avec le mot clé precompute et l'utilisez deux fois, tous les tableaux sont en mémoire une seule fois.
Exemple, une sphère :
parametric { function {sin(u)*cos(v)} function {sin(u)*sin(v)} function {cos(u)} <0, 0>, <2*pi, pi> contained_by {sphere {0, 1.1}} max_gradient ?? accuracy 0.0001 precompute 10 x, y, z pigment {rgb 1} }
| 3.3.6 Constructive Solid Geometry |