La présence d'un miroir dans une scène, peut rendre pénible la vie du réalisateur. En effet, chaque fois que ce dernier bouge la caméra ou déplace le plan du miroir, il doit reconstruire le point de contrôle de la texture EnvMap sur lequel sont calculées les différentes prises de vues qui constituent l'image utilisée pour rendre l'effet. Cette reconstruction n'est pas spécialement difficile si on utilise un plan parallèle au plan du trièdre, cela devient rébarbatif lorsque ce plan est orienté suivant trois angles quelquonques (voir la méthode proposée dans ces pages). Ne serait-il pas merveilleux que Blender réajuste cette texture automatiquement en fonction des modifications de positionnement et d'orientations des objets qui posent les contraintes de l'emplacement de l'objet de contrôle. Hélas cela ne lui est pas encore possible, mais on peut écrire un script python qui le fera à sa place. L'objectif de cette
partie du tutoriel est de présenter le
script et comment s'en servir. Il n'est pas nécessaire d'avoir
des compétences mathématiques pour le mettre en oeuvre, Mais
bien comprendre comment fonctionne l'effet de miroir sur ce type de texture
est un prérequis indispensable. Les points suivants seront aussi
abordés:
EnvMap_O_Matic2_12,
pour l'API python Blender 2.12
Les explications qui suivent prennent la version 1.80a en exemple car c'est la version la plus sûre et celle qui réserve le moins de surprises quand aux résultats non désirés. En effet la verison 2.12 fonctionne mais ajoute des sommets supplémentaires dans le mesh Plan. Experience à tenter pour comprendre le problème: édition du plan touche TAB, sélection de tous les sommets avec la touche a et leur déplacement avec la touche g. Ce qui, à la longue, peut être génant voire dangeureux, pour la stabilité du logiciel. Les
objets nécessaires
Le 'Mirror' est simplement le plan sur
lequel tout doit se refléter.
Pour que le script soit éxecuté à chaque modification apportée aux objets qui nous interessent, il faut le lier à ces objets. Pour cela on commence par enfoncer le bouton de liaison de script, tout simplement nommé Script Buttons. Dans l'image ci-dessous, c'est celui qui se trouve à gauche. Normalement cela devrait faire apparaître une fenêtre divisée en deux parties. Dans celle de droite se trouve deux nouveaux boutons: [0Scr:0] et [New]. Mais ces boutons, dans le cas présent, ne sont d'aucune utilité. En fait ils gèrent la liaison avec la scène entière. Il faut faire apparaître ceux qui se trouvent dans la partie gauche. Pour cela on enfonce le bouton Display Object Script Link. Dans l'image ci-dessous, c'est celui qui est marqué par les trois flèches noires.
Ensuite on selectionne l'objet avec la méthode habituelle: clicsouris-droit, on appuie sur le bouton [New].
Cela fera apparaître deux nouveaux boutons : un bouton de sélection qui permettra de choisr entre FrameChanged et Redraw, le premier est plutôt interessant pour l'animation, le second pour une mise en place interactive puisque le script sera exécuté chaque fois que les fenêtres d'affichage seront repeintes, et un bouton de texte où il faudra inscrire très exactement exactement le nom du script python associé qui se trouve dans la fenêtre de script.
Conclusion Il ne reste plus qu'à trouver un
angle de prise de vue interessant pour que le reflet soit visible dans
votre scene.
Les questions concernant cette page
peuvent être posées sur :
|