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]