Génération procédurale

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Éthique#Procéduralisme.
image illustrant l’informatique image illustrant le jeu vidéo
Cet article est une ébauche concernant l’informatique et le jeu vidéo.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Consultez la liste des tâches à accomplir en page de discussion.

En informatique, la génération procédurale (ou le modèle procédural) est la création de contenu numérique (niveau de jeu, modèle 3D, dessins 2D, animation, son, musique, histoire, dialogues) à une grande échelle (en grande quantité), de manière automatisée répondant à un ensemble de règles définis par des algorithmes[1],[2]. Le modèle procédural s’appuie sur les informations d'un algorithme pour construire[3].

La méthode de génération procédurale trouve application dans le domaine principalement du jeu vidéo ainsi que du cinéma. Dans le domaine du jeu vidéo, il y a la notion de création à portée artistique ainsi que de conception de contenu à grande échelle, c'est pourquoi la notion de génération procédurale s'associe avec un contrôle à posteriori par l'artiste qui modifie l’environnement (simulation, modélisation) (aléatoire contrôlé)[4].

La génération procédurale est une catégorie des techniques de modélisation (les deux autres étant : la simulation informatique et la modélisation par esquisses ou par édition) permettant la création d'un monde virtuel cohérent[5].

Les applications de génération procédurale[modifier | modifier le code]

Génération de paysages[modifier | modifier le code]

Article détaillé : Générateur de paysage.

La génération du paysage dans la génération procédurale tient une place importante du fait de son importance visuelle à toutes les échelles, de l'arrière-plan jusqu'au premier plan[1]. La génération de cartes de hauteur (heightmap) sont basées sur le bruit de Perlin ou le midpoint displacement (Fournier)[6].

Approche géologique[modifier | modifier le code]

L’érosion est l’élément centrale dans la génération de paysage d'un point de vue géologique, dans sa dimension hydraulique (vallées) ou thermique (effondrement de zones)[7],[1]. Pour l'application, de ses méthodes d'érosion il existe différentes approche : l'approche fractale[8],[9] ou diffusion d'une contrainte donnée par l'utilisateur[10]. Ces approches peuvent être appliquées avec différents niveau de précision de celles peu précise (par colonnes d'eau [11]), a des plus précises[12]. Les fractales sont associés a des algorithmes comme celui de diamond-square (pouvait prendre en compte les rivières et crètes)[13] ou de square scheme[14] qui sont les plus connus. La technique de Milgram est d'utiliser le Bruit de Perlin avec une érosion hydraulique et thermique.

Pour créer de nouvelles formes à partir d'autres méthodes, notamment du fait de la limitation de la height map il existe le modèle de colonne permettant de gérer plusieurs strates de roche[15], qui permet la création de de tunnels et de grottes[16].

Information sur les méthodes de génération (voir ref)[17],[18].

Génération de terrains complexes[modifier | modifier le code]

La création de détails répond au besoins d'avoir une scène avec le maximum de précision mais d'éviter de représenter toutes cette variété par un travail manuelle, l'enjeux est donc de l'automatiser[19] L'enjeux de la création de paysages complexes est d'y apporter un réalisme plus important, avec la prise en compte des interactions entre les éléments, d'adaptation à leur environnement[5]. Les formes complexes comprennent les surplombs, des arches, des grottes, des couches de matières, l'empilement de pierre, les routes urbaines et de campagnes, et les espaces urbains etc...[5]. Pour une haute précision dans l'affichage de ses éléments dans une scènes par exemple pour les routes, la méthode utilisée consiste à faire des fonctions de coût pondérées par les caractéristique du terrain traversées (fonction de la pente, du niveau, de la matière traversé (génération de ponts, bitume, ponts, tunnels, barrière est coûteux)).

Végétation, Écosystème[modifier | modifier le code]

La végétation et l'écosystème est défini par l'ensemble des arbres et plantes interagissant avec l'environnement. Les plantes représente un défi à représenter du fait de leur complexité d’éléments (racines, troncs, branches, fleurs fruits, feuilles)[5]. Il existe différentes techniques pour leur création avec des embranchement (ramification) à chaque niveau, ou bien avec l'utilisation d'automates cellulaires pour définir les branches d'un arbre[5],[20],[21],[22],[23]. Le réalisme des structures de plantes sont notamment possible grâce a des diagrammes de structures de plantes et de fleurs[24], combiner à une hiérarchie de plans[25]. Des plantes grimpantes peuvent être créées en fonction de l’environnement lui-même, et non plus de manière indépendante, en gérant la distribution des racines en fonction de l'eau dans le sol[5]. Pour la distribution de ces éléments il existe plusieurs moyens : avec la simulation d'une croissance des plantes avec compétition entre elle, avec une carte de densité ou avec la méthode de pavage (efficace pour de grande échelle, en distribuant par groupe et par duplication) avec la répétition d'une instance[5]. Une autre technique consistant à utiliser plusieurs photographies avec de la simulation de particules peut générer des arbres avec un volume de voxels[19].

Il existe des méthodes pour animer le comportement des plantes qui se scinde en deux objectifs, chercher la lumière et conquérir le plus d'espace. Un des moyens de simuler l'écosystème est de représenter les éléments avec un point et une taille du point, lorsque les points se touche c'est la plus grande qui reste l'autre disparaît lorsqu'elle atteindre son espérance de vie et de la combiner avec une règle de groupe, qui fait que la même famille de plantes s'installe par groupe (en mourant d'autres apparaissent à côté d'elle), donc propagation de l'espèce mais cette méthode n'est pas bien représentatif car exclusif (aucune pousse n'est admise prêt d'une grand arbre)[5]. Le contrôle de ce processus peut ce faire avec des cartes de densité qui est fonction de la distribution de l'eau, et la capacité d'absorption par plante[5].

Paysages Urbains[modifier | modifier le code]

Un paysage urbains est constitué d'un réseaux de rues, de routes avec des blocs de bâtiments, de quartiers[5],[19].

Génération de formes complexes[modifier | modifier le code]

La génération de terrains complexes multimatériaux (par exemple : une arche de roche près de la mer avec du sable au sol et de l'herbe en haut de la falaise)[5] est possible mais utilise beaucoup de mémoire, et n'est pas possible sur une très grande échelle. Il y a l'édition de couche de roches, de fissures, de grottes, d'érosion locale, du phénomène de stabilisation, de lacs, et plans d'eaux naturel[26]. La génération de route pour s'adapter aux caractéristiques du terrain peut répondre à des contraintes de coût du trajet, le terrain doit avoir une valeur pondérée par ses caractéristiques (pente du terrain, densité de végétation, profondeur de l'eau, courbure de route, hauteur du sol, profondeur dans le sol). La route se crée avec différentes méthodes pour trouver le « plus court chemin », et peut être utilisé pour la génération de tunnels et ponts[5].

Génération de texture[modifier | modifier le code]

Le Procedural Shading est une technique de génération de texture.

Article détaillé : Texture procédurale.

Animation procédurale[modifier | modifier le code]

Article détaillé : Animation procédurale.

Modélisation procédurale[modifier | modifier le code]

Article détaillé : Modélisation procédurale.

Programmation procédurale[modifier | modifier le code]

Article détaillé : Programmation procédurale.

Génération par esquisses[modifier | modifier le code]

La génération par esquisses consiste à modéliser en contrôlant la forme du relief[27],[28]. Cela définit les éléments important (vallées, crêtes), le système construit alors le sol (génère le relief) à parti de l'empreinte (ligne pour vallées ou crêtes) de la montagne associé a ses lignes de vallées ou de crêtes, un contrôle à posteriori peut se faire par l'utilisateur[5].

Applications[modifier | modifier le code]

Jeux vidéo[modifier | modifier le code]

L'utilisation dans le jeu vidéo en massif, notamment dans le jeu vidéo indépendant permettant de répondre a des attentes spécifique aux joueur, notamment la rejouabilité[4]. Cette idée est souvent liée aux applications de synthèse d'image et au level design dans les jeux vidéo. Dans le jeu vidéo la génération procédurale correspond à l'application d'un aléatoire contrôlé (ou d'un faux aléatoire)[1] régit par des règles définies dans le but de générer quelque chose d'unique mais en conservant une cohérence. L'objectif étant de pouvoir créer une très grande quantité de contenu tout en assurant une cohérence de l’environnement, en lui donnant un aspect unique[4]. L'enjeu étant d'un point de vue du game design de proposer un nombre infini de niveaux unique tout en contrôlant l'équilibrage de la difficulté pour le joueur. La génération d'objets par fragments permet de multiplier la variété des scènes et de leur réalisme[19].

Génération procédurale d'une carte, type Donjon. Légende: Orange = récompense, Violet = serrure, Vert = Clef

Contrainte spécifique lié au jeux vidéo[modifier | modifier le code]

La génération procédurale dans le cadre du jeu vidéo impose des contraintes à l'utilisation de cette méthode, en effet, le rendu des calculs de la génération procédurale doit permettre d'avoir un affichage en temps réel à l’écran (output), dans le cas contraire cela cassera l'immersion du joueur dans le jeu vidéo (lag, bug, glitch, bug graphique).

Développement de la technologie dans le jeu vidéo[29][modifier | modifier le code]
Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
Question book-4.svg
Cette section ne cite pas suffisamment ses sources (mai 2016).
Pour l'améliorer, ajoutez des références vérifiables [Comment faire ?] ou le modèle {{Référence nécessaire}} sur les passages nécessitant une source.
Usage précoce[modifier | modifier le code]

Avant d'avoir une interface graphique complexe, les jeux type Rogue-like, comme Beneath Apple Manor (1978) et Rogue (jeu vidéo) (1980), utilisait la génération procédurale pour construire des donjons pour ASCII ou des systèmes à base de tuiles régulières (regular tile-based systems). Des jeux dans lesquels, la génération procédurale permet de générer des pièces, des couloirs, des monstres et trésors que le joueur aurait en récompense. Les jeux type Rogue-like, utilisent toujours aujourd'hui ce système de création de contenu, car elle permet le développement de Gameplay complexe sans avoir à passer trop de temps à créer le monde d'un jeu[30].

Les premiers jeux informatiques graphiques étaient limité par de fortes contraintes de mémoire. Cela a provoqué une création de contenu — tels que des cartes — généré algorithmiquement : il n'y avait tout simplement pas assez d'espace pour stocker une grande quantité de niveaux et d'illustrations (qui auraient dû être créés préalablement à la main). Les générateurs de nombres pseudo-aléatoires sont souvent utilisés conjointement avec des valeurs de graines (seed) prédéfinies afin de créer de vaste mondes de jeu quisont apparues préfabriquée[pas clair].

Il est possible que le premier jeu utilisant une graine (seed) pour la création de monde soit Richard Garriott's Akalabeth (1980), avec l'utilisation de la même graine, le joueur pouvait toujours retourner à un endroit précis du monde[31].

The Sentinel était censé avoir 10 000 niveaux différents stockés dans seulement 48 et 64 kilooctets. Un cas extrême était Elite, qui a été initialement prévu pour contenir un total de 248 (environ 282 000 000 000 000) galaxies avec 256 systèmes solaires chacun. L'éditeur, cependant, avait peur qu'un tel univers gigantesque cause l'incrédulité chez les joueurs, et 8 de ces galaxies ont été choisies pour la version finale[32].

D'autres premiers exemples notables existent comme le jeu Rescue on Fractalus (1985) qui a utilisé les fractales pour créer procéduralement en temps réel les montagnes escarpées d'une planète extraterrestre, et River Raid (1982), d'Activision a utilisé une séquence de nombres généré pseudo-aléatoirement par un registre à décalage à rétroaction linéaire afin de générer un labyrinthe de défilement d'obstacles.

À mesure des avancées matériels des éléments informatiques (hardware) et de l'adoption par le marché du CD cela a permis de stocker des milliers de fois plus de données que ce qui était possible dans les années 80, rendant obsolète l'utilisation de la génération procédurale pour construire de grands mondes. Toutefois, des contenus — tels que les textures, les modèles de personnages et l'environnement — restent créés par des artistes à l'avance, afin de maintenir une qualité de contenu constamment élevée.

Le stockage de modèle unique dans la mémoire du jeu — plutôt que de produire plusieurs objets à l'aide des lignes directrices similaires — permet une diversité de modèles détaillés qui sont chacun sensiblement différent. Toutefois, la création à la main (de modèle unique), implique par conséquent une existence d'objet limité en nombre. Certaines approches initiales à la création procédurale ont tenté de résoudre ce problème en déplaçant la charge de la génération de contenu par les artistes, vers les programmeurs qui peuvent créer du code générant automatiquement des maillages différents à l'aide de paramètres d'entrées.

Il a été reconnu que l'application d'un modèle purement procédural est souvent difficile, et au mieux il nécessite des quantités énormes de temps pour évoluer vers une méthode fonctionnelle, utilisable et rendant un aspect réaliste. Au lieu d'écrire une procédure qui construit complètement le contenu, la technique actuelle d'utilisation de cette technologie — pour être beaucoup moins cher et plus efficace — est de compter sur l'artiste pour la création de détails. Par exemple, SpeedTree est un middleware utilisé pour générer une grande variété d'arbres procéduralement, permettant a l'utilisateur de modifier les textures des feuilles — à partir de fichiers ordinaires — , permettant de représenter un feuillage réel numériquement acquis. D'autres méthodes hybrides peuvent être efficaces pour générer du contenu, avec par une utilisation combinée des procédures préconcues et d'une application de distorsions.

Envisageons qu'un seul algorithme puisse générer un arbre aspect réaliste, l'algorithme pourrait être alors appelé à générer des arbres aléatoires, remplissant ainsi une forêt entière en temps réel, au lieu de stocker tous les sommets requis par les différents modèles. Cela permettrait d'économiser de le l'espace de stockage et de réduire la charge sur les artistes, tout en offrant un niveau similaire d'immersion au joueur. Cette méthode nécessiterait beaucoup plus de puissance de traitement, mais en raison de l'augmentation de la puissance des processeurs (Loi de Moore) cela fait de moins en moins obstacle.

Un autre problème est qu'il est difficile de développer un bon algorithme pour un seul arbre, et encore moins pour une variété d'espèces (pin, bouleau, érable). Il faut aussi ce méfier de la phase d'assemblage pour la constitution d'une forêt pour lui donner aspect réaliste. Il ne suffit pas que les arbres soit simplement positionner côte à côte pour rendre une forêt réaliste, il faut prendre en compte les interactions entre les différents arbres — changeant leur apparence et leur distribution.

Usage moderne[modifier | modifier le code]

Bien que les jeux informatiques modernes ne possèdent pas les même restrictions de mémoire et de matériel, que les jeux précédents avaient, l'utilisation de la génération procédurale est fréquemment employées pour créer des jeux aléatoires, des cartes, des niveaux, des personnages, ou d'autres facettes qui sont uniques sur chaque usage[33].

En 2004, le jeu de tir à la première personne .kkrieger sort, il se base sur un usage intensif de la synthèse procédurale : tout en étant assez courte et très simple, les effets visuels pèsent seulement 96 ko. Au contraire, de nombreux jeux modernes qui ont la possibilité d'être publié sur le support DVD, dépassant souvent 2 gigaoctets, soit une taille plus grande de 20 000 fois. Le jeu Naked Sky de RoboBlitz utilise la génération procédurale pour réduire l'espace de stockage utilisé par le jeu à moins de 50 MB. Spore de Will Wright fait également usage de cette technologie.

La génération procédurale est souvent utilisée dans les systèmes de butin — comme dans des RPG, ou des MMORPG. Bien que les quêtes puissent comporter des récompenses fixes, d'autres butins, comme les armes et armures, peuvent être générés pour le joueur en fonction de plusieurs paramètres comme le niveau du personnage, le niveau de la quête ou bien sa performance dans la recherche etc. Souvent cela conduit à avoir des récompenses d'une qualité rare pour tenir compte du système de génération d'items avec des caractéristiques supérieures à la moyenne. Par exemple, la série Borderlands est basée sur un système de génération procédurale pour la création d'armes et d'équipements uniques[34].

De nombreux jeux de survie ou en monde ouvert utilisent la génération procédurale pour la création de monde avec une graine (seed) permettant l'utilisation d'environnements à chaque fois nouveau. Ces systèmes de génération créent de nombreux biomes (basés sur le voxel ou le pixel) avec une répartition des ressources, des objets et des créatures. Fréquemment, le joueur a la possibilité de régler certains paramètres de génération. Des exemples de ces jeux incluent Dwarf Fortress et Minecraft.

La génération procédurale est également utilisée dans les jeux avec des mondes ouvert de très grande échelle, en particulier les space opera. Elite: Dangerous, utilise les 400 milliards d'étoiles connues de la Voie lactée comme monde de base, il utilise également la génération procédurale pour simuler les planètes dans ces systèmes solaires. Infinity dispose d'une multidude de planètes générées procéduralement et entre lesquelles le joueur peut voyager par l'intermédiaire de vaisseaux spatiaux. Outerra Anteworld est un jeu vidéo utilisant dans son développement la génération procédurale avec les données du monde réel pour créer une réplique virtuelle de la planète Terre en grandeur nature. No Man's Sky dispose d'un univers contenant 18 quintillion de planètes qui ont toutes été générées avec la génération procédurale, cela à aussi été utilisé pour la génération du terrain, de la météo, de la flore, de la faune et pour un certain nombre d'espèces spatiales exotiques. Son univers est généré par l'utilisation d'un seul numéro de départ aléatoire (« seed aléatoire ») à son moteur de jeu, assurant que la même planète puisse être visitée par les joueurs juste avec l'information de son emplacement[35],[36].

Certains jeux comportant un mode coopératif utilisent la génération procédurale pour élaborer des expériences uniques pour les joueurs car ils complètent le jeu. La série Left 4 Dead, situé dans un monde post-apocalyptique, utilise un directeur AI, une intelligence artificielle qui surveille le comportement des joueurs et permet de créer une expérience dynamique pour garder les joueurs alerte. En effet celui-ci agit, en envoyant des zombies lorsqu'il détecte une situation de confiance du joueur, ordonnant aux zombies d'attaquer les joueurs de niveau intermédiaire et de modifier leur itinéraires possibles. Des concepts similaires sont utilisés pour des jeux comme 'Warhammer: End Times, Vermintide et Evolve[37].

Films[modifier | modifier le code]

la génération procédurale est souvent utilisé dans le cinéma pour créer rapidement des espaces visuellement intéressants et précis. Ceci est vrai pour une grande variété d'applications. L'application la plus répandue c'est celle de l' « usine imparfaite » où les artistes peuvent rapidement générer un grand nombre d'objets similaires. Ce processus ce fait pour un souci de réalisme, dans la vraie vie, deux objets ne sont jamais exactement semblables. Par exemple, un artiste peut modéliser un produit pour une tablette de magasin d'épicerie, puis il peut générer — à l'aide de cette méthode — un grand nombre d'objets similaires pour remplir l'étagère.

MASSIVE est une animation haut de gamme par ordinateur et un logiciel d'intelligence artificielle utilisée pour générer une foultitude d'effets visuels pour le cinéma et la télévision. Il a été développé pour générer automatiquement les soldats — dans une bataille qui en comptaient des centaines de milliers — dans Le Seigneur des Anneaux[réf. nécessaire].

Le Coherent noise) peut être extrêmement important dans flux de travail procédural pour film. Le Simplex noise est souvent plus rapide avec moins d'artefacts, mais une fonction plus ancienne bruit de Perlin peut aussi être utilisé. Coherent noise, dans ce cas, se réfère à une fonction qui génère de pseudo-aléatoire en n dimensions.

Développement de la technologie au cinéma[modifier | modifier le code]

Exemple de génération procédurale[modifier | modifier le code]

L'un des premiers jeu utilisant cette technologie est le jeu Élite (sorti en 1984), permettant aux joueurs d'explorer 8 galaxies contenant 256 systèmes solaires, soit 2500 mondes, le tout tenant sur une disquette de 20 ko de mémoire[38]. Ce jeu utilise des formules mathématiques précises comme la suite de Fibonacci (créée par le mathématiciens Leonardo Fibonacci en 1202)[39],[40]. Dans le jeu Minecraft, la génération procédurale est un des éléments au cœur du processus de developpement de Notch pour son jeu, en ajoutant au fur et a mesure une meilleur cohérence a l'univers, et une plus grand diversité (création de biomes, de temps différents, de rivières, de villages,de donjons etc.)[41].

Application de la génération procédurale[modifier | modifier le code]

Dans le jeu vidéo[modifier | modifier le code]

Ressources de base[modifier | modifier le code]

Base Mathématique[modifier | modifier le code]

  • La génération procédurale utilise un large nombre d'outils mathématiques dans le processus de création de contenu de la génération procédural notamment le Diagramme de Voronoï (qui y détermine a une étape la zone d'influence d'un point), il peut être utilisé pour y mettre des valeur de vitesse (représentant la pression) pour y simuler les montagnes[2],[45].
  • La suite de Fibonacci (créée par le mathématiciens Leonardo Fibonacci en 1202) est utilisé pour la création de nombre aléatoire (faussement aléatoire).
  • Les fractales avec le mouvement Brownien fractionnaire peut permettre de crée des cartes de hauteur (heightmap)[2] pour les rivières et montagnes par exemple (érosion).

Base Technique[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. a, b, c et d http://indius.org/dossiers/generation-procedurale-jeu-video/
  2. a, b et c http://www.di.ens.fr/~bouillar/Stages/Rapports/rapport_Michel.pdf École Normale Supérieure, Département d'Informatique, Rapport de Stage L3 - Génération procédurale de paysages à partir de cartes vectorielles - Intégration d'une mini-simulation géologique par Élie MICHEL le 29 Août 2014
  3. https://tel.archives-ouvertes.fr/tel-01196438/document
  4. a, b et c http://indius.org/dossiers/generation-procedurale-jeu-video/
  5. a, b, c, d, e, f, g, h, i, j, k, l, m et n http://liris.cnrs.fr/~apeytavi/these/Thesis.pdf https://tel.archives-ouvertes.fr/tel-00841373/document Thèse Université de Lyon - Génération procédurale de monde par Adrien PEYTAVIE de 2010
  6. Fournier, A., Fussell, D., & Carpenter, L. (1982). Computer rendering of stochastic models. Communications of the ACM, 25(6), 371-384
  7. Musgrave, F. K., Kolb, C. E., & Mace, R. S. (1989, July). The synthesis and rendering of eroded fractal terrains. In ACM SIGGRAPH Computer Graphics (Vol. 23, No. 3, pp. 41-50). ACM.
  8. B. B. Mandelbrot. The Fractal Geometry of Nature. W. H. Freeman & Co Ltd, 1982.
  9. Pytel, A., & Mann, S. (2013). Self-organized approach to modeling hydraulic erosion features. Computers & Graphics, 37(4), 280-292
  10. Hnaidi, H., Guérin, E., Akkouche, S., Peytavie, A., & Galin, E. (2010, September). Feature basedterrain generation using diffusion equation. In Computer Graphics Forum (Vol. 29, No. 7, pp. 2179-2186). Blackwell Publishing Ltd.
  11. Beneš, B., & Forsbach, R. (2002). Visual simulation of hydraulic erosion
  12. Krištof, P., Beneš, B., Křivánek, J., & Št'ava, O. (2009, April). Hydraulic erosion using smoothed particle hydrodynamics. In Computer Graphics Forum (Vol. 28, No. 2, pp. 219-228). Blackwell Publishing Ltd.
  13. G. S. P. Miller. The definition and rendering of terrain maps. In Proceedings of ACM SIGGRAPH, pages 39–48, 1986
  14. A. Fournier, D. Fussell, and L. Carpenter. Computer rendering of stochastic models. Communication of the ACM, 25(6) :371–384, 1982.
  15. Beneš, B., & Forsbach, R. (2001). Layered data representation for visual simulation of terrain erosion. In Computer Graphics, Spring Conference on, 2001. (pp. 80-86). IEEE.
  16. Št'ava, O., Beneš, B., Brisbin, M., & Křivánek, J. (2008, July). Interactive terrain modeling using hydraulic erosion. In Proceedings of the 2008 ACM SIGGRAPH/Eurographics Symposium on Computer Animation (pp. 201-210). Eurographics Association.
  17. Natali, M., Lidal, E. M., Viola, I., & Patel, D. (2013). Modeling terrains and subsurface geology. Proceedings of EuroGraphics 2013 State of the Art Reports (STARs), 155-173.
  18. Smelik, R. M., De Kraker, K. J., Tutenel, T., Bidarra, R., & Groenewegen, S. A. (2009, June). A survey of procedural methods for terrain modelling. In Proceedings of the CASA Workshop on 3D Advanced Media In Gaming And Simulation (3AMIGAS) (pp. 25-34).
  19. a, b, c et d https://tel.archives-ouvertes.fr/tel-00843000/document Nicolas Marechal. Génération de contenu graphique - Université Claude Bernard - Lyon I, 2010.
  20. Stefan Bornhofen and Claude Lattaud. Competition and evolution in virtual plant communities : a new modeling approach. Natural Computing : an international journal, 8(2) :349 385, 2009.
  21. Bedrich Bene² and Erik Uriel Millán. Virtual climbing plants competing for space. In Proceedings of the Computer Animation, page 33, 2002.
  22. N. Greene. Voxel space automata : modeling with stochastic growth processes in voxel space. In Proceedings of the 16th annual conference on Computer graphics and interactive techniques, pages 175 184, 1989.
  23. Wojtek Palubicki. Fuzzy Plant Modeling with OpenGL- Novel Approaches in Simulating Phototropism and Environmental Conditions. 2007.
  24. T. Ijiri, S. Owada, M. Okabe, and T. Igarashi. Floral diagrams and inflorescences : interactive flower modeling using botanical structural constraints. ACM Transaction on Graphics, 24(3) :720–726, 2005.
  25. T. Ijiri, S. Owada, and T. Igarashi. Seamless integration of initial sketching and subsequent detail editing in flower modeling. Computer Graphics Forum, 25(3) :617–624, 2006.
  26. http://www.gamasutra.com/blogs/MatthewKlingensmith/20130811/198049/
  27. J. M. Cohen, J. F. Hughes, and R. C. Zeleznik. Harold : a world made of drawings. In Proceedings of the 1st international symposium on Nonphotorealistic animation and rendering, pages 83 90, 2000.
  28. N. Watanabe and T. Igarashi. A sketching interface for terrain modeling. In ACM SIGGRAPH Posters, page 73, 2004.
  29. http://www.gamasutra.com/view/feature/174311
  30. (en) Tom Hatfield, « Rise Of The Roguelikes: A Genre Evolves », Gamespy,‎ (consulté le 24 avril 2013)
  31. (en) Maher, Jimmy, « Akalabeth », The Digital Antiquarian,‎ (consulté le 9 juillet 2014)
  32. (en) Francis Spufford, « Masters of their universe », Guardian,‎ (lire en ligne)
  33. (en) Richard Moss, « 7 uses of procedural generation that all developers should study », Gamasutra,‎ (consulté le 1er janvier 2016)
  34. (en) Ryan Kuo, « Why Borderlands 2 Has the Most Stylish Guns in Gaming », Wall Street Journal,‎ (consulté le 21 avril 2016)
  35. (en) Raffi Khatchadourian, « World without end : creating a full-scale digital cosmos », The New Yorker, vol. 91, no 13,‎ , p. 48–57 (lire en ligne)
  36. (en) Wilson, « How 4 Designers Built A Game With 18.4 Quintillion Unique Planets », Fast Company,‎ (consulté le 9 août 2015)
  37. (en) Mike Rose, « 5 tips for using procedurally-generated content in your game », Gamasutra,‎ (consulté le 21 avril 2016)
  38. http://www.numerama.com/sciences/133517-la-generation-procedurale-ou-comment-le-jeu-video-devient-infini.html
  39. https://www.youtube.com/watch?v=t4V4e-8TGnc
  40. http://www.numerama.com/sciences/133517-la-generation-procedurale-ou-comment-le-jeu-video-devient-infini.html
  41. http://notch.tumblr.com/post/3746989361/terrain-generation-part-1
  42. (en) « VANISH », sur VANISH Horror Game
  43. (en) « Team Junkfish Monstrum », sur teamjunkfish.com
  44. (en) « Monstrum », sur giantbomb.com
  45. http://www.gamasutra.com/blogs/MatthewKlingensmith/20130811/198049/
  46. Manuel Gamito and F. Kento Musgrave. Procedural landscapes with overhangs. In 10th Portuguese Computer Graphics Meeting, pages 33-42, 2001.

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Domaine d'application procédurale
Technique prodédurale

Liens externes[modifier | modifier le code]

Bibliographie[modifier | modifier le code]