LOD dans les jeux modernes [fermé]

14

Je travaille actuellement sur ma thèse de maîtrise sur le LOD et la simplification du maillage, et j'ai lu de nombreux articles et articles académiques sur le sujet. Cependant, je ne trouve pas suffisamment d'informations sur la façon dont LOD est utilisé dans les jeux modernes. Je sais que de nombreux jeux utilisent une sorte de LOD dynamique pour le terrain, mais qu'en est-il ailleurs?

Le niveau de détail des graphiques 3D, par exemple, souligne que le niveau de détail discret (où les artistes préparent plusieurs modèles à l'avance) est largement utilisé en raison des frais généraux de performance du niveau de détail continu. Ce livre a cependant été publié en 2002, et je me demande si les choses sont différentes maintenant. Il y a eu quelques recherches sur la réalisation de LOD dynamique en utilisant le shader de géométrie ( cet article par exemple, avec son implémentation dans ShaderX6), serait-il utilisé dans un jeu moderne?

Pour résumer, ma question concerne l'état de LOD dans les jeux vidéo modernes, quels algorithmes sont utilisés et pourquoi? En particulier, la simplification continue dépendante de la vue est-elle utilisée ou le temps d'exécution rend-il l'utilisation de modèles discrets avec un mélange et des imposteurs appropriés une solution plus attrayante? Si des modèles discrets sont utilisés, un algorithme est-il utilisé (par exemple le regroupement des vertex ) pour les générer hors ligne, les artistes créent-ils manuellement les modèles, ou peut-être une combinaison des deux méthodes est-elle utilisée?

Firas Assaad
la source
Je suggère d'ajouter une balise de `` rendu '', car vous êtes uniquement intéressé par le LOD graphique, tandis que le LOD peut également être appliqué à la physique, à l'IA et à tout autre domaine où l'importance peut être réduite en fonction de la distance à quelque chose ou aux performances.
Kaj
@Kaj: Bon point. Je parle en particulier de la simplification du maillage polygonal.
Firas Assaad
Oh, il semble que nous ayons édité en même temps (j'ai oublié que je pouvais ajouter des balises, n'hésitez pas à supprimer la programmation graphique: o \). Je vais essayer de trouver une réponse plus tard - je suis en crise aujourd'hui.
Kaj

Réponses:

9

Pour l'instant, il semble que le LOD discret soit toujours préféré, mais il reste à voir si cela changera avec la prochaine génération de matériel de console.

Pour ce que ça vaut Tom Forsyth a beaucoup écrit sur le LOD continu, qu'il appelle le "maillage progressif". Game Programming Gems 2 prétend avoir l'un de ces articles, mais il semble se refléter ici .

Je crois que l'un des jeux de Tom a été livré avec un maillage progressif sur du matériel de console de dernière génération. Je ne pense pas que ce soit les frais généraux de calcul qui inquiètent les gens avec un niveau de détail continu. Je pense que c'est plus que la LOD discrète est plus facile. Le LOD continu fait un levage plus lourd dans le pipeline d'outils et n'a pas suffisamment d'avantages évidents.

Quant à la génération de LOD discrets, nous utilisons une combinaison d'outils automatiques et de création d'artiste. Le SDK DirectX est livré avec des éléments pour réduire automatiquement la géométrie et je pense que nous l'utilisons comme premier passage, si la qualité n'est pas assez bonne, les artistes génèrent les LOD discrets à la main ou en utilisant des outils supplémentaires dans Maya.

Dan Olson
la source
1
Je pense que le Messie a largement utilisé le maillage progressif, il semble qu'il y a des éons, le monde était en effervescence. Mais je suis d'accord, le lod statique semble toujours être répandu où je regarde. Il est difficile de décider algorithmiquement quels détails sont essentiels à préserver, bien que de nombreux articles SigGraph aient été écrits à ce sujet, comme je suis sûr que OP le sait. En passant, une méthode mignonne dont je me suis toujours souvenu était le chapitre `` vrai imposteur '' dans l'un des joyaux de programmation de jeu, je crois ... où ils utilisent des imposteurs avec une cartographie d'occlusion parralax. Je sais que j'ai vu plus d'articles écrits selon la même méthodologie (Fabio Policarpo peut-être?)
Kaj
1
Une autre attaque contre le LOD continu est la quantité fixe de mémoire disponible dans l'environnement de la console. Les objets discrets vous permettent de jeter les modèles haute résolution et toutes leurs textures / shaders dépendants et de les échanger dans un modèle beaucoup moins cher avec un shader simple et une texture plus petite pré-combinée. Dans les titres du monde ouvert, la lutte contre les données qui remplissent la mémoire disponible limitée est souvent plus difficile que les cycles CPU / GPU.
wkerslake
6
  • Commandant suprême (1 et 2) - ce RTS est fier du fait que vous pouvez effectuer un zoom arrière en douceur pour voir une carte du champ de bataille, puis effectuer un zoom avant sur une zone et la gérer. Il utilise très bien LOD lorsque vous effectuez un zoom avant et arrière pour éviter de surcharger la carte graphique, et à un certain niveau de zoom arrière, les mailles sont remplacées par des images 2D de quel type d'unité elles sont, de sorte que la carte du champ de bataille puisse clairement montrer où les choses se trouvent (car, évidemment, un maillage 3D à très faible détail à 20 000 pieds serait impossible à distinguer). Vous pouvez voir assez clairement l'effet de remplacement 2D dans les premières secondes de cette vidéo .
  • RollerCoaster Tycoon 3 - Semblable à Supreme Commander, ce jeu vous permet de zoomer et dézoomer à volonté, de visualiser l'ensemble de votre parc à thème ou de gérer un seul coaster. Il n'utilise pas de remplacement d'image 2D mais grâce au LOD, tout reste fluide; non seulement les gros maillages diminuent de qualité, mais les petits détails comme les gens qui se promènent disparaissent lorsque vous effectuez un zoom arrière suffisamment loin.
  • Legend of Zelda: Wind Waker - Lorsque vous naviguez en haute mer, vous pouvez regarder autour de vous et voir les îles les plus proches de vous; ce ne sont que des silhouettes des îles, cependant, et les modèles 3D réels ne se chargent pas tant que vous ne vous approchez pas d'une île. D'autres caractéristiques de l'île se chargent également, comme les ennemis et les typhons dans les eaux voisines; malheureusement, le joueur peut les voir "apparaître" à mesure qu'il se rapproche, mais dans l'ensemble, c'est une bonne technique qui empêche de surcharger le matériel Nintendo GameCube tout en donnant au joueur une impression assez précise de naviguer sur les mers et de pouvoir distinguer les îles la distance.
  • Elder Scrolls IV: Oblivion - Je n'ai pas joué à ce jeu depuis longtemps, mais je sais qu'il utilise des silhouettes ou des modèles très détaillés pour des structures historiques éloignées, telles que la haute tour d'une des villes et des montagnes lointaines .

LOD n'est pas seulement utilisé pour le terrain, mais aussi pour les silhouettes de structures éloignées et pour les vues à l'oeil d'aigle des jeux de stratégie / simulation. Je ne connais pas les détails des algorithmes, et je suppose que c'est la partie principale de votre question, mais je voulais vous donner quelques exemples de l'état du LOD dans les jeux vidéo modernes.

Ricket
la source
4

Une approche moderne du LOD continu est la tessellation matérielle. La tessellation matérielle a été implémentée dans DirectX 11 et fournit essentiellement une subdivision programmable des surfaces. Étant donné que cela est implémenté sur le GPU, il permet des détails beaucoup plus élevés que ceux fournis par la tessellation générée par le processeur. Par exemple, en subdivisant les surfaces en fonction de la distance de vue, vous pouvez fournir une forme de LOD continu.

La tessellation matérielle est une toute nouvelle fonctionnalité des GPU et il n'y a pas beaucoup de jeux qui l'utilisent. Je soupçonne que les jeux qui l'utilisent principalement comme drop-in pour le bump mapping - plutôt que de bump map dans le pixel shader, vous pouvez modifier la géométrie réelle. Il y a probablement beaucoup de place pour de nouvelles recherches sur la simplification et l'amélioration du maillage à l'aide de la tessellation matérielle.

Quelques ressources supplémentaires:

thekidder
la source
Pour l'instant, je considère qu'il s'agit davantage d'une technologie de démonstration que pratique, car vous excluez vraiment un grand nombre de publics cibles. Mais oui, les procédures pourraient être la voie à suivre sous une forme ou une autre, tout simplement pas sûr que ce soit la mise en œuvre actuelle de MS. Le temps nous le dira.
Kaj
4

Voici une suggestion alternative, juste pour la garder intéressante. La décomposition convexe peut créer des géométries approximatives assez rapidement et concerne généralement les maillages de collision. Ces mailles fonctionnent bien comme LOD et il est plausible comme une décimation en temps réel pour accélérer un pipeline.

http://codesuppository.blogspot.com/2009/11/convex-decomposition-library-now.html

découverte
la source
3

LOD consiste à essayer de maintenir la quantité de traitement constante dans le temps. Le niveau de détail hiérarchique est le seul moyen de le faire pour des scènes très détaillées. Si vous êtes assez près d'un objet, il se décompose en plusieurs objets. Ce LOD récursif fournit non seulement un mécanisme simple pour gérer les points de transition pour basculer dans de nouveaux niveaux de détail, mais permet également au nombre d'appels de rendu de rester à peu près le même, peu importe la distance ou la proximité avec vos objets univers.

C'est très bien d'avoir de super LOD pour vos maillages et textures, mais dans au moins un jeu que j'ai livré sur PS2, la façon dont j'ai gagné du temps était juste de regrouper tous les feuillages des secteurs en appels à tirage unique. Cet appel de dessin plus important a pris près de 90% de temps en moins que le rendu de toutes les variantes à faible lod, même avec des transitions de matériaux soigneusement ordonnées et un rendu par lots de chaque type de maillage. Alors, considérez LOD avec soin. Il ne s'agit pas seulement d'objets individuels. Il s'agit de toute la phase de rendu.

Richard Fabian
la source
1

Un autre sujet à considérer dans votre article (bien qu'une thèse entière puisse facilement être écrite sur ce seul sujet) est la génération de terrain procédural.

De nombreux projets modernes commencent à utiliser la génération de terrain procédurale en temps réel pour produire des étendues massives de terrain (Outerra, Infinity (INovae), pour n'en nommer que quelques-uns des plus importants). Le niveau de détail discret n'est tout simplement pas une option, en raison de la nature procédurale des maillages.

Ces terrains utilisent souvent des structures de partitionnement hiérarchiques telles que des arbres quadruples pour déterminer le niveau de détail et génèrent un maillage de la résolution appropriée en fonction de la profondeur du nœud de l'arbre.

Sans l'utilisation de continuos LOD, ces projets impressionnants seraient tout simplement impossibles.

bfishman
la source