#######################################################################################################################################
# #
# V I S U A L I S A T I O N D ' U N E N S E M B L E F R A C T A L #
# D A N S L E S " P S E U D O - Q U A T E R N I O N S " : #
# #
# #
# Author of '$xiirc/.MANE.41.3.$U' : #
# #
# Jean-Francois COLONNA (LACTAMME, 20100828095203). #
# #
#######################################################################################################################################
$Z setParam _____Ombrage VRAI
$Z # Parametre introduit le 20180124093324... #
$Z SETParam _____Standard FAUX
$Z # Parametre introduit le 20140928102538... #
$Z setParam _____Compatibilite_20140917 FAUX
$Z # Parametre introduit le 20140929120538... #
$Z setParam _____Compatibilite_20170517 VRAI
$Z # Parametre introduit le 20170819105630... #
$Z setParam _____IncompletOZ FAUX
$Z # Parametre introduit le 20120322173008... #
$Z setParam _____InterpolerO VRAI
$Z # Parametre introduit le 20101125175134... #
$Z setParam _____LineaireO VRAI
$Z # Parametre introduit le 20101125175134... #
$Z setParam _____Fseuil `GetParam $xci/ombrage.11$X Fseuil`
$Z # Parametre introduit le 20100831171928... #
$Z setParam _____ORotationX `GetParam $xci/ombrage.11$X ROTATION_OX`
$Z # Parametre introduit le 20111125085050... #
$Z # #
$Z # On notera le 20170517041538 qu'en fait, il est imperatif que : #
$Z # #
$Z # _____ORotationX=0 #
$Z # #
$Z # afin que le champ "objet" et son champ "ombre" soient exactement "superposables", en #
$Z # en notant que '$_____RotationX' destine a 'v $xci/accumule.42$K ROTATION_OX' s'applique #
$Z # ensuite a ces deux champs "superposes"... #
$Z setParam _____ORotationY `GetParam $xci/ombrage.11$X ROTATION_OY`
$Z # Parametre introduit le 20111125085050... #
$Z # #
$Z # On notera le 20170517041538 qu'en fait, il est imperatif que : #
$Z # #
$Z # _____ORotationY=0 #
$Z # #
$Z # afin que le champ "objet" et son champ "ombre" soient exactement "superposables", en #
$Z # en notant que '$_____RotationY' destine a 'v $xci/accumule.42$K ROTATION_OY' s'applique #
$Z # ensuite a ces deux champs "superposes"... #
$Z setParam _____ORotationZ `GetParam $xci/ombrage.11$X ROTATION_OZ`
$Z # Parametre introduit le 20111125085050... #
$Z # #
$Z # On notera le 20170517041538 qu'en fait, il est imperatif que : #
$Z # #
$Z # _____ORotationZ=0 #
$Z # #
$Z # afin que le champ "objet" et son champ "ombre" soient exactement "superposables", en #
$Z # en notant que '$_____RotationZ' destine a 'v $xci/accumule.42$K ROTATION_OZ' s'applique #
$Z # ensuite a ces deux champs "superposes"... #
$Z setParam _____IORotations `GetParam $xci/ombrage.11$X inverser_rotations`
$Z # Parametre introduit le 20111126101906... #
$Z setParam _____FactIncrLambda `GetParam $xci/ombrage.11$X facteur_increment_lambda`
$Z # Parametre introduit le 20141203163752... #
$m4 _____include(_____xiirc/.MANE.41.3.1._____U)
$Z # Introduit sous cette forme le 20170801102253 pour 'v $xiirf/$Fnota xiirc..MANE.41.3.1'... #
$Z setParam _____DetecteurVide $GRIS_4
$Z setParam _____AttenuationOmbre 0.2
$Z setParam _____ParamOmbrage "$K_VIDE"
$Z # Parametre introduit le 20141126121317... #
$Z SETParam _____ConvoluerOmbre $NEXIST
$Z # Parametre introduit le 20220220113836, la valeur par defaut garantissant la compatibilite #
$Z # anterieure... #
$Z # #
$Z # On notera le 20220221122340 que le resultat est plutot mauvais (euphemisme...). #
$Z setParam _____ConvolutionSpherique VRAI
$Z setParam _____ConvolutionNoyau_X 3
$Z setParam _____ConvolutionNoyau_Y 3
#20220221111822____:$Z setParam _____ConvolutionNoyau_Z 3 #
$Z setParam _____ConvolutionNoyau_Z 0
$Z setParam _____ParamConvolution "$K_VIDE"
#20140928102559____:$Z $xci/ombrage.11$X \ #
#20140928102559____:$Z A=$_____ImageTd. \ #
#20140928102559____:$Z incomplet_Z=$_____IncompletOZ \ #
#20140928102559____:$Z standardA=FAUX \ #
#20140928102559____:$Z standardR=VRAI \ #
#20140928102559____:$Z premiere=$cPremiere \ #
#20140928102559____:$Z inverser_Z=FAUX \ #
#20140928102559____:$Z Zmin=`calcul $cPremiere-$cPremiere` \ #
#20140928102559____:$Z Zmax=`calcul $cDerniere-$cPremiere` \ #
#20140928102559____:$Z binariser=VRAI \ #
#20140928102559____:$Z Fseuil=$_____Fseuil \ #
#20140928102559____:$Z ROTATION_OX=$_____ORotationX \ #
#20140928102559____:$Z ROTATION_OY=$_____ORotationY \ #
#20140928102559____:$Z ROTATION_OZ=$_____ORotationZ \ #
#20140928102559____:$Z inverser_rotations=$_____IORotations \ #
#20140928102559____:$Z interpoler=$_____InterpolerO lineaire=$_____LineaireO \ #
#20140928102559____:$Z detecteur_vide=$_____DetecteurVide \ #
#20140928102559____:$Z attenuation_ombre=$_____AttenuationOmbre \ #
#20140928102559____:$Z slx=$_____SourceX sly=$_____SourceY slz=-$_____SourceZ \ #
#20140928102559____:$Z R=$_____ImageTo. \ #
#20140928102559____:$Z $formatI #
#20140929120538____:$Z $xci/ombrage.11$X \ #
#20140929120538____:$Z A=$_____ImageTd. \ #
#20140929120538____:$Z incomplet_Z=$_____IncompletOZ \ #
#20140929120538____:$Z standardA=$_____Standard \ #
#20140929120538____:$Z standardR=VRAI \ #
#20140929120538____:$Z premiere=$cPremiere \ #
#20140929120538____:$Z inverser_Z=FAUX \ #
#20140929120538____:$Z Zmin=`calcul $cPremiere-$cPremiere` \ #
#20140929120538____:$Z Zmax=`calcul $cDerniere-$cPremiere` \ #
#20140929120538____:$Z binariser=VRAI \ #
#20140929120538____:$Z Fseuil=$_____Fseuil \ #
#20140929120538____:$Z ROTATION_OX=$_____ORotationX \ #
#20140929120538____:$Z ROTATION_OY=$_____ORotationY \ #
#20140929120538____:$Z ROTATION_OZ=$_____ORotationZ \ #
#20140929120538____:$Z inverser_rotations=$_____IORotations \ #
#20140929120538____:$Z interpoler=$_____InterpolerO lineaire=$_____LineaireO \ #
#20140929120538____:$Z detecteur_vide=$_____DetecteurVide \ #
#20140929120538____:$Z attenuation_ombre=$_____AttenuationOmbre \ #
#20140929120538____:$Z slx=$_____SourceX sly=$_____SourceY slz=-$_____SourceZ \ #
#20140929120538____:$Z R=$_____ImageTo. \ #
#20140929120538____:$Z $formatI #
#20170819105630____:$Z $xci/ombrage.11$X \ #
#20170819105630____:$Z A=$_____ImageTd. \ #
#20170819105630____:$Z incomplet_Z=$_____IncompletOZ \ #
#20170819105630____:$Z compatibilite_20140917=$_____Compatibilite_20140917 \ #
#20170819105630____:$Z standardA=$_____Standard \ #
#20170819105630____:$Z standardR=VRAI \ #
#20170819105630____:$Z premiere=$cPremiere \ #
#20170819105630____:$Z inverser_Z=FAUX \ #
#20170819105630____:$Z Zmin=`calcul $cPremiere-$cPremiere` \ #
#20170819105630____:$Z Zmax=`calcul $cDerniere-$cPremiere` \ #
#20170819105630____:$Z binariser=VRAI \ #
#20170819105630____:$Z Fseuil=$_____Fseuil \ #
#20170819105630____:$Z ROTATION_OX=$_____ORotationX \ #
#20170819105630____:$Z ROTATION_OY=$_____ORotationY \ #
#20170819105630____:$Z ROTATION_OZ=$_____ORotationZ \ #
#20170819105630____:$Z inverser_rotations=$_____IORotations \ #
#20170819105630____:$Z interpoler=$_____InterpolerO lineaire=$_____LineaireO \ #
#20170819105630____:$Z detecteur_vide=$_____DetecteurVide \ #
#20170819105630____:$Z attenuation_ombre=$_____AttenuationOmbre \ #
#20170819105630____:$Z facteur_increment_lambda=$_____FactIncrLambda \ #
#20170819105630____:$Z slx=$_____SourceX sly=$_____SourceY slz=-$_____SourceZ \ #
#20170819105630____:$Z ValiderAxes=FAUX \ #
#20170819105630____:$Z Progression=VRAI \ #
#20170819105630____:$Z ChronometrerCommande=VRAI \ #
#20170819105630____:$Z $_____ParamOmbrage \ #
#20170819105630____:$Z R=$_____ImageTo. \ #
#20170819105630____:$Z $formatI #
$Z $xci/ombrage.11$X \
$Z A=$_____ImageTd. \
$Z ombrage=$_____Ombrage \
$Z incomplet_Z=$_____IncompletOZ \
$Z compatibilite_20140917=$_____Compatibilite_20140917 \
$Z compatibilite_20170517=$_____Compatibilite_20170517 \
$Z standardA=$_____Standard \
$Z standardR=VRAI \
$Z premiere=$cPremiere \
$Z inverser_Z=FAUX \
$Z Zmin=`calcul $cPremiere-$cPremiere` \
$Z Zmax=`calcul $cDerniere-$cPremiere` \
$Z binariser=VRAI \
$Z Fseuil=$_____Fseuil \
$Z ROTATION_OX=$_____ORotationX \
$Z ROTATION_OY=$_____ORotationY \
$Z ROTATION_OZ=$_____ORotationZ \
$Z inverser_rotations=$_____IORotations \
$Z interpoler=$_____InterpolerO lineaire=$_____LineaireO \
$Z detecteur_vide=$_____DetecteurVide \
$Z attenuation_ombre=$_____AttenuationOmbre \
$Z facteur_increment_lambda=$_____FactIncrLambda \
$Z slx=$_____SourceX sly=$_____SourceY slz=-$_____SourceZ \
$Z ValiderAxes=FAUX \
$Z Progression=VRAI \
$Z ChronometrerCommande=VRAI \
$Z $_____ParamOmbrage \
$Z R=$_____ImageTo. \
$Z $formatI
$Z # Le parametre "ValiderAxes=FAUX" a ete introduit le 20141126121039 afin de faciliter les #
$Z # tests a echelle reduite, ainsi que '$_____ParamOmbrage' le 20141126121317... #
$Z # #
$Z # Le parametre "facteur_increment_lambda=$_____FactIncrLambda" a ete introduit le #
$Z # 20141203163752 dans le but de faire des tests de performance (et de fait, par exemple #
$Z # en doublant la valeur de '$_____FactIncrLambda' on divise pratiquement par 2 la duree de #
$Z # l'ombrage... #
$Z # #
$Z # #
$Z # Aux environs du 20150309120210, j'ai fait sur '$CMAP28' -ex "porte-brancion"- des #
$Z # mesures de performance en fonction des differents parametres pouvant agir sur elle. #
$Z # Elles utiliserent la generation de l'image 'v $xiirc/JULJ.U4.1' avec les arguments #
$Z # modifies suivants : #
$Z # #
$Z # Pud #
$Z # SET cDerniere=128 #
$Z # #
$Z # Voici donc les resultats : #
$Z # #
$Z # interpoler=FAUX interpoler_lineairement=VRAI AccelerateurFonctions=FAUX #
$Z # time = 9.227u 0.272s 0:10.43 90.9% #
$Z # #
$Z # interpoler=VRAI interpoler_lineairement=VRAI AccelerateurFonctions=FAUX #
$Z # time = 19.074u 0.325s 0:20.31 95.4% #
$Z # #
$Z # interpoler=VRAI interpoler_cubiquement=VRAI AccelerateurFonctions=FAUX #
$Z # time = 32.325u 0.315s 0:33.59 97.1% #
$Z # #
$Z # #
$Z # interpoler=FAUX interpoler_lineairement=VRAI AccelerateurFonctions=VRAI #
$Z # time = 11.983u 0.286s 0:13.20 92.8% #
$Z # #
$Z # interpoler=VRAI interpoler_lineairement=VRAI AccelerateurFonctions=VRAI #
$Z # time = 21.818u 0.285s 0:22.96 96.2% #
$Z # #
$Z # interpoler=VRAI interpoler_cubiquement=VRAI AccelerateurFonctions=VRAI #
$Z # time = 34.650u 0.323s 0:35.93 97.3% #
$Z # #
$Z # #
$Z # Et l'on voit que l'accelerateur de fonctions est finalement PENALISANT contrairement a #
$Z # 'v $xiirc/.MANE.41.4.$U 20150309120210' ou il est benefique. Cela a donc conduit a la #
$Z # modification 'v $xci/ombrage.11$K 20150309143702'... #
$Z # #
$Z # Le 20170519133201 furent introduites des aides permettant de savoir quelle charge #
$Z # represente ce calcul... #
$Z # #
$Z # Le 20170819105630, la "compatibilite_20170517" a ete introduite car, en effet, dans le #
$Z # cas contraire, les resultats obtenus a l'aide de l'optimisation ne sont pas identiques #
$Z # a ce qu'ils sont sans optimisation ('v $xiii/di_album$FON 20170819110449'). #
$Z # #
$Z # Le 20180124093324, l'option '$_____Ombrage' a ete introduite pour d'accelerer le processus #
$Z # lors de phases de mise au point d'une image... #
$Z if ($_____ConvoluerOmbre == $EXIST) then
$Z # Possibilite introduite le 20220220113836... #
$Z set _____ImageToc=$_____ImageT1.oc
$Z $xci/convol_3D.01$X \
$Z A=$_____ImageTo. \
$Z standardA=$_____Standard \
$Z standardR=VRAI \
$Z premiere=$cPremiere \
$Z inverser_Z=FAUX \
$Z Zmin=`calcul $cPremiere-$cPremiere` \
$Z Zmax=`calcul $cDerniere-$cPremiere` \
$Z spherique=$_____ConvolutionSpherique \
$Z sphere_maximale=VRAI \
$Z ddnX=$_____ConvolutionNoyau_X \
$Z ddnY=$_____ConvolutionNoyau_Y \
$Z ddnZ=$_____ConvolutionNoyau_Z \
$Z $_____ParamConvolution \
$Z Progression=VRAI \
$Z ChronometrerCommande=VRAI \
$Z R=$_____ImageToc. \
$Z $formatI
$Z # Le parametre "sphere_maximale=VRAI" a ete introduit le 20220221105820, en particulier, a #
$Z # cause du cas '_____ConvolutionNoyau_Z=0'... #
$Z $xci/neutre_3D$X \
$Z A=$_____ImageToc. \
$Z standardA=$_____Standard \
$Z standardR=VRAI \
$Z premiere=$cPremiere \
$Z inverser_Z=FAUX \
$Z Zmin=`calcul $cPremiere-$cPremiere` \
$Z Zmax=`calcul $cDerniere-$cPremiere` \
$Z R=$_____ImageTo. \
$Z $formatI
$Z else
$Z endif