#!/bin/csh
#######################################################################################################################################
# #
# M I S E E N M O N T A G N E T E X T U R E E E T V U E D E C O T E #
# A V E C E F F E T D E P R O F O N D E U R D E C H A M P #
# D ' U N E I M A G E E N V R A I E S C O U L E U R S P A R F A I T E S : #
# #
# #
# Utilisation : #
# #
# $xci/montagne.71$Z <surface> <Texture> <paletteT> <depth-cueing> <plan-net> <imageR> [<divers-derniere-minute>] #
# #
# E [0,1] E {01, 02,...} | #
# | #
# | | \|/ #
# \|/ | . #
# . | on pourra placer ici les #
# | parametres de derniere #
# (0. = effet maximum) | minute, et par exemple : #
# (1.0 = absent) | #
# | "Ty=... sx=... sy=..." #
# \|/ #
# . #
# #
# definit la palette #
# de type '$xiP/depthfiel.??' #
# a utiliser #
# pour passer du Z-Buffer #
# au noyau de convolution #
# #
# #
# Author of '$xci/montagne.71$Z' : #
# #
# Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). #
# #
#######################################################################################################################################
set surface=$1
set Texture=$2
set paletteT=$3
set depth_cueing=$4
set plan_net=$5
set imageR=$6
set divers="$7"
# ATTENTION : voir le commentaire relatif a '$lumiere'... #
set translation="Ty=0.50"
# Pour translater verticalement l'image. #
set lumiere="sx=8.0 sy=8.0"
# Positionnement de la source lumineuse. ATTENTION : l'utilisation de '$lumiere" devra #
# imperativement se faire avant '$divers' afin de permettre de transferer par cette #
# derniere option un eventuel deplacement de la source lumineuse, auquel cas il sera en #
# general necessaire de "quoter" l'argument '$7' afin qu'il ne passe qu'un ; par exemple : #
# #
# $xci/montagne.71$Z <surface> (...) <imageR> "Ty=... sx=... sy=..." #
# #
set depth="depth=FAUX"
# Pour ne pas avoir de depth-cueing. #
set depth="depth=VRAI min=$depth_cueing"
# Pour avoir du depth-cueing (0.0 representant le maximum d'effet, et 1.0 son absence). #
set avion="avion=FAUX alias=VRAI"
# Pour faire une vue de cote. #
set convolution="renormaliser=FAUX Facteur=2.0"
# Parametres de la convolution variable. #
set texture=`get_feuille$Z $Texture`
# Recuperation du nom de la texture dans son directory. #
$xci/vraies_C$X A=$Texture p=$paletteT RR=$xT/$texture$ROUGE RV=$xT/$texture$VERTE RB=$xT/$texture$BLEUE $formatI
# Recuperation des trois composantes 'RVB' de la texture. #
FileTmpB imageS $M
# Nom temporaire pour la montagne sans effet de lointain. #
FileTmpB imageZ
# Nom temporaire pour le 'Z-Buffer'. #
$xci/montagne.01$X A=$surface T=$xT/$texture$ROUGE \
R=$imageS$ROUGE Z-Buffer=VRAI Z=$imageZ$ROUGE $depth ombres=VRAI $avion $lumiere $translation $divers $formatI
$xci/montagne.01$X A=$surface T=$xT/$texture$VERTE \
R=$imageS$VERTE Z-Buffer=VRAI Z=$imageZ$VERTE $depth ombres=VRAI $avion $lumiere $translation $divers $formatI
$xci/montagne.01$X A=$surface T=$xT/$texture$BLEUE \
R=$imageS$BLEUE Z-Buffer=VRAI Z=$imageZ$BLEUE $depth ombres=VRAI $avion $lumiere $translation $divers $formatI
# Mise en montagne de l'image argument ($surface) avec recuperation #
# du 'Z-Buffer'. #
$xci/complement$X A=$imageZ$ROUGE R=$imageZ$ROUGE $formatI
$xci/complement$X A=$imageZ$VERTE R=$imageZ$VERTE $formatI
$xci/complement$X A=$imageZ$BLEUE R=$imageZ$BLEUE $formatI
# Complementation du 'Z-Buffer'. #
$xci/substitue$X A=$imageZ$ROUGE p=$xiP/depthfiel.$plan_net substitution=L_SUBSTITUTION_ROUGE R=$imageZ$ROUGE $formatI
$xci/substitue$X A=$imageZ$VERTE p=$xiP/depthfiel.$plan_net substitution=L_SUBSTITUTION_ROUGE R=$imageZ$VERTE $formatI
$xci/substitue$X A=$imageZ$BLEUE p=$xiP/depthfiel.$plan_net substitution=L_SUBSTITUTION_ROUGE R=$imageZ$BLEUE $formatI
# Mise a l'echelle du 'Z-Buffer', et ce afin que les premiers plans restent tres nets, et #
# que le fond de la scene deviennent tres flous... #
$xci/convol.02$X A=$imageS$ROUGE N=$imageZ$ROUGE $convolution R=$imageR$ROUGE $formatI
$xci/convol.02$X A=$imageS$VERTE N=$imageZ$VERTE $convolution R=$imageR$VERTE $formatI
$xci/convol.02$X A=$imageS$BLEUE N=$imageZ$BLEUE $convolution R=$imageR$BLEUE $formatI
# Et reconstitution finale en fausses couleurs parfaites de l'effet de profondeur de champ. #
FileTmpE imageS
FileTmpE imageZ
$DELETE_VALIDE $xT/$texture$ROUGE
$DELETE_VALIDE $xT/$texture$VERTE
$DELETE_VALIDE $xT/$texture$BLEUE
# Enfin, on nettoie... #