CRÉATION D'INSTANCES DANS THEA RENDER REVISION AUTHOR REASON FOR CHANGE 11/09/12 Christina Psarrou Initial version. TRADUCTION FRANCAISE OCTOBRE 2012 Copyright © Solid Iris Technologies INTRODUCTION En infographie 3D, la création d'Instances est le fait d'utiliser plusieurs copies d’un même objet dans une même scène[1]. Cette technique présente un intérêt particulier pour des objets tels que les arbres, l’herbe ou tout autre modèles que l'on peut utiliser plusieurs fois sans pour autant qu'ils apparaissent répétitifs. En résumé, la création d'Instance se révèle très adaptée dès qu'un objet peut être utilisé plusieurs fois dans une même scène. Figure 1 : Création d'Instances et rendu dans Thea Render (image de Juan Carlos Uribe) LA CRÉATION D'INSTANCES DANS THEA RENDER Figure 2 : Fenêtre de création d'Instance dans Thea Render Thea Render est un moteur de rendu qui permet, grâce à son outil brosse d’instanciation intégré, de créer des copies multiples d'un même objet. Cet outil et ses options peuvent être affichés en cliquant sur l’onglet « Outils » (Tools) du panneau « Paramètres » (Settings) (voir image 2). Comme on peut le voir sur l’image 2, la rubrique Selection permet de choisir l’objet à dupliquer et le Canvas sur laquelle les Instances de l’objet seront placées. Une fois ce choix fait, de multiples options permettent de paramétrer l’outil de création d'Instances afin d’obtenir des résultats très différents. On peut par exemple modifier la taille, la direction ou la rotation des Instances. Les Instances ainsi créées sont sauvegardées dans un paquet (package) et apparaîtront dans l’arborescence de la scène (Tree View). Afin de mieux comprendre les Instances et leur création, vous trouverez ci-après une description détaillée et des exemples concrets des différents paramètres de création d’Instances. Ces exemples vous aideront à distinguer les résultats et les effets de chacune des options. 2 Copyright © Solid Iris Technologies OBSERVATION DES OPTIONS ET EXEMPLES SELECTION Instance : Cette option permet de choisir l’objet qui sera généré (copié) par Thea Render (objet de départ). Sélectionner l’objet en cliquant dessus dans le visualiseur (Viewport) ou dans l’arborescence de la scène (Tree View). Ensuite, cliquer sur l’icône flèches tournantes à gauche du mot Instance. Le nom de l’objet que vous avez sélectionné apparaît à la droite du mot Instance (voir figure 3). Figure 3 : Sélection d'un modèle d'Instance Canvas : La surface sur laquelle les Instances seront positionnées. Après avoir sélectionné l’objet que vous souhaitez utiliser comme support, cliquez sur l’icône flèches tournantes à gauche du mot Canvas (voir figure 4). Figure 4 : Sélection du Canvas Astuce : Les Instances sont placées sur le Canvas en fonction de leur point de pivot. La plupart du temps, il est important de positionner le pivot point à l'endroit où l'objet doit être positionné sur le Canvas (par exemple, placer le pivot point au point le plus bas d'un brin d'herbe ou d'un arbre pour que celui-ci repose sur le sol). Pour positionner le pivot point : Sélectionner l'objet et presser la touche de raccourci « p » de votre clavier pour entrer dans le mode pivot. Changer les axes en fonction de vos besoins et presser la touche p de nouveau pour sortir du mode pivot. Vous pouvez aussi accéder au mode pivot à partir par la barre d'outils du visualiseur OpenGL (voir figure 5). Figure 5 : entrer dans le mode pivot par la barre d'outils du visualiseur OpenGL Pour illustrer les explications des options d'instanciation, nous allons recouvrir une surface accidentée avec de l'herbe et des fleurs. Nous utiliserons la surface de la figure 6 comme Canvas et comme Instances les brins d'herbe de la figure 7 et les fleurs de la figure 8. Figure 6 : Surface accidentée = Canvas Figure 7 : Brins d'herbe = Instance 1 Figure 8 : Fleurs = Instance 2 Note : En dehors du choix de l'Instance et du Canvas, les 4 autres outils de création et de suppression d'Instances se trouvent au bas de la fenêtre d'outil d'Instance (voir les figures 2 et 9). 3 Copyright © Solid Iris Technologies Remplissage : Après avoir paramétré votre outil, l'outil de remplissage placera automatiquement les Instances sur votre Canvas en fonction des options que vous aurez sélectionné. Brosse : En cliquant sur l'outil Brosse, votre curseur se transforme en brosse et vous pouvez alors peindre vos Instances sur votre Canvas directement dans le visualiseur en cliquant et en maintenant le bouton appuyé sur les zones que vous voulez peuplez. Gomme : En cliquant sur l'outil gomme, votre curseur se transforme en gomme. En cliquant et en maintenant appuyé, vous pouvez alors effacer les Instances se trouvant dans la zone de votre gomme. Réinitialisation : Le bouton de réinitialisation efface en un seul clic toutes les Instances crées. Figure 9 : les outils d'Instance de base Remarque : le bouton populate (remplissage) ne sera pas disponible si vote Canvas est un plan infini (le remplissage ne peut s'effectuer que sur une surface délimitée). Dans le cas d'un plan infini, il faudra utiliser l'outil Brosse. PERTURBATIONS DIRECTION Direction : cette option permet de déterminer l'orientation des Instances. En ajustant le curseur , on peut choisir d'orienter les Instances par rapport à la normale du Canvas (0%), selon l'axe Z de la scène (100%) ou bien par un choix intermédiaire. Ces options sont visibles dans notre exemple figure 11. Les cubes marrons ont une direction fixée à 0% et suivent la pente du Canvas. Les cubes violets ont une direction fixée à 100% et sont parallèles à l'axe Z et ne tiennent pas compte de la pente du Canvas. Remarque : la normale d'une surface en un point est identique à la normale d'un plan tangent à cette surface en ce point. Figure 11 : Différentes Directions Figure 10 : exemple de normale d'une surface 4 Copyright © Solid Iris Technologies Dans l'exemple suivant, en changeant le pourcentage de l'option Direction pour générer des Instances de brins d'herbe sur une surface,on obtient les résultats suivants : Direction : 0% En choisissant 0% de direction, les Instances d'herbe sont positionnées en respectant la normale de la surface et son inclinaison. Figure 12 : Direction 0% Figure 13 : Direction 50% Figure 14 : Direction 100% Direction : 50% En sélectionnant 50%, les Instances sont orientées entre l'axe Z et la normale du Canvas. Pour obtenir le meilleur effet, un pourcentage de 10-20% permettrait à l'herbe de suivre la pente du Canvas et serait aussi dirigée vers le ciel (l'axe Z). Direction : 100% A 100%, les Instances sont orientées en fonction de l'axe Z global. Comme on peut le constater, les Instances d'herbe sont entièrement horizontales. Elles reposent sur toute la hauteur du Canvas mais ne respectent plus sa normale. Dans cet exemple de pelouse, le résultat n'est pas très réaliste. Ces différents paramètres permettent d'obtenir le résultat souhaité en fonction de chaque situation. NORMALE Figure 15 : influence du paramètre Normale Normale : En modifiant ce pourcentage, les Instances seront orientées aléatoirement par rapport à la normale du Canvas. En augmentant le pourcentage, les instances seront placées selon leur point de pivot et basculées dans toutes les directions. L'exemple 15 montre le résultat suivant : les cubes rouges ont un pourcentage à 0% et sont inclinés comme l'objet initial ; les cubes oranges sont basculés à hauteur de 50% par rapport à l'objet initial et, avec 100%, les cubes bleus sont eux orientés complètement différemment de l'objet initial. 5 Copyright © Solid Iris Technologies Point pivot Figure 16 : Rotation autour du point pivot Dans notre exemple ci-dessous, le changement de pourcentage de normale donne les résultats suivants : Normale : 0% A 0% de normale (et avec toutes les autres valeurs aussi à 0), les Instances sont créées dans la même direction que l'Instance d’herbe originale. Figure 17 : Normale 0% Normale : 50% Avec un pourcentage de 50% de normale, les Instances gardent leur point de pivot en contact avec le Canvas mais leur direction est aléatoire par rapport à l’instance originale. Figure 18 : Normale 50% Normale : 100% Avec un pourcentage de normale maximum, les Instances sont encore plus basculées dans toutes les directions. Dans notre exemple, une perturbation importante de la normale des brins d'herbes n'est pas réaliste mais cette option peut s'avérer utile dans d'autres situations. Figure 19 : Normale 100% ROTATION Rotation : Cette option permet de faire effectuer aux Instances que vous allez créer une rotation sur leur axe Z. A 0%, les Instances crées ne seront pas tournées sur leur axe Z (voir les cubes en brique de la figure 21). En revanche, un pourcentage de rotation réglé sur 100% fera tourner chaque Instance aléatoirement sur son axe Z (voir les cubes en bois de la figure 21). Figure 21 : 2 Différents paramètres de 6 Copyright © Solid Iris Technologies rotation Rotation sur l'axe Z Figure 20 : Rotation sur l'axe Z Dans notre exemple, et afin de mieux comprendre l'influence du paramètre Rotation, nous allons choisir pour Instance un modèle de fleurs non symétrique sur son axe Z. Rotation : 0% La rotation à 0%, les Instances créées sont toutes orientées de la même façon que le modèle initial. Figure 22 : Rotation 0% Rotation : 100% En augmentant le paramètre de rotation jusqu'à 100%, chaque Instance de fleurs créée est tournée aléatoirement sur son axe Z. Figure 23 : Rotation 100% VARIATION D’ECHELLE Figure 24 : Différentes échelles Variation d'échelle : Cette option permet de modifier la taille des Instances que vous allez créer. Une variation d'échelle réglée sur 0% générera des Instances à la même taille que le modèle de départ. En augmentant ce pourcentage, la taille de chaque nouvelle Instance sera aléatoirement différente. Sur la figure 24, avec une variation d’échelle de 0 %, les Instances de cubes rouges conserve la taille originale du modèle de départ. Les Instances du cube jaune (facteur d'échelle de 50%) sont aléatoirement plus grandes ou plus petites. En augmentant la variation d'échelle, on augmente l'écart de taille entre la plus petite et la plus grande Instance. En utilisant à nouveau le modèle de fleur pour cet exemple, on obtient les résultats suivant en modifiant le pourcentage de variation d'échelle. 7 Copyright © Solid Iris Technologies Variation d'échelle : 0% Avec une variation d'échelle à 0%, toutes les fleurs créées ont la même taille que le modèle de départ. Figure 25 : Variation d'échelle 0% Variation d'échelle : 50% En augmentant le pourcentage de variation d'échelle, la taille de chaque Instance est aléatoirement différente. En augmentant ce pourcentage, on augmente l'écart de taille entre la plus petite et la plus grande Instance. Figure 26 : Variation d'échelle 50% Variation d'échelle : 100% Comme on le voit dans la figure 27, avec un pourcentage de variation d'échelle à 100%, la différence de taille des Instances par rapport au modèle original est encore plus importante. Figure 27 : Variation d'échelle 100% PLACEMENT ECART MINIMUM Écart minimum : Ce paramètre permet de choisir l'écart minimum séparant chacune des Instances que vous allez créer. Par exemple, on souhaitera généralement que l'écart entre deux brins d'herbes soit moins important qu'entre deux arbres. Bien entendu, tout est fonction du résultat que l'on souhaite obtenir. Dans l'exemple ci-dessous, nous allons observer comment sont générées les Instances de fleurs avec des écarts minimums différents. Il est à noter que l'écart minimum prime sur le nombre d'Instances. Peu importe le nombre d'Instances que vous choisissez de placer sur votre Canvas, Thea Render respectera en priorité votre choix d'écart minimum. Écart minimum : 5 mètres Dans notre exemple, en définissant un écart minimum de 5 mètres entre 2 Instances, les fleurs seront positionnées de telle façon qu'un rayon de 5 mètres les sépare (voir figure 28). Figure 28 : Écart minimum 5 mètres 8 Copyright © Solid Iris Technologies Écart minimum : 1 mètre Avec un écart minimum inférieur, les Instances sont plus proches les unes des autres, et le nombre d’instances disposées et donc plus important sur le canvas. Figure 29 : Écart minimum 1 mètre Figure 30 : Écart minimum 0.1 mètres Écart minimum : 0,1 mètres 2. Plus l'écart minimum est petit, plus les Instances seront proches les unes des autres. 3. Pour l'herbe, un écart minimum très petit est souhaitable afin d'assurer un bon remplissage de votre Canvas. En revanche, les arbres ou les fleurs nécessiteront sans doute un écart minimum plus important en fonction du résultat souhaité. FACE AVANT Face Avant : Cette option est activée par défaut. Elle signifie que les Instances seront créées sur la face avant de voter Canvas. En la désactivant, les Instances seront placées sur la face arrière de votre Canvas. Dans l'exemple ci-dessous, les deux options sont testées. Face Avant : activée Lorsque l'option Face Avant est sélectionnée, toutes les Instances (des fleurs) sont positionnées sur la face supérieure du Canvas (voir figure 31). Figure 31 : face Avant activée Face avant : désactivée En désactivant l'option Face avant, les Instances sont désormais positionnées sur la face opposée du Canvas (voir figure 32). Figure 32 : face Avant désactivée CONTRAINTE SUR LA GRILLE Contrainte sur la Grille : cette option permet de positionner les Instances à intervalles réguliers le long des axes sélectionnés. 9 Copyright © Solid Iris Technologies Pour faciliter la compréhension de cet exemple, nous allons utiliser des cubes de couleur. Une couleur pour chacun des axes : vert (axe Y), rouge (axe X) et bleu (axe Z). Avec l'option de Contrainte sur la Grille activée, nous allons créer 3 groupes (packages) d'Instances de cubes avec les paramètres suivants : - cubes rouges Pas X=2, Pas Y=0 et Pas Z=0 - cubes verts Pas X=0, Pas Y=2 et Pas Z=0 - cubes bleus Pas X=0, Pas Y=0 et Pas Z=2 Figure 33 : Pas=2 mètres On peut voir le résultat de cette configuration sur la figure 33 : les cubes verts sont contraints sur le Canvas le long de l'axe Y avec un pas de 2m, les cubes rouges sur l'axe des X et les cubes bleus sur l'axe Z. Leur distance par rapport à l'axe central est déterminée par la valeur de Pas saisie. Si on choisit une distance plus importante (5m dans la figure 34), on peut constater le positionnement différent des Instances. Elles suivent les dimensions du Canvas tout en étant contraintes sur la grille du Pas sélectionné. Figure 34 : Pas=5 mètres DIVERS OUTIL DE RAYON Outil de Rayon (en pixels) : Cette option permet de modifier la taille des outils Brosse ou Gomme. Augmenter le rayon augmente la surface de création d'Instances par la Brosse, et augmenter le rayon de la gomme augmente la zone d'effacement à chaque clic dans le visualiseur. Dans l'exemple suivant, nous allons positionner des fleurs à l'aide de l'outil Brosse et effacer de l’herbe à l’aide de l'outil Gomme. Rayon de la Brosse Définir le rayon de l'outil Brosse permet d'augmenter ou de réduire la surface de Canvas concernée par chaque clic avec l'outil Brosse. Les Instances seront créées à l’intérieur du carré rouge apparaissant dans le visualiseur. Le rayon d'action de la brosse est symbolisé par un carré rouge dont la taille dépend du rayon en pixel que vous définissez (voir figure 35). 10 Figure 35 : Outil brosse avec un rayon défini Copyright © Solid Iris Technologies Rayon de la Gomme Grâce à l’outil Gomme, vous pouvez aussi effacer les Instances que vous avez créées dans des zones précises. Augmenter le rayon de l'outil gomme effacera vos Instances sur des surfaces plus importantes. Dans la figure 36, on a effacé des Instances de brins d'herbe en cliquant et pointant sur une zone. Figure 36 : Outil Gomme avec un rayon défini REMPLISSAGE Le Remplissage correspond au nombre d'Instance que l'on souhaite créer sur le Canvas. Ce paramètre doit être ajusté en fonction de la nature du modèle d'Instance, de la scène que l'on souhaite créer et de la taille du Canvas. Dans le cas de l'herbe ou d'un tapis, un fort indice de remplissage permettra de couvrir correctement la surface. En revanche, dans le cas d'arbres ou de fleurs, une densité inférieure est souvent suffisante. Dans l'exemple suivant, nous allons couvrir note surface avec des groupes de brins d'herbe en utilisant des taux de remplissage différents. Astuce : dans cet exemple, il faut penser à utiliser un écart minimum faible afin de permettre aux brins d'herbe d'être suffisamment proches et ainsi permettre de couvrir la surface de façon satisfaisante. Remplissage : 50 Dans notre exemple, un taux de remplissage de 50 ne donne pas un résultat satisfaisant (voir sur la figure 37). Ce chiffre est trop faible. Figure 37 : Remplissage 50 Remplissage : 500 En augmentant notre taux de remplissage (500 dans la figure 38), la surface est couverte par plus de brins d'herbes et le résultat est plus réaliste que lors de notre essai précédent. Figure 38 : Remplissage 500 Remplissage : 5000 Avec un taux de remplissage très élevé (5000 dans la figure 39), la surface est entièrement couverte d'herbe. Figure 39 : Remplissage 5000 11 Copyright © Solid Iris Technologies MODIFICATION DE DENSITÉ Cette option permet de créer des scènes plus complexes. Elle permet d'utiliser une image en niveaux de gris pour contrôler la répartition des Instances sur le canvas. En résumé, les zones blanches de l'image seront couvertes d'Instances et les zones noires resteront vides. Les zones grises seront remplies par le logiciel en fonction de leur luminosité (les zones en gris clair auront plus d'Instances que les zones en gris foncé). Il est préférable d'utiliser des images en niveaux de gris pour cette option : elles permettent un meilleur contrôle sur les zones de création d'Instances. En dehors du choix de l'image, vous pouvez aussi paramétrer son influence dans le champ numérique à droite du texte Densité Modifiée (voir figure 40). En augmentant ou diminuant son influence, il est possible d'augmenter ou de diminuer la probabilité de créer des Instances sur les zones grises. Dans l'exemple suivant, nous allons obtenir des résultats très différents en faisant varier ce paramètre. Afin de mieux observer les différences, nous avons utilisé la même image comme texture de l'objet Canvas et comme image de Densité Modifiée. Figure 40 : Influence de la Densité Modifiée Densité Modifiée : 0 Avec une valeur à 0, toute la zone est considérée par le logicielle comme étant noire. Aucune Instance d'herbe n'a été créée (voir figure 41). Figure 41 : Indice à 0 Densité Modifiée : 0.2 En augmentant l'influence de la Densité Modifiée, les Instances sont créées dans les les zones les plus claires (voir figure 42). Figure 42 : Indice à 0.2 12 Copyright © Solid Iris Technologies Densité Modifiée : 2 En augmentant encore cette valeur, la possibilité d'utiliser les zones sombres de l'image augmente et des Instances sont aussi positionnées sur ces zones du Canvas. Seules les zones pratiquement noires ne sont pas recouvertes d'Instances d'herbe (figure 43). Figure 43 : Indice à 2 Densité modifiée : 100 Cette valeur est la plus élevée possible pour ce paramètre. Comme on peut le voir dans la figure 44, la probabilité de créer des Instances est augmentée sur toutes les zones hormis les zones entièrement noires (100% noir). Figure 44 : Indice à 100 Reprenons ce même exemple avec un motif simple en noir et blanc. L'image étant en noir et blanc, le facteur de probabilité n'est plus actif. Avec cette méthode, nous allons voir qu'il est facile de créer sur ce Canvas des zones d'herbe à l'intérieur desquelles on créera des zones de fleurs. Pour chaque exemple, une image présente les paramètres associés. Après avoir sélectionné l'Instance d'herbe, le Canvas et les perturbations souhaitées, on peut déterminer le remplissage et le motif (voir la figure 46). Le résultat est visible en figure 45 : les Instances d'herbe sont seulement positionnées sur les parties blanches de l'image. Figure 45 : Création de l'herbe Figure 46 : Motif d'herbe En inversant les couleurs de l'image précédente (nous aurions pu aussi utiliser une autre image) nous pouvons créer des Instances de fleurs dans les zones précédemment vides. Le résultat de ces deux créations d'Instance a rempli entièrement le Canvas en respectant précisément les contours de l'image en noir et blanc. Figure 47 : Création de fleurs 13 Copyright © Solid Iris Technologies Figure 48 : Motif de fleurs Grâce à cette technique, vous pourrez créer des motifs uniques bien adaptés aux tapisseries par exemple (voir figure 49). Il suffit à cet effet de créer des paquets d'Instances différents et de les appliquer aux différentes zones de votre Canvas. Figure 49 : Exemple de tapis References 1. http://en.wikipedia.org/wiki/Geometry_instancing 14 Copyright © Solid Iris Technologies