Comment une carte de jeu 3D est stockée et gérée

9

Je suis programmeur mais je n'ai pas encore développé de jeux.

J'ai joué à divers jeux 3D et je me suis toujours demandé comment la carte du terrain était stockée et rendue.

Je sais qu'une carte d'accélération est un matériel nécessaire, mais comment exactement la vue est modifiée sans même un seul scintillement sur l'écran.

Avez-vous du matériel en ligne pour m'aider à comprendre cela.

Merci

Le roi
la source

Réponses:

9

Généralement, le monde est composé de nombreux triangles, et la carte est une liste de ces triangles et de l'emplacement dans le monde de chaque sommet. Le processus pour les dessiner est:

  • Configurez la position de la `` caméra '' - si vous étiez debout dans le monde, c'est là que vous seriez en position mondiale
  • Transformez les sommets du triangle en «espace caméra»
  • Transformez les triangles de `` l'espace de la caméra '' en `` l'espace de l'écran '' - c'est là que l'effet perpectif se produit (les choses éloignées sont plus petites). Les triangles deviennent 2D à ce stade.
  • Dessinez le triangle 2D sur un écran caché.
  • Lorsque tous les triangles ont été dessinés, montrez l'écran au joueur.

La dernière étape est généralement liée à la fréquence d'images du moniteur, de sorte que le processus d'affichage de l'écran caché se fait pendant l'intervalle V-blank - un concept dérivé des moniteurs à tube cathodique qui permettait au faisceau cathodique de se déplacer de bas à droite en haut. à gauche, cela a nécessité de modifier rapidement, mais pas instantanément, les tensions sur les bobines de déviation à l'arrière du tube à rayons.

Il s'agit d'une méthode vraiment simple. Pour obtenir des performances élevées, vous devez ajouter des éléments tels que l'élimination de la surface cachée, l'occulsion, la détermination de l'ensemble visible, etc. Il y a beaucoup d'algorithmes impliqués pour décider quoi dessiner.

De plus, j'ai dit que le monde était composé de triangles, mais qu'il n'était peut-être pas stocké sur le disque de cette façon. Souvent, les triangles dessinés à l'écran sont définis au moment de l'exécution à partir de primitives d'ordre supérieur, telles que les cartes de hauteur, les splines, la tessalisation, les primitives géométriques (par exemple une sphère, une boîte, etc.), etc.

Le matériel dédié n'est pas nécessaire - de nombreux premiers jeux 3D ont tout fait en logiciel (même sur les processeurs 8 bits sans FPU). Cela le rend plus rapide et plus facile à faire.

Une question si simple. Pas de réponse facile.

Skizz
la source
0

La vue est modifiée sans scintillement à l'écran en raison de la double mise en mémoire tampon, Traitez toutes les données sur la mémoire tampon arrière, puis lorsque le traitement est terminé, vous les échangez sur la mémoire tampon avant.

Slrs
la source