vers l'index général de l'aide

vers l'index des isosurfaces

les isosurfaces - librairies de fonctions

Afin de permettre des raccourcis, ou l'utilisation de fonctions algorithmiques qui ne sont pas définissables avec la syntaxe "normale", des librairies de - très nombreuses - fonctions ont été implémentées.

L'apport de ces fonctions ayant été un peu hétéroclite, et leur documentation souvent absente, il est un peu pénible d'essayer de les documenter, mais nous essayerons de compléter cette page au fil du temps.

Historiquement, la première version du "patch isosurfaces" n'existait que sous Windows, l'emploi des librairies sous forme de fichiers .dll rendant le "portage" difficile. Avec l'apparition de MegaPOV, ces fonctions ont été incluses dans le propre code de POV-Ray, afin de les rendre disponibles sur toutes les plateformes. La classification de ces fonctions est la "trace" de l'époque où les librairies étaient externes, et il est difficile de prévoir, à long terme, leur évolution.

syntaxe générale

function {"nom_de_la_fonction",<P1,P2,P3,...>}

Cette syntaxe est valable à l'intérieur de l'isosurface ainsi que dans les fonctions pré-déclarées, le nom de la fonction étant suivi d'un certain nombre de paramètres, selon la fonction choisie.

fonctions prédéfinies de la librairie standard

nom de la fonction descriptifparamètresformuleexemple
"imp_func" ?
"R" sphere (si seuil=rayon) sqrt(x*x+y*y+z*z)
"TH" tore hyperbolique?? (si seuil>0) atan2(x,z)
"PH" parabole hyperbolique??! (si seuil>0) atan2(sqrt(x*x + z*z ),y)
"sphere" sphere P0 : rayon f=sqrt(x^2+y^2+z^2)-P0
"helix1" hélice P0 : nombre d'hélices
P1 : fréquence
P2 : petit rayon
P3 : grand rayon
P4 : paramètre de forme
P5 : section (<1 = rectangle arrondi, 1=cercle, 2=diamant)
P6 : angle de rotation lorsque P5<1
function {"helix1",<1,4, .2,1, 1,.5, 30>}
"helix2" hélice P0 : (y'a pas)
P1 : fréquence
P2 : petit rayon
P3 : grand rayon
P4 : paramètre de forme
P5 : section (<1 = rectangle arrondi, 1=cercle, 2=diamant)
P6 : angle de rotation lorsque P5<1
"spiral" ?
"mesh1" grillage P0 : maillage en x
P1 : maillage en z
P2 : paramètre de forme 1
P3 : amplitude
P4 : paramètre de forme 2
#declare Msh1 = function {"mesh1", <1, 1, 1, 0.17, 1>}

function {Msh1 - .2}
"rounded_box" boîte arrondie P0 : rayon de l'arrondi
"torus" boîte arrondie P0 : rayon majeur, P1 : rayon mineur
r1=sqrt(x*x+z*z)-P0; f= sqrt(r1*r1+y*y)-P1;
"superellipsoid" superellipsoïde P0 : paramètre 1, P1 : paramètre 2;
voyez l'objet équivalent de POV-Ray pour le fonctionnement des paramètres
f = (|x|^(2/P0) + |y|^(2/P0)) ^ (P0/P1) + |z|^(2/P1) - 1 = 0
"ridgedmf" multifractale à crêtes (génial pour faire des rochers et des montagnes !) voyez la description complète ici
"heteroMF" multifractale hétérogène ...
"Hexagon" ... ...

note : dans certains cas, afin de préserver un seuil de 0, les exemples consistent à pré-déclarer la fonction, puis à l'utiliser en lui soustrayant la valeur de seuil. Cela peut paraître tordu, mais c'est plus élégant, et ça facilite les combinaisons.

Rédacteur: Fabien Mosen

suite : ...

vers l'index général de l'aide