FR2888376A1 - Procede et outil de generation ou de modification de cartes procedurales pour l'animation d'objets virtuels - Google Patents

Procede et outil de generation ou de modification de cartes procedurales pour l'animation d'objets virtuels Download PDF

Info

Publication number
FR2888376A1
FR2888376A1 FR0507499A FR0507499A FR2888376A1 FR 2888376 A1 FR2888376 A1 FR 2888376A1 FR 0507499 A FR0507499 A FR 0507499A FR 0507499 A FR0507499 A FR 0507499A FR 2888376 A1 FR2888376 A1 FR 2888376A1
Authority
FR
France
Prior art keywords
map
parameters
procedural
animation
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR0507499A
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Allegorithmic SAS
Original Assignee
Allegorithmic SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Allegorithmic SAS filed Critical Allegorithmic SAS
Priority to FR0507499A priority Critical patent/FR2888376A1/fr
Publication of FR2888376A1 publication Critical patent/FR2888376A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Procédé pour générer une carte procédurale (50) d'animation d'objets virtuels à structure en arbre (40) comportant une pluralité d'étages (43), chacun avec au moins un noeud (41) auquel est associé au moins un paramètre, comportant les étapes consistant à :-considérer les données d'au moins un objet virtuel sur lequel la carte procédurale (50) agira de façon à produire ladite animation ;-définir les paramètres de l'animation ;-introduire les paramètres de la carte d'animation dans un outil de génération de cartes procédurales (10) ;-traiter lesdits paramètres à l'aide dudit outil, de façon à générer ladite carte d'animation de sorte que la carte ait une structure en arbre (40). L'invention prévoit par ailleurs un outil de génération et/ou de modification pour la mise en oeuvre dudit procédé.

Description

PROCEDE ET OUTIL DE GENERATION OU DE MODIFICATION DE CARTES
PROCEDURALES POUR L'ANIMATION D'OBJETS VIRTUELS La présente invention concerne les cartes procédurales pour l'animation d'objets virtuels.
De n ombreux o utils sont connus a fin d e p rocéder à l'animation d'objets v irtuels dans des scènes animées, qu'il s'agisse de jeux vidéo, de clips, de films, ou autres. Les outils connus ne permettent cependant pas de créer des représentations réellement fidèles de la réalité. Ceci peut s'avérer gênant lorsque le but de l'animation vise à simuler ou tout au moins à ressembler à la réalité. Les situations les plus complexes concernent souvent la simulation des êtres humains, ou des animaux. La plupart des outils actuels permettent de créer des personnages ou animaux dont les traits ressemblent beaucoup aux modèles, mais qui, malgré tout, ont l'air sans vie 1 ors de scènes animées. Les comportements simulés laissent en général aux spectateurs une forte impression d' artificiel ou sans vie .
Les solutions actuelles consistent la plupart du temps à ajouter du bruit aux fonctions de base des mouvements ou déplacements. On utilise par exemple des bibliothèques de bruits pour choisir des propriétés qui s'apparentent le plus à ce que l'on souhaite produire. Autrement, les bruits peuvent être introduits manuellement, ce qui est souvent fastidieux et long. Par ailleurs, il n'est pas possible de retoucher ou modifier, tout au moins partiellement les fonctions entrées.
Afin de pallier ces différents inconvénients, la présente invention propose un procédé pour générer ou modifier une carte procédurale d'animation d'objets virtuels à structure e n a rbre comportant u ne pluralité d 'étages, chacun avec a u moins un noeud auquel est associé au moins un paramètre, comportant les étapes consistant à : -considérer les données d'au moins un objet virtuel sur lequel la carte procédurale agira de façon à produire ladite animation; Allego/anim_fr2.1 -en fonction de ces données, définir les paramètres de l'animation et introduire les paramètres de la carte d'animation dans un outil de génération de cartes procédurales; -traiter lesdits paramètres à l'aide dudit outil, de façon à générer ladite carte d'animation de sorte que la carte ait une structure en arbre; -transmettre ladite carte à un outil de gestion d'animation (tel qu'un logiciel d'animation ou un jeu vidéo, etc) ; - associer les paramètres de ladite carte à ceux gérant l'animation de l'objet virtuel; -interpréter les paramètres de ladite carte; -modifier les paramètres d'animation de l'objet virtuel en fonction de cette interprétation.
Grâce au procédé selon l'invention, ladite carte est modifiable, en particulier pour effectuer des modifications localement. Ceci permet d'utiliser des cartes de base, pour ensuite les retoucher, par exemple afin de donner plus de réalisme à un mouvement ou un déplacement, en l'affinant ou en précisant quelques détails. Ce sont souvent ces détails qui font la différence entre une animation réaliste ou une animation plus artificielle.
Selon une variante avantageuse, le procédé comporte par ailleurs, avant l'étape consistant à définir les valeurs des paramètres, l'étape consistant à transmettre à l'outil de génération de cartes procédurales au moins un des paramètres de l'objet virtuel.
Selon une autre variante avantageuse, le procédé comporte par ailleurs, avant l'étape consistant à définir les valeurs des paramètres, l'étape consistant à transmettre à l'outil de génération de cartes procédurales au moins un des paramètres de la scène de base dans laquelle l'objet virtuel évolue.
De manière avantageuse, le procédé comporte les étapes consistant à : fournir un outil de sélection de noeud, permettant la sélection d'au moins un noeud d'un étage; Allego/anim_fr2.1 -sélectionner au moins un noeud; -fournir un outil de modification de paramètre permettant la modification d'au moins un paramètre du ou des noeuds sélectionnés; - sélectionner au moins un paramètre dudit noeud à modifier; -modifier ledit paramètre; -traiter lesdits paramètres, y compris le paramètre modifié, de façon à générer ladite carte modifiée.
De manière avantageuse, le procédé comporte par ailleurs une étape de sélection 10 d'un étage; puis la sélection d'au moins un noeud de cet étage pour modification d'au moins un paramètre de ce noeud.
Une carte est de préférence susceptible d'être représentée par une équation du type: jcut 2-1H1 F (21 x k) , k) j=0 k + jmax 1 1 2-JH2 F (21 x k) . k) jcut +1 k dans laquelle la carte résultante a une structure en arbre (Tp) -F est une fonction (ou morphlette) Rn R -x est un scalaire du type (xi, x2, xc); - Tp représente un arbre (40) pourvu d'un paramètre d'intermittence (p), comportant des noeuds (j, k), dans lesquels -j indique l'étage (43) sélectionné, parmi un nombre total d'étages potentiels jmax (j e (0, 1, 2, jmax) et jcut représente la fréquence de transition; Allego/anim_fr2. I -k est un vecteur de déplacement pour chaque noeud N de type (k1, k2 -H représente une valeur de paramètre de Hurst (comme par exemple l'irrégularité), avec Hl correspondant à aux basses fréquences, et H2 correspondant aux hautes fréquences; - représente un nombre aléatoire.
La possibilité d'effectuer des modifications locales, c'est à dire au niveau de seulement un seul ou plusieurs n uds, est due au fait que la carte est agencée ou structurée en arbre. Une telle structure permet d'agir localement, par exemple au niveau d'un noeud ou d'une branche ou de portions de branches, sans affecter pour autant le reste des noeuds ou branches. De manière avantageuse, il est également possible de choisir que les modifications soient récursives ou pas. Le procédé et les outils selon l'invention permettent de préférence d'agir soit localement ou sur une carte entière. Par ailleurs, l'utilisation d'une équation de ce type permet de générer des types de bruits particulièrement utiles pour améliorer le réalisme des animations comportant des êtres vivants tels que des humains ou des animaux. Par exemple, les zones basses fréquences peuvent correspondre à des mouvements de balancement plus ou moins régulier d'un personnage en position debout, tandis que les hautes fréquences peuvent correspondre à des mouvements plus saccadés et/ou plus fins du personnage. Ces aspects contribuent fortement à améliorer le réalisme des personnages. On peut alors imiter les êtres vivants réels qui ont constamment de légers mouvements de l'un ou l'autre membre du corps.
Les paramètres modifiables sont de préférence sélectionnés dans la liste comprenant: une morphlette F, le nombre maximum d'étages (jmax), la fréquence de transition (jcut), les paramètres H1 et H2, un nombre aléatoire (e), un paramètre d'intermittence (p).
La somme de chacun des deux principaux termes de l'équation est avantageusement une somme généralisée. Tout type d'opération ou de fonction Allego/anim_fr2.1 peut ainsi être utilisé, comme par exemple la soustraction, la multiplication, la fonction maximum ou minimum, etc. Les paramètres peuvent être affectés de façon récursive aux noeuds enfants 5 (noeuds dépendants) des noeuds sélectionnés.
Une carte peut être dépendante du temps. Un seul, plusieurs, ou la totalité des paramètres peuvent être appelés à varier en fonction du temps.
L'invention propose par ailleurs un outil de génération ou de modification de cartes procédurales pour la mise en oeuvre du procédé préalablement énoncé, permettant la génération ou la modification de cartes procédurales de modélisation de scènes à structure en arbre, comportant une pluralité d'étages, chacun avec au moins un noeud auquel est associé au moins un paramètre, comprenant: -une unité d'entrée de paramètres de cartes, pour recevoir des paramètres prédéfinis de cartes procédurales prenant en compte les données d'au moins un objet modèle sur lequel la carte procédurale agira afin de modéliser une scène; - une unité de traitement destinée à traiter lesdits paramètres, de façon à générer ladite carte de modélisation de scène, de sorte que la carte ait une structure en arbre; -des instructions de mise en oeuvre, pour assurer le fonctionnement de l'outil et notamment de l'unité de traitement; -une sortie, permettant de transmettre les cartes produites.
Selon une variante avantageuse, l'outil comprend par ailleurs: - un outil de sélection de noeuds permettant la sélection d'au moins un noeud d'un étage; - un outil de sélection et de modification de paramètres de cartes, pour d'une part 30 sélectionner un paramètre à modifier, et d'autre part permettre l'entrée de la nouvelle valeur du paramètre; -une unité de traitement destinée à traiter lesdits paramètres de façon à générer ladite carte de modélisation de scène modifiée; Allego/anim_fr2.1 -des instructions de mise en oeuvre, pour assurer le fonctionnement de l'outil et notamment de l'unité de traitement; -une sortie, permettant de transmettre la carte modifiée.
Selon une autre variante avantageuse, l'outil de sélection de noeuds comporte une unité de sélection de profondeur, permettant de sélectionner l'étendue de la modification à réaliser sur l'arbre.
L'outil de sélection de noeuds comporte avantageusement un cadre mobile de localisation de noeud-objet (ou de noeud). Ce cadre peut être commandé soit par un moyen approprié tel un curseur directement depuis l'interface de travail, soit depuis une commande informatique de type connue telle une souris, un pointeur, les flèches du clavier, etc. L'outil de génération ou de modification de cartes procédurales comporte de préférence un sélecteur de fréquence de transition (jcut) entre les hautes et basses fréquences.
L'invention sera maintenant décrite en référence aux figures 1 à 39 jointes, présentées uniquement à des fins d'exemples non limitatifs, dans lesquelles: -les figures 1 à 20 illustrent des exemples très simples de cartes procédurales montrant l'effet d'une structure à arbre; - les figures 21 à 25 illustrent des exemples simples montrant les types de modifications locales que l'invention permet de réaliser; - les figures 26 à 31 illustrent schématiquement les principes et les paramètres utilisés pour les cartes procédurales à structure à arbre; - les figures 32 à 37 et 39 illustrent des exemples d'interface de travail conformément au précédé et aux outils selon l'invention; -la figure 38 illustre un exemple d'application de cartes procédurales.
La présente invention est basée sur l'utilisation de cartes procédurales à structure à arbre. Les figures 26 à 31 illustrent des exemples de tels arbres (pour le cas Allego/anim_fr2.I spécifiques dans lequel n=1, où n est la dimension du support. Par exemple, n=2 pour une image, n=3 pour un volume, n= 1 pour une courbe). Dans l'exemple de la figure 26, à j=0, on retrouve un noeud simple. Deux noeuds enfants ou fils se trouvent au niveau j=1, et quatre au niveau j=2. Tous les noeuds sont similaires.
La fonction F contribue pour beaucoup à la définition de la forme de base du noeud-objet. Elle est également désignée dans ce document par le terme morphlette . Une morphlette peut prendre pratiquement n'importe quelle forme. Une telle carte procédurale à structure en arbre peut être représentée par l'équation suivante: 1 F(2'x-k),(j,k) jk formant un arbre T, et également représentée dans de document par: F (2' x - k) (j,k)eT dans lequel: -F est une fonction ou morphlette -x est un vecteur du type (xi, x2, x" ); -T est un arbre comprenant des noeuds (j, k) et dans lequel -j indique le niveau actuel, parmi un nombre potentiel total de niveaux jmax ( j e (0, 1, 2, jmax) ; -k est un vecteur de déplacement pour chaque noeud N et du type (x, , x2 Xn).
Les figures 26 à 31 illustrent des exemples de modifications locales qu'il est possible de réaliser grâce à la structure en arbre selon l'invention. Par exemple, à la figure 27, des valeurs différentes de H ont été attribuées. Ainsi, le demi arbre de gauche de la figure 10 comporte u ne valeur de H de 0,2; celui de droite, une valeur de H de 0,8.
L'arbre est symétrique mais l'invention permet de produire des arbres non symétriques. C e t ype d e modification p eut permettre de modifier localement le Allego/anim_fr2.1 niveau de rugosité d'une carte: en tendant vers H=1 une surface sera plus lisse; en tendant vers H=O, une surface sera plus rugueuse.
A la figure 29, certains sous-arbres ou branches sont supprimés. Le paramètre P représente une probabilité de supprimer des branches d'un arbre. Avec p=0,2, il y a une probabilité de o,2 de supprimer des branches; pour p=0,8, cette probabilité est de 0,8. Ce paramètre peut être ajusté pour conserver ou non un forte densité de sous-arbres.
La figure 30 illustre les possibilités offertes par le paramètre D, soit le décalage. Le décalage permet de déplacer un ou plusieurs noeuds de leurs positions d'origine.
Enfin, la figure 31 illustre les grands types de paramètres avec lesquels l'invention permet de travailler pour créer ou modifier des cartes procédurales: les paramètres d'action tels que p et D, et les paramètres de structure, tels que H, F et i;.
Les figures 1 à 5 illustrent des exemples de cartes procédurales possédant des structures en arbre. Par exemple, la figure 1 présente un exemple dans lequel une morphlette de type F= 1, si X2 + y2 < 1, autrement, F=0. A j=0, avec un noeud simple, un noeud-objet NO simple est généré, prenant la forme d'un disque uniforme et centré (figure 15).
Pour j=1, au second niveau, figure 2, on retrouve quatre noeud-objets, dans cet exemple, quatre disques de plus petite taille, chacun étant uniforme. Cette couche est donc divisée en quatre sections, chacune formant un noeud-objet. Chaque section occupe '/ de la carte initiale, selon l'arrangement de type quadratique et uniforme de cet exemple. On voit donc l'effet des principaux paramètres: j indique le niveau actuel, k permet le déplacement de noeud-objets, dans cet exemple depuis le centre de la carte vers le centre d'un des quarts. La morphlette de base F demeure inchangée.
Allego/anim_fr2.1 La figure suivante (figure 3) illustre le 3e niveau (j=2), pour une même morphlette. Depuis le niveau précédent, il y a une nouvelle subdivision en 4 quarts, chaque quart possédant son noeud-objet, dans cet exemple, un disque similaire, mais toujours plus petit.
La figure 4 montre la somme de ces différentes couches. Cet exemple très simple permet de bien visualiser les formes de base de chaque niveau. La figure 5 illustre une somme du même type mais pour un nombre plus élevé de niveaux, donc un nombre plus élevé de noeud-objets, d'où une structure plus complexe.
Les figures 6 à 10 sont comparables aux figures 1 à 4, mais basées sur une morphlette différente: F(x,y) = exp ( -x2 - y2). Le noeud-objet résultant est une fonction de type Gauss à deux dimensions, plutôt qu'un disque. En comparant les figures des couches similaires, par exemple les figures 1 et 6 pour j =0, les figures 2 et 7, pour j = 1, ainsi que les figures 3 et 8 pour j = 2, il est possible d'observer les effets de la modification de la morphlette de base utilisée. Les structures sont similaires, mais avec des noeuds-objets présentant un aspect différent.
La comparaison des figures 4 et 5 avec respectivement les figures 9 et 10, révèle des effets similaires, tout d'abord avec un nombre de niveaux restreint, (jmax = 2) aux figures 4 et 9, puis, aux figures 5 et 10, avec un nombre de niveaux ajusté de façon à correspondre aux dimensions d'un pixel.
Dans les exemples précédents, du niveau J au niveau j+1, la taille du support est divisée par deux. Si l'amplitude de la fonction ou morphlette avec laquelle on effectue la sommation demeure inchangée, le niveau d'énergie du noeud-objet est doublé. Pour éviter une telle situation et afin de contrôler le niveau d'énergie d'un niveau à l'autre, l'équation peut être adaptée (en ajoutant 2"' à l'équation) avec le résultat suivant: 2-' F (2j x k) (j, k)eT Allego/anim_fr2.1 i0 La Figure 11 illustre une morphlette en forme de disque, où j = jmax, avec une équation modifiée afin de considérer les niveaux d'énergie. La carte résultante est plus nette en comparaison avec celle de la figure 5. La Figure 12 est similaire à la figure 5, mais basée sur une morphlette de type Gauss.
Dans les exemples précédents, les cartes sont toujours configurées avec une structure uniforme, répétée de façon systématique à chaque niveau ou étage ou couche. Les cartes résultantes, en particulier lorsqu'elles sont utilisées afin de définir des textures procédurales, peuvent parfois avoir une certaine tendance à présenter un aspect artificiel . Ceci est principalement du au fait que les objets naturels ne sont en général pas basés sur de telles structures uniformes et rigoureusement répétitives. Ainsi, afin de mieux simuler les objets naturels, l'équation mathématique peut, selon une variante avantageuse, être complétée avec un nombre aléatoire a,k).
La relation mathématique résultante est alors: 1 2-' F (2' x - k) , k) (i, k)eT dans laquelle est un nombre aléatoire.
Dans le cas d'une carte à structure en arbre incluant un nombre aléatoire, l'arbre n'est plus homogène et la distribution des différents noeudsobjets est basée sur 25 une lois aléatoire donnée pour Eu,k).
La figure 13 illustre une carte procédurale obtenue avec une telle équation, dans laquelle on retrouve un nombre aléatoire. On observe que la structure régulière quadratique des exemples précédents n'est plus reproduite dans ces exemples.
L'orientation et la structure de la carte sont partiellement influencés par le nombre aléatoire.
Allego/anim_fr2.1 2888376 Il L'importance de cette influence peut être ajustée en sélectionnant un paramètre d'une valeur plus faible ou plus élevée. Ainsi, l'exemple de la figure 13 correspond à l'exemple de la figure 11 avec, k) étant une variable aléatoire de loi uniforme comprise entre -1 et +1.
Selon une autre variante, la relation mathématique peut encore être optimisée avec l'aide d'un paramètre de HURST, désigné H. Pour une carte donnée, la valeur d e H est avantageusement une constante. Par exemple, H e [0, 1]. Ce paramètre contribue à la gestion des lois d'échelles dans des processus auto- similaires. Avec l'aide d'un tel paramètre, le processus de sommation à structure à arbre est alors auto-similaire en lui-même. En suivant une telle loi, même après un changement d'échelle, un objet similaire est observable tel qu'avant le changement d'échelle.
Par exemple, un fragment de nuage ressemble à un nuage entier. Le paramètre H est aussi lié linéairement à la dimension fractale. Pour une faible valeur de H, le signal est irrégulier, et la dimension fractale est élevée. Dans les cartes de textures, le paramètre de Hurst correspond en pratique à un paramètre de rugosité. Lorsque H -0, la surface correspondante est plus lisse; lorsque H O, la surface devient plus rugueuse, tel que montré par exemple aux figures 14 à 16.
A la figure 14, l'exemple de la figure 13 est utilise, avec H=0.2. A la figure 15, l'exemple de la figure 13 est utilise, avec H=0.5. A la figure 16, l'exemple de la figure 13 est utilise, avec H=0.8.
La figure 27 montre un exemple d'arbre comprenant des noeuds comportant différentes valeurs de H. En prenant en compte ce paramètre, la relation mathématique devient: 2"'" F (2' x k) , k) k)eT Allego/anim_fr2.1 dans laquelle: -F est une fonction R" -*R - x est un vecteur du type (xi, x2, x" ); - T représente un arbre comprenant des noeuds (j, k), dans lesquels -j indique le niveau en cours, parmi un nombre total de niveaux potentiels jmax (j e (0, 1, 2, jmax) -k est un vecteur déplacement pour chaque noeud N et du type (xi, x2 X") -H représente le paramètre de Hurst; - représente un nombre aléatoire; Selon une autre variante, la relation mathématique peut encore être améliorée grâce à l'addition du paramètre Tp représentant un arbre pourvu d'un paramètre d'intermittence (p), et comprenant les noeuds ( j, k), avec pour équation résultante: > 2-'" F (2' x k) , k) (j, k)eTp où: - F est une fonction R" -+R -x est un vecteur du type (xi, x2, x" ); - Tp représente un arbre pourvu d'un paramètre d'intermittence (p), et comprenant les noeuds (j, k), dans lesquels: -j indique le niveau en cours, parmi un nombre total de niveaux potentiels jmax (j e (0, 1, 2, jmax) -k est un vecteur déplacement pour chaque noeud N et du type (xi, x2, x" ) -H représente un paramètre de rugosité; - représente un nombre aléatoire; Allego/anim_fr2.1 p représente une probabilité de supprimer des branches de l'arbre T. Par exemple, à la figure 17, p=0.2, signifie une probabilité de 0.2 de supprimer des branches (ou des sous-arbres) de l'arbre T. A la figure 18, p=0.8, signifiant une probabilité d e 0.8 d e supprimer d es branches (ou s ous-arbres) d e l'arbre T. L a figure 18 présente un exemple d'arbre influencé par une valeur donnée d'un paramètre p. Cet exemple montre que certains noeuds ont été supprimés ou sont non existants.
La structure ou configuration en arbre permet également de fournir un effet spécifique additionnel ou une modification de carte avec un autre paramètre, D, correspondant au déplacement d'un ou plusieurs noeuds par rapports à leurs positions d'origine.
Les figures 19 et 20 illustrent cette possibilité. Dans ces figures, construites avec un exemple similaire à celui de la figure 15, p = 0 et D = 0.2. Cela signifie une probabilité entre 0 et 20 % de déplacer un noeudobjet. A la figure 20, D = 0.5. Une comparaison entre les deux figures montre clairement un déplacement plus important de certains des noeudsobjets, sur la base d'une lois aléatoire. La figure 30 montre un exemple d'arbre par l'utilisation d'un déplacement D. La relation correspondante devient alors: 1 F(2Jx-k),k) U, k)eTD,p où: -F est une fonction R" -+R -x est un vecteur du type (xi, x2, x" ); - TD,p représente un arbre pourvu d'un paramètre d'intermittence (p), et 30 comprenant les noeuds (j, k), et un déplacement D, dans lesquels: -j indique le niveau en cours, parmi un nombre total de niveaux potentiels jmax (j e (0, 1, 2, jmax) Allego/anim_fr2.1 -k est un vecteur déplacement pour chaque noeud N et du type (xi, x2 Xn) -H représente un paramètre de rugosité; -représente un nombre aléatoire; Bien entendu, différentes relations sont également possibles grâce à la suppression ou à l'addition d'un ou plusieurs paramètres, par exemple selon une séquence différente de celle présentée dans les exemples précédents. Toute autre relation utilisant une combinaison différente de ces paramètres est également comprise dans l'objet de la présente invention.
La figure 31 propose une présentation différente des noeuds d'un arbre en fonction du type d'effet de chacun des paramètres. Deux familles ou catégories de paramètres sont présentées: les paramètres "d'action", tels que l'intermittence p et le déplacement D, et les paramètres structurels , tels que le paramètre de Hurst (H), la morphlette F et le paramètre aléatoire
EXEMPLES DE MODIFICATIONS
Les figures 2 1 à 25 illustrent des e xemples d e modifications de cartes q u'il est possible de réaliser à l'aide du procédé et des outils selon l'invention. A la figure 22, le cadre mobile 23 de l'outil de sélection de noeud 20 est localisé sur un noeud-objet 51 à traiter. La figure suivante (figure 23) illustre le résultat suite à la suppression de ce noeud. On voit très bien que les modifications peuvent donc être faites à un niveau local, sans affecter le reste de la carte.
Les figures 24 et 25 illustrent un processus similaire de modification des paramètres au niveau d'un noeud. Dans cet exemple, la fonction ou morphlette F a été modifiée, affectant de ce fait la forme de base du noeud-objet de ce quart de carte. En effet, on aperçoit à la figure 25 les disques de la figure 24 qui sont à présent amincis ou écrasés.
Les figures 32 à 37 et 39 présentent des exemples d'interfaces de travail obtenues par un outil 10 selon l'invention. Selon diverses variantes de réalisation, un tel outil Allego/anim_fr2.1 peut être fourni s oit pour 1 a modification d e cartes p rocédurales existantes, soit pour la génération et la modification de telles cartes.
L'outil de base comporte un outil 20 de sélection de noeuds, comprenant un sélecteur 21 de niveau J, et un sélecteur de noeud, permettant la sélection d'un noeud donné dans le niveau choisi. En pratique, tel que décrit ci-après, l'utilisateur sélectionne une couche, correspondant à un niveau J donné et un noeud-objet, correspondant à un noeud K. L'outil 10 comporte un outil de paramétrage 30, permettant de sélectionner un paramètre, soit pour lui donner une première valeur, ou encore pour la modifier ou l'ajuster, selon le cas. Pour modifier une carte, un ou plusieurs noeuds 41 sont tout d'abord sélectionnés. Un outil tel que le sélecteur 20 de noeud offre cette possibilité. Un tel outil peut avantageusement fournir deux fonctions: une unité 21 de sélection de niveau, et une unité de sélection de noeud.
L'outil de sélection de noeud comporte une cible d'écran mobile 23. Cette cible est avantageusement configurée de façon à permettre de délimiter au moins un noeud-objet 51 dans une couche donnée. Dans les exemples illustrés, la cible est de forme sensiblement carrée. Pour faciliter la sélection des noeuds, l'outil comporte un mode de déplacement de façon à permettre l'auto-positionnement de la cible sur un noeud-objet ou sur un ensemble de noeuds-objets, par exemple les noeuds les plus près, lorsque la cible n'est pas parfaitement positionnée par l'utilisateur sur un noeud. La cible peut être commandée par tout type de commande classique d'un ordinateur, telle une souris, un pointeur, des touches du clavier telles que les flèches, ou une commande à distance telle une machine, un circuit spécialement conçu ou un logiciel de pilotage. Elle peut également être contrôlée directement depuis l'interface de l'outil 20 de sélection de noeud, par exemple à l'aide d'un curseur 24 contrôlant le déplacement de la cible 23 sur la carte.
De manière avantageuse, l'outil 23 est configuré de sorte que lorsqu'un niveau est sélectionné, la forme et la taille du cadre 23 s'adapte à ceux du noeud-objet 51 du Allego/anim_fr2.1 niveau correspondant. L'outil 23 permet de sélectionner tout noeud du niveau sélectionné.
Selon une autre variante, l'outil 20 de sélection de noeuds comporte un moyen de 5 mise en évidence, permettant de bien indiquer à l'utilisateur quels noeuds sont sélectionnés. Une telle indication peut être réalisée par changement de couleur ou d'intensité, un clignotement, ou tout autre moyen visuel efficace.
L'outil 10 comporte de préférence un sélecteur 26 de profondeur, permettant à l'utilisateur d'indiquer si l'opération en cours concerne uniquement les noeuds du niveau sélectionné ou si les sous-arbres doivent également être traités de façon similaire.
L'outil de paramétrage 30 permet tout d'abord de sélectionner un paramètre à considérer. Puis, sa nouvelle valeur (modifiée ou initiale) peut être entrée. L'outil est avantageusement adapté afin de pouvoir traiter au moins un, mais de préférence tous les types de paramètres illustrés dans ce document, tels que: F: 34, H: 35, 36, p: 33, D(x): 31, D(y): 32.
L'outil 10 comporte de préférence un sélecteur Global (G) / Local (L). Le mode global est sélectionné à l'aide du sélecteur 37 si on souhaite modifier une carte dans sa totalité. Les unités de niveau et de sélectionde noeud peuvent alors être désactivés ou pas utilisés. Les modifications sont réalisées telles que décrit préalablement, mais l'utilisateur a la possibilité d'appliquer ces modifications à une carte entière. Bien sûr, il peut procéder à certaines modifications d'une même carte en mode local, et d'autres en mode global. En mode global, les étapes relatives à la sélection d'un niveau et d'un noeud ne sont évidemment pas applicables.
Les modifications locales impliquent que les modifications sont intégrées au niveau des noeud-objets, pour au moins un noeud-objet.
Allego/anim_fr2.1 L'outil 10 peut également permettre la possibilité de supprimer un ou plusieurs noeuds. Une suppression virtuelle peut être également réalisée en utilisant une morphlette F=0.
L'interface permet à l'utilisateur de donner une valeur aux différents paramètres. Par exemple, pour F, l'utilisateur entre une fonction, telle que celle illustrée. Selon une variante, un menu déroulant peut proposer à l'utilisateur une série de fonctions parmi lesquelles il peut choisir. Il en est de même pour le paramètre Pour le paramètre p, l'utilisateur donne une valeur, par exemple entre 0 et 1, par exemple à l'aide d'un curseur ou autre outil similaire. Un menu déroulant peut aussi être proposé. Pour les paramètres H et D (pour x et y), les valeurs peuvent être entrées de façon similaires à celle du paramètre p, avec des valeurs par exemple entre 0 et 1 pour H, et en pourcentage pour D. Une échelle de temps 70 (représentée aux figures 35 à 37) représentant le temps permet de travailler avec des cartes dont les paramètres peuvent être appelés à varier en fonction du temps.
Le procédé ainsi que les outils présentés dans le cadre de la présente invention ont été présentés avec des images et cartes simples. Le même procédé et les mêmes outils s'appliquent de façon similaire à des séries d'images telles que des séquences vidéo.
Les figures 33 à 37 présentent des exemples de modifications apportées à des cartes grâce à l'outil selon l'invention. A la figure 33, les valeurs de D sont modifiées par rapport aux valeurs initiales (zéro) de la figure 32. A la figure 34, la valeur de H est modifiée pour une valeur inférieure. Les effets induits par ces modifications sont bien visibles sur ces figures. On aperçoit ainsi à la figure 33 le cadre 23 et les noeuds-objets correspondants occuper une nouvelle position, et à la figure 34 l'effet de la nouvelle valeur de H sur la rugosité.
Les figures 35, 36 et 37 présentent des variantes d'interfaces 10. Un sélecteur 60 2D/3D est ajouté, afin de sélectionner une valeur de n. Une échelle de temps ( timeline ) est également ajoutée, afin d'affecter une valeur de temps à tout Allego/anim_fr2.1 paramètre susceptible de dépendre ou d'évoluer en fonction du temps. Ces interfaces ainsi modifiées peuvent être utiles afin de permettre de travailler avec différents types de shaders . Les figures 36 et 37 illustrent des modifications de paramètres similaires aux modifications effectuées aux figures 33 et 34. La figure 38 illustre un exemple d'utilisation de cartes procédurales, dans lequel différentes cartes sont combinées afin de générer une représentation virtuelle d'un matériau complexe tel qu'un mur constitué de pierres de différentes tailles, de différentes formes et de différentes textures.
La figure 39 présente un exemple d'interface de travail selon l'invention utilisée pour travailler une carte procédurale d'animation. Dans la fenêtre de présentation, une carte procédurale 50 comportant un spectre fréquentiel est affichée. Ce spectre permet de paramétrer l'animation du ou des objets concernés. Par exemple, les hautes fréquences peuvent être destinées à générer des tremblements de membres d'un personnage, tels que les yeux, les doigts, etc. Les basses fréquences peuvent servir à contrôler des mouvements plus lents tels que de légers mouvements d'oscillations avant-arrière et/ou gauche-droite que l'on rencontre habituellement lorsqu'un personnage conserve une position debout pendant un certain temps. Dans le cas où ils sont associés à des personnages, ces mouvements induits permettent d'améliorer le réalisme de la scène présentée, puisque des personnages réels présentent normalement de tels comportements. Le graphique présenté sous le graphe des fréquences représente un spectre de Fourrier du graphe du haut. II illustre, dans la portion de gauche, les basses fréquences, et dans la portion de droite, les hautes fréquences. Ce graphe montre bien que les comportements d'échelles sont différents selon les gammes de fréquences.
Selon une autre variante de réalisation, la présente invention peut également être mise en oeuvre en tant de plug-in pour un produit ou dispositif ou logiciel existant. Les exemples et modes de réalisation sont uniquement présentés à des fins illustratives et à titre d'exemples non limitatifs. D'autres exemples ou modes de réalisation peuvent être déclinés sans sortir du cadre de la présente invention. Les revendications qui suivent englobent de telles modifications.
Allego/anim_fr2.1 I 2888376

Claims (17)

REVENDICATIONS
1. Procédé pour générer ou modifier une carte procédurale (50) d'animation d'objets virtuels à structure en arbre (40) comportant une pluralité d'étages (43), chacun avec au moins un noeud (41) auquel est associé au moins un paramètre, comportant les étapes consistant à : - considérer les données d'au moins un objet virtuel sur lequel la carte procédurale (50) agira de façon à produire ladite animation; -en fonction de ces données, définir les paramètres de l'animation et introduire les paramètres de la carte d'animation dans un outil de génération de cartes procédurales (10) ; - traiter lesdits paramètres à l'aide dudit outil, de façon à générer ladite carte d'animation de sorte que la carte ait une structure en arbre (40) ; -transmettre ladite carte à un outil de gestion d'animation; associer les paramètres de ladite carte à ceux gérant l'animation de l'objet virtuel; -interpréter les paramètres de ladite carte; - modifier les paramètres d'animation de l'objet virtuel en fonction de cette interprétation.
2. Procédé pour générer ou modifier une carte procédurale d'animation d'objet virtuel selon la revendication 1, dans laquelle ladite carte est modifiable localement.
3. Procédé pour générer ou modifier une carte procédurale de modélisation de scène selon l'une des revendications 1 ou 2, comportant par ailleurs, avant l'étape consistant à définir la valeurs des paramètres, l'étape consistant à transmettre à l'outil de génération de cartes procédurales au moins un des paramètres de l'objet virtuel.
4. Procédé pour générer ou modifier une carte procédurale de modélisation de scène selon l'une des revendications 1 ou 2, comportant par ailleurs, avant Allego/anim_fr2.2 s 2888376 20 l'étape consistant à définir la valeurs des paramètres, l'étape consistant à transmettre à l'outil de génération de cartes procédurales au moins un des paramètres de la scène de base dans laquelle l'objet virtuel évolue.
5. Procédé pour générer ou modifier une carte procédurale d'animation d'objet virtuel selon l'une des revendications 1 à 4, comportant les étapes consistant à.
- fournir un outil de sélection de noeud (20), permettant la sélection d'au moins un noeud (41; 51) d'un étage; -sélectionner au moins un noeud (41; 51) ; - fournir un outil de modification de paramètre (30) permettant la modification d'au moins un paramètre du ou des noeuds sélectionnés; sélectionner au moins un paramètre dudit noeud à modifier; - modifier ledit paramètre (31, 32, 33, 34, 35a, 35b, 36) ; -traiter lesdits paramètres, y compris le paramètre modifié, de façon à générer ladite carte modifiée.
6. Procédé pour générer ou modifier une carte procédurale d'animation d'objet virtuel selon la revendication 5, comportant par ailleurs une étape de sélection d'un étage; puis la sélection d'au moins un noeud de cet étage pour modification d'au moins un paramètre de ce noeud.
7. Procédé selon l'une des revendications 1 à 6, dans laquelle la carte est susceptible d'être représentée par une équation du type: jcut 2" F (21 x k) k) j=0 k + jmax E > 2.1"2 F (21 x k) , k) Allego/anim_fr2. 2 jcut +1 k dans laquelle la carte résultante a une structure en arbre (Tp) - F est une fonction (ou morphlette) Rn --*R -x est un scalaire du type (xi, x2, x ); - Tp représente un arbre (40) pourvu d'un paramètre d'intermittence (p), comportant des noeuds (j, k), dans lesquels -j indique l'étage (43) sélectionné, parmi un nombre total d'étages potentiels jmax (j e (0, 1, 2, jmax) et jcut représente la fréquence de transition; -k est un vecteur de déplacement pour chaque noeud N de type (ki, k2 -H représente une valeur de paramètre de Hurst, avec H1 correspondant aux basses fréquences, et H2 correspondant aux hautes fréquences; - représente un nombre aléatoire.
8. Procédé selon la revendication 7, dans laquelle les paramètres modifiables sont sélectionnés dans la liste comprenant: une morphlette F, le nombre maximum d'étages (jmax), la fréquence de transition (jcut), les paramètres H1 et H2, un nombre aléatoire (g), un paramètre d'intermittence (p).
9. Procédé selon l'une des revendications 7 ou 8, dans laquelle la somme est une somme généralisée.
10. Procédé selon l'une des revendications précédentes, dans laquelle les paramètres sont affectés de façon récursive aux noeuds enfants des noeuds sélectionnés.
11. Procédé l'une des revendications précédentes, dans laquelle la carte est dépendante du temps.
12.Outil de génération ou de modification de cartes procédurales (10) pour la mise en oeuvre du procédé selon l'une des revendications 1 à 11, permettant la Allego/anim_fr2.2 génération ou la modification de cartes procédurales (50) de modélisation de scènes à structure en arbre (40), comportant une pluralité d'étages (43), chacun avec au moins un noeud auquel est associé au moins un paramètre, comprenant: -une unité d'entrée (30) de paramètres (31, 32, 33, 34, 35a, 35b, 36) de cartes, pour recevoir des paramètres prédéfinis de cartes procédurales prenant en compte les données d'au moins un objet modèle sur lequel la carte procédurale agira afin de modéliser une scène; - une unité de traitement destinée à traiter lesdits paramètres, de façon à générer ladite carte de modélisation de scène, de sorte que la carte ait une structure en arbre; - des instructions de mise en oeuvre, pour assurer le fonctionnement de l'outil et notamment de l'unité de traitement; -une sortie, permettant de transmettre les cartes produites.
13.Outil de génération ou de modification de cartes procédurales (10) selon la revendication 12 comprenant par ailleurs: - un outil de sélection de noeuds (20) permettant la sélection d'au moins un noeud d'un étage; -un outil de sélection et de modification de paramètres de cartes (30), pour d'une part sélectionner un paramètre à modifier, et d'autre part permettre l'entrée de la nouvelle valeur du paramètre (31, 32, 33, 34, 35a, 35b, 36) ; - une unité de traitement destinée à traiter lesdits paramètres de façon à générer ladite carte de modélisation de scène modifiée; -des instructions de mise en oeuvre, pour assurer le fonctionnement de l'outil et notamment de l'unité de traitement; - une sortie, permettant de transmettre la carte modifiée.
14.Outil de génération ou de modification de cartes procédurales selon la revendication 12 ou 13, dans lequel l'outil de sélection de noeuds comporte une unité de sélection de profondeur (26), permettant de sélectionner l'étendue de la modification à réaliser sur l'arbre.
Allego/anim_fr2.2
15. Outil de génération ou de modification de cartes procédurales selon l'une des revendications 12 à 14, dans lequel l'outil de sélection de noeuds comporte un cadre mobile (23) de localisation de noeud-objet (51).
16.Outil de génération ou de modification de cartes procédurales selon la revendication 15, dans lequel ledit cadre (23) est commandé par un curseur (21, 24) directement depuis l'interface de travail.
17.Outil de génération ou de modification de cartes procédurales selon l'une des revendications 12 à 16 dans lequel l'outil comporte un sélecteur (80) de fréquence de transition (jcut) entre les hautes et basses fréquences.
Allego/anim_r2.2
FR0507499A 2005-07-08 2005-07-08 Procede et outil de generation ou de modification de cartes procedurales pour l'animation d'objets virtuels Pending FR2888376A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0507499A FR2888376A1 (fr) 2005-07-08 2005-07-08 Procede et outil de generation ou de modification de cartes procedurales pour l'animation d'objets virtuels

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0507499A FR2888376A1 (fr) 2005-07-08 2005-07-08 Procede et outil de generation ou de modification de cartes procedurales pour l'animation d'objets virtuels

Publications (1)

Publication Number Publication Date
FR2888376A1 true FR2888376A1 (fr) 2007-01-12

Family

ID=36218518

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0507499A Pending FR2888376A1 (fr) 2005-07-08 2005-07-08 Procede et outil de generation ou de modification de cartes procedurales pour l'animation d'objets virtuels

Country Status (1)

Country Link
FR (1) FR2888376A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982389A (en) * 1996-06-17 1999-11-09 Microsoft Corporation Generating optimized motion transitions for computer animated objects

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982389A (en) * 1996-06-17 1999-11-09 Microsoft Corporation Generating optimized motion transitions for computer animated objects

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DANSEREAU R ET AL: "Image compression through fractal surface interpolation and wavelet compression", WESCANEX 97: COMMUNICATIONS, POWER AND COMPUTING. CONFERENCE PROCEEDINGS., IEEE WINNIPEG, MAN., CANADA 22-23 MAY 1997, NEW YORK, NY, USA,IEEE, US, 22 May 1997 (1997-05-22), pages 94 - 99, XP010250183, ISBN: 0-7803-4147-3 *
DEGUY S ET AL: "A FLEXIBLE NOISE MODEL FOR DESIGNING MAPS", INTERNATIONAL WORKSHOP ON VISION, MODELING AND VISUALIZATION. PROCEEDINGS, 21 November 2001 (2001-11-21), pages 299 - 307, XP008033245 *
WREN C R ET AL: "PFINDER: REAL-TIME TRACKING OF THE HUMAN BODY", IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 19, no. 7, July 1997 (1997-07-01), pages 780 - 785, XP000698177, ISSN: 0162-8828 *

Similar Documents

Publication Publication Date Title
EP1292921B1 (fr) Raffinement d&#39;un maillage triangulaire en trois dimensions
EP1982310B1 (fr) Procede de synthese d&#39;une image virtuelle par lancer de faisceaux
Dischler et al. Texture particles
Kraus et al. Depth‐of‐field rendering by pyramidal image processing
US20160155261A1 (en) Rendering and Lightmap Calculation Methods
EP0215510B1 (fr) Processeur d&#39;élimination de faces cachées pour la synthèse d&#39;images à trois dimensions
EP2599057B1 (fr) Systeme et procede d&#39;edition, d&#39;optimisation et de rendu de textures procedurales
Lee et al. Real‐time depth‐of‐field rendering using point splatting on per‐pixel layers
FR2596175A1 (fr) Procede et dispositif d&#39;echantillonnage selon des points pseudo-aleatoires en informatique graphique
Peddie Ray tracing: a tool for all
Ji et al. Real‐time bas‐relief generation from depth‐and‐normal maps on GPU
EP2504816B1 (fr) Procede d&#39;estimation de diffusion de la lumiere
FR2888376A1 (fr) Procede et outil de generation ou de modification de cartes procedurales pour l&#39;animation d&#39;objets virtuels
Battiato et al. Artificial mosaic generation with gradient vector flow and tile cutting
O'Connor Mastering mental ray: Rendering Techniques for 3D and CAD Professionals
Ma et al. Instant stippling on 3D scenes
Tutenel et al. Procedural filters for customization of virtual worlds
FR2888377A1 (fr) Procede et outil de generation ou de modification de cartes procedurales a structure en arbre pour la modelisation de scenes
Low et al. Pic2PolyArt: Transforming a photograph into polygon-based geometric art
JP2023540652A (ja) ソフトレイヤ化および深度認識インペインティングを用いた単画像3d写真技術
EP1741066B1 (fr) Methode et dispositif pour generer une carte procedurale a partir d&#39;un parametre externe tel une caracteristique d&#39;une image
WO2007130018A1 (fr) Coupe d&#39;occlusion basée sur une image
Jackson Hyperrealism–The Influence of Changing Technologies on Architectural Rendering
Cardoso Getting started with Lumion 3d
CA2209275C (fr) Procede de generation dynamique d&#39;images synthetiques a niveau de detail automatique, et dispositif de mise en oeuvre

Legal Events

Date Code Title Description
IC Decision of the director general to declare irreceivable or to reject an appeal