Shade et Tcl

 

Shade et Tcl

GS - Shade [1] est un modeleur 3D et un moteur de rendu qui est développé depuis 20 ans au Japon. Même si il n'est pas très connu en dehors de sa patrie, il a réuni environ 200000 utilisateurs. Shade embarque le langage de script Tcl depuis 1999. Cela lui donne accès à son API.

Voici un exemple simple qui crée un interface utilisateur pour entrer des données afin d'effectuer le rendu d'une sphère colorée.

 # Demo d'une simple sphere avec une interface pour Shade

 # Variables: rayon, coordonnées du centre, couleur RVB
 set r 600
 set X 0
 set Y 0
 set Z 0
 set R 1.0
 set G 0.1
 set B 0.1

 # L'interface utilisateur commence ici
 begin_dialog

 # Creation d'un boîte de saisie avec 7 entrées typées
 append_float_dialog_item "Radius"
 append_float_dialog_item "X center"
 append_float_dialog_item "Y center"
 append_float_dialog_item "Z center"
 append_float_dialog_item "Red value (0..1)"
 append_float_dialog_item "Green value (0..1)"
 append_float_dialog_item "Blue value (0..1)"

 # Valeurs intiales des éléments
 set_float_property_value 0 to $r
 set_float_property_value 1 to $X
 set_float_property_value 2 to $Y
 set_float_property_value 3 to $Z
 set_float_property_value 4 to $R
 set_float_property_value 5 to $G
 set_float_property_value 6 to $B

 # ask_dialog est vrai si on appuie sur le bouton OK
 if [ask_dialog] {
   set r [get_float_property_value 0]
   set X [get_float_property_value 1]
   set Y [get_float_property_value 2]
   set Z [get_float_property_value 3]
   set R [get_float_property_value 4]
   set G [get_float_property_value 5]
   set B [get_float_property_value 6]
   if {$R > 1.0} {set R 1.0}
   if {$G > 1.0} {set G 1.0}
   if {$B > 1.0} {set B 1.0}
   end_dialog
 } else {
   end_dialog
   error cancel_dialog
 }
 # Fin de l'interface utilisateur

 # Création d'un sphère de rayon r aux coordonnées <X,Y,Z> avec un label
 create_sphere at [list $X $Y $Z] r $r sphere_1

 # Attribution d'un couleur à sphere_1
 set base_color [list $R $G $B]

 # Rendu du résultat
 render

Si vous êtes curieux et que vous maîtrisez un tant soit peu la langue japonaise, vous pouvez aller faire un tour sur ce site qui rassemble des scripts pour Shade [2]