####################################################################################################################################### # # # 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