Excellent jeu Vous jouez au dernier Call of Mario: Deathduty Battleyard sur votre PC. Vous regardez un magnifique moniteur à écran ultra-large 4K, admirant les paysages époustouflants et les détails complexes. Vous êtes-vous déjà demandé comment ces graphiques sont arrivés là? Vous vous demandez ce que fait votre PC pour faire cela?

Bienvenue dans notre 101 sur la création de jeux 3D: Un guide du débutant sur la façon de créer un cadre de base de la bonté du jeu.

Des centaines de nouveaux jeux sortent chaque année dans le monde - certains conçus pour les téléphones mobiles, certains pour les consoles, certains pour les PC. Les formats et les genres couverts sont aussi étendus, mais il y a un genre découvert par les développeurs de jeux probablement plus que tout autre genre: la 3D. La première discussion du premier et un aperçu rapide des discussions Records du monde Guinness base de données génère diverses réponses. Nous aurions pu choisir Knight Lore by Ultimate, sorti en 1984, comme un bon début, mais les images créées dans ce jeu étaient strictement 2D - aucune partie des informations utilisées n'est vraiment 3D.

Donc, si nous voulons comprendre comment le jeu 3D d'aujourd'hui crée ses images, nous avons besoin d'un exemple de départ différent: Course gagnante Faire quoi que ce soit en 3 dimensions dès le départ a été le premier du genre, en utilisant des techniques qui ne sont peut-être pas à un million de kilomètres de ce qui se passe actuellement. Bien sûr, n'importe quel jeu de plus de 30 ans ne sera pas le même que le F1 2018 de Codemaster, par exemple, mais le schéma de base pour les faire tous n'est pas très différent.







Dans cet article, nous examinerons le processus suivi par un jeu 3D pour générer une image de base à afficher sur un moniteur ou un téléviseur. Nous allons commencer par la conclusion et nous demander: "Qu'est-ce que je regarde?"

À partir de là, nous analyserons chaque étape prise pour obtenir l'image que nous voyons. En cours de route, nous aborderons les logiciels et les instructions telles que les sommets et les pixels, les textures et les transitions, les tampons et l'ombrage. Nous verrons également où la carte graphique s'intègre à tous ces éléments et pourquoi elle est nécessaire. Avec ce 101 vous allez regarder vos jeux et votre PC sous un nouveau jour et apprécier ces graphismes avec un peu plus d'admiration.




Dimensions du cadre: pixels et couleurs

Commençons un jeu 3D, donc nous avons quelque chose pour commencer et nous utiliserons probablement la version 2007 de Crytek sans autre raison que le jeu le plus précieux de tous les temps. crysis. Dans l'image ci-dessous, nous recherchons l'image de la caméra du moniteur montrant le jeu.




Cette image généralement Cadremais que regardons-nous exactement? Eh bien, en utilisant un appareil photo à objectif macro au lieu d'une capture d'écran dans le jeu, CSI: NOUVELLES TECHNIQUES et demandez à quelqu'un de l'améliorer!




Malheureusement, l'éblouissement de l'écran et l'éclairage de fond dépassent le détail de l'image, mais si nous l'améliorons un peu plus ...




Nous pouvons voir que le cadre sur le moniteur est constitué d'une grille d'éléments colorés individuels, et si nous regardons de très près, les blocs eux-mêmes se composent de 3 petits bits. Un à trois pixels (abréviation pour élément d'image) et la plupart des moniteurs les peignent en utilisant trois couleurs: rouge, vert et bleu (aka RVB). Pour chaque nouvelle image affichée par le moniteur, une liste de milliers, sinon de millions de valeurs RVB doit être préparée et stockée dans un espace mémoire accessible au moniteur. Ces types de blocs de mémoire sont appelés tampons, naturellement, au moniteur tampon de trame.

C'est en fait le dernier point avec lequel nous avons commencé, alors maintenant nous devons aller au début et suivre le processus pour y arriver. Nom plâtre il est souvent utilisé pour le décrire, mais la vérité est qu'il s'agit d'une longue liste d'étapes liées mais distinctes qui sont assez différentes les unes des autres en termes de ce qu'elles sont. Pensez-y comme être un chef et préparer un repas digne d'un restaurant étoilé au guide Michelin: le résultat est une assiette de plats délicieux, mais il y a beaucoup à faire avant d'entrer. quelques ingrédients de base.

Blocs de construction nécessaires: modèles et textures

Les éléments de base de tout jeu 3D sont les éléments visuels qui rempliront le monde à créer. Les films, les émissions de télévision, les productions théâtrales et autres ont tous besoin d'acteurs, de costumes, d'accessoires, d'arrière-plans, de lumières - la liste est assez longue. Les jeux 3D ne sont pas différents et tout ce qui est vu dans un cadre créé sera conçu par des artistes et des modélisateurs. Pour vous aider à visualiser cela, passons à la vieille école et jetons un coup d'œil à un modèle de l'identité Quake II de Software:

Sorti il ​​y a 20 ans, Quake II était une centrale technologique de tournée, comme n'importe quel jeu 3D de vingt ans, bien qu'il soit juste de dire que les modèles avaient l'air un peu en bloc. Cependant, cela permet de comprendre plus facilement pourquoi cette entité a été créée.

Dans la première image, nous pouvons voir que l'ami trapu forme des triangles connectés - dont chacun est appelé sommets coin ou le pic pour l'un d'entre eux. Chaque sommet agit comme un point dans l'espace, il a donc au moins 3 nombres pour le décrire, c'est-à-dire coordonnées x, y, z. Cependant, un jeu 3D a besoin de plus que cela, et chaque sommet aura une valeur supplémentaire, telle que la couleur du sommet, la direction dans laquelle il fait face (oui, les points ne peuvent réellement regarder nulle part ... il suffit de rouler avec!), Comme c'est brillant, translucide. si oui ou non, etc.

Un certain ensemble de valeurs que les sommets ont toujours, cartes de texture. Il s'agit d'une image des `` vêtements '' que le modèle devrait porter, mais comme il s'agit d'une image simple, la carte devrait inclure une vue pour toutes les directions possibles dans lesquelles nous pouvons regarder le modèle. Dans notre exemple Quake II, nous pouvons voir qu'il s'agit d'une approche assez simple: avant, arrière et côtés (bras). Un jeu 3D moderne aura en fait plusieurs cartes de texture pour les modèles, chacune pleine de détails; Certaines des cartes ne ressemblent pas à des matériaux ou à des éléments, mais fournissent plutôt des informations sur la manière dont la lumière rebondira sur la surface. Chaque sommet contiendra un ensemble de coordonnées dans la carte de texture associée au modèle afin qu'il puisse être «joint» au sommet - cela signifie que si le sommet est déplacé, la texture se déplace avec lui.

Ainsi, dans un monde rendu en 3D, tout ce qui est vu commencera par des points d'angle et une collection de cartes de texture. Ils sont rassemblés dans des tampons de mémoire liés ensemble - un pare-chocs d'angle contient des informations sur les coins; une tampon de répertoire il nous montre comment les coins sont reliés pour former des formes; une tampon de soudage contient des tissus et des parties de mémoire réservés pour une utilisation ultérieure dans le processus de rendu; une tampon de commande Liste des instructions sur ce qu'il faut faire avec chacun d'eux.

Cela crée le cadre nécessaire qui sera utilisé pour créer la grille finale de pixels colorés. Il peut y avoir d'énormes quantités de données pour certains jeux car il serait très lent de reconstruire les tampons pour chaque nouvelle image. Les jeux stockent toutes les informations nécessaires pour créer tout le monde potentiellement visible, le stocker dans des tampons ou pour couvrir une grande variété de vues, puis le mettre à jour si nécessaire. Par exemple, un jeu de course comme F1 2018 aura tout dans une grande collection de pare-chocs, tandis qu'un jeu en monde ouvert comme Bethesda's Skyrim déplacera les données dans et hors des pare-chocs au fur et à mesure que la caméra se déplacera dans le monde entier.

Montage de la scène: Peak stage

Avec toutes les informations visuelles à portée de main, un jeu commencera alors le traitement pour l'affichage visuel. Pour commencer, la scène commence dans une position par défaut, tous les modèles, lumières, etc. Ce sera le carré «zéro» - c'est le point de départ des graphiques et n'est généralement pas affiché, mais simplement rendu pour que les choses continuent. Pour vous aider à montrer ce qui se passe lors de la phase initiale du processus de construction, Site Web de rendu en temps réel. Ouvrons-le avec un «jeu» très basique: un cuboïde au sol.

Cette forme particulière contient 8 sommets, chacun expliqué par une liste de nombres, et ils forment un motif avec 12 triangles entre les deux. Même un triangle ou un objet entier primitif. Au fur et à mesure que ces primitives sont déplacées, pivotées et mises à l'échelle, les nombres passent par une série d'opérations mathématiques et se mettent à jour en conséquence.

Notez que les numéros de points du modèle ne changent pas, seules les valeurs indiquant où se trouve le monde. L'inclusion de mathématiques pertinentes dépasse le cadre de cette 101, mais la partie importante de ce processus consiste à amener tout là où il devrait être en premier. Ensuite, il est temps de colorier.

Utilisons un modèle différent avec plus de 10 fois le nombre de coins du cuboïde précédent. Le type le plus élémentaire de rendu des couleurs prend la couleur de chaque sommet, puis calcule comment la surface de la surface change entre eux; il est connu comme interpolasyon.

Avoir plus de coins dans un modèle a non seulement une présence plus réaliste, mais donne également de meilleurs résultats avec l'interpolation des couleurs.

À ce stade de la séquence de rendu, l'effet des lumières sur la scène peut être étudié en détail; Par exemple, il peut être présenté comment les matériaux du modèle réfléchissent la lumière. Ces calculs doivent tenir compte de la position et de la direction de la caméra regardant le monde, ainsi que de la position et de la direction des lumières.

Il existe un certain nombre de techniques mathématiques différentes qui peuvent être utilisées ici; certains sont simples, certains sont très complexes. Dans l'image ci-dessus, nous pouvons voir que le processus de droite donne des résultats plus beaux et plus réalistes, mais sans surprise, il prend plus de temps à travailler.

À ce stade, il convient de noter que nous examinons des objets avec peu de coins par rapport au dernier jeu 3D. Revenez un peu en arrière dans cet article et regardez attentivement l'image de Crysis: il y a plus d'un million de triangles dans cette seule scène. Nous pouvons comprendre visuellement combien de triangles sont poussés dans un jeu moderne. Comparaison de la vallée d'Unigine (Télécharger).

Chaque objet de cette image est modélisé par des sommets connectés, ils forment donc des primitives constituées de triangles. La comparaison nous permet d'exécuter un mode filaire qui permet au programme de rendre les bords de chaque triangle avec une ligne blanche brillante.

Arbres, plantes, roches, sol, montagnes - ils sont tous constitués de triangles, chacun calculé pour son emplacement, sa direction et sa couleur, en tenant compte de la position de la source de lumière et de la position et de la direction de la caméra. Toutes les modifications apportées aux coins doivent être réinjectées dans le jeu afin qu'il sache où tout se trouve afin de créer l'image suivante; cela se fait en mettant à jour le tampon de vertex.

Étonnamment, ce n'est pas la partie la plus difficile du processus de construction, et avec le bon matériel, tout se termine en un millième de seconde! À la prochaine étape.

Perdre une dimension: pixellisation

Une fois que tous les coins ont été travaillés et que notre scène 3D est terminée où tout devrait être, le rendu passe à une étape cruciale. Jusqu'à présent, le jeu était vraiment en 3 dimensions, mais pas le cadre final - cela signifie qu'un certain nombre de changements doivent être apportés pour transformer le monde affiché d'un espace 3D contenant des milliers de points connectés en une toile 2D de pixels colorés individuels. . Pour la plupart des jeux, ce processus comprend au moins deux étapes: projection de la zone d'écran ve pixellisation.

En utilisant à nouveau l'outil de rendu Web, nous pouvons le forcer à montrer comment le volume du monde est initialement transformé en une image plate. L'emplacement de la caméra qui regarde la scène 3D est à l'extrême gauche; lignes s'étendant au-delà de ce point, frustum (comme une sorte de pyramide) et tout ce qui est en frustum pourrait potentiellement apparaître dans l'image finale. Un petit chemin vers Frustum Vue, - c'est en fait ce que le moniteur montrera, et toute une pile de mathématiques est utilisée pour projeter tout ce qui se trouve dans le frustum dans le champ de vision du point de vue de la caméra.

Bien que les graphiques dans la fenêtre apparaissent en 2D, les données à l'intérieur sont toujours en 3D, et ces informations sont ensuite utilisées pour déterminer quelles primitives seront visibles ou se chevaucheront. Cela peut être étonnamment difficile à faire car un primitif peut projeter une ombre visible dans le jeu même si elle ne peut pas être primitive. Cela s'appelle l'abolition des primitifs abattage et cela peut faire une différence significative dans la rapidité avec laquelle l'image entière est rendue. Après que tout cela soit fait - trier les primitives visibles et invisibles, regrouper les triangles en dehors de mon tronc, etc. - La dernière étape de la 3D se ferme et le cadre devient entièrement 2D grâce à la pixellisation.

L'image ci-dessus montre un exemple très simple de framework contenant une primitive. La grille de pixels du cadre est comparée aux bords de la forme ci-dessous, et là où ils se chevauchent, un pixel est marqué pour le rendu. Le résultat de l'exemple illustré n'est pas très similaire au triangle d'origine, mais nous n'utilisons pas suffisamment de pixels. Cela a entraîné le problème suivant: chevauchement, bien qu'il existe de nombreuses façons de le gérer. C'est pourquoi Solution Cela a un impact énorme sur l'apparence d'un jeu (le nombre total de pixels utilisés dans le cadre): les pixels représentent non seulement mieux la forme des primitives, mais réduisent également l'effet de l'alias indésirable.

Lorsque cette partie de la séquence de rendu est terminée, cela dépend de la plus grande: la couleur finale de tous les pixels de l'image.

Apportez les lumières: scène pixel

Nous arrivons maintenant à la plus difficile de toutes les étapes de la chaîne de rendu. Il y a des années, ce n'était rien de plus que les vêtements du modèle (également connus sous le nom de textures) étaient enroulés autour d'objets dans le monde en utilisant des informations en pixels (initialement des coins). Le problème ici est que si les textures et le cadre sont en 2D, le monde auquel ils sont attachés est plié, déplacé et remodelé au niveau supérieur. Cependant, plus de mathématiques sont utilisées pour expliquer cela, bien que les résultats puissent créer d'étranges problèmes.

Dans cette image, une simple carte de texture en damier est appliquée à une surface plane s'étendant dans la distance. Le résultat est un désordre discordant avec le surnom qui repousse sa tête laide. La solution comprend des versions plus petites des cartes de texture ( Correspondant à), utilisation répétée des données de ces tissus ( filtration), et même Plus maths, mettre tout cela ensemble. L'effet de ceci est assez évident:

C'était une tâche très difficile pour n'importe quel jeu, mais ce n'est plus parce que l'utilisation libérale d'autres effets visuels tels que les reflets et les ombres signifie que le rendu des textures devient une partie relativement petite du pixel. étape de traitement. Jouer à des jeux à des résolutions plus élevées crée une charge de travail plus élevée dans les phases de pixellisation et de pixel du processus de rendu, mais un impact relativement faible pendant la phase de pointe. Bien que la coloration initiale soit effectuée au stade de pointe en raison des lumières, des effets de lumière plus brillants peuvent également être utilisés ici.

Dans l'image ci-dessus, on ne voit plus facilement les changements de couleur entre les triangles, ce qui nous donne l'impression qu'il s'agit d'un objet lisse et homogène. Dans cet exemple particulier, la sphère se compose en fait du même nombre de triangles que nous voyons. globe vert avant cependant, la routine de coloration des pixels donne l'impression qu'elle contient beaucoup plus de triangles.

Dans de nombreux jeux, la phase de pixel doit être exécutée plusieurs fois. Par exemple, un miroir ou une surface de lac qui reflète la terre, comme vu de la caméra, doit avoir été usiné pour que la terre commence. Nom de chaque transition passer et une image peut facilement contenir 4 transitions ou plus pour produire l'image finale.

Parfois, la scène de la colline doit également être redessinée afin de redessiner le monde sous un angle différent et d'utiliser cette vue dans le cadre de la scène affichée par le joueur. Pour ça Fixer des objectifs - tampons qui agissent comme le référentiel final de l'image mais peuvent être utilisés comme texture dans une autre passe.

Lisez la suite pour mieux comprendre la complexité potentielle de la phase de pixel Analyse du cadre par Adrian Courrèges et dans ce jeu, vous serez surpris par les étapes incroyables nécessaires pour créer une seule image.

Tout ce travail sur le cadre doit être sauvegardé dans un tampon en tant que résultat fini ou en tant que magasin temporaire, et en général, un jeu aura au moins deux tampons en déplacement pour la vue finale: l'un "fonctionnera" et l'autre attend que le moniteur accède à l'écran ou en phase d'affichage. Il doit toujours y avoir un tampon de trame à créer, donc quand ils sont tous pleins, une action doit être entreprise pour déplacer les choses et démarrer un nouveau tampon. La dernière partie de la signature d'un cadre est une simple commande (par exemple. disponible) et cependant, les derniers tampons d'image sont modifiés, le moniteur reçoit la dernière image rendue et l'image suivante peut être démarrée.

Dans cette image, d'Ubisoft Assassin's Creed Odysseynous examinons le contenu d'un tampon d'image fini. Pensez-y comme une feuille de calcul avec des lignes et des colonnes ne contenant que des nombres. Ces valeurs sont envoyées au moniteur ou au téléviseur sous forme de signal électrique et la couleur des pixels de l'écran est remplacée par les valeurs requises. CSI: TECH NEWS Parce que nous ne pouvons pas le faire avec nos yeux, nous voyons une image plate et continue, mais notre cerveau profondeur - donc 3D. C'est un cadre de bonté de jeu, mais avec tant de choses qui se passent dans les coulisses (désolé jeu de mots), cela vaut la peine de voir comment les programmeurs gèrent tout cela.

Gérer le processus: API et instructions

Comprendre comment un jeu va exécuter et gérer tous ces exercices (mathématiques, coins, textures, lumières, pare-chocs, nommez-le…) est une tâche gigantesque. Heureusement, il existe une aide sous la forme de quoi dire Interface de programmation d'applications ou API pour faire court.

Les API de création réduisent la complexité globale en fournissant des bibliothèques de structures, de règles et de code qui permettent aux programmeurs d'utiliser des instructions simplifiées indépendamment de tout matériel impliqué. Choisissez n'importe quel jeu 3D sorti au cours des 3 dernières années pour PC et il sera créé à l'aide de l'une des trois API célèbres: Direct3D, OpenGL ou Vulkan. Il y en a d'autres, notamment dans la scène mobile, mais nous nous en tiendrons à ceux pour cet article.

Bien qu'il existe des différences en termes d'instructions et d'instructions d'opérations (par exemple, un bloc de code pour manipuler les pixels dans DirectX, pixel shader; Volcan partie shader), le résultat final du cadre créé ne doit pas être différent ou plus différent.

Il y aura une différence où tout le matériel utilisé pour faire le rendu descendra. En effet, les instructions données à l'aide de l'API pour effectuer le matériel doivent être traduites - cela est géré par les pilotes du périphérique, et les fabricants de matériel doivent consacrer beaucoup de ressources et de temps pour s'assurer que les pilotes effectuent la conversion aussi rapidement et précisément que possible. possible.

Utilisons une version bêta antérieure du jeu 2014 de Croteam Principe de Talos Pour illustrer cela, puisqu'il prend en charge les 3 API que nous avons mentionnées. Pour maximiser les différences que la combinaison du pilote et de l'interface peut parfois produire, nous avons exécuté le benchmark intégré standard à une résolution de 1080p avec des paramètres visuels maximaux. L'ordinateur utilisé fonctionnait aux heures par défaut et disposait d'un processeur Intel Core i7-9700K, Nvidia Titan X (Pascal) et 32 ​​Go de RAM DDR4.

  • DirectX 9 = 188,4 ips en moyenne
  • DirectX 11 = 202,3 ips en moyenne
  • OpenGL = 87,9 ips en moyenne
  • Vulkan = 189,4 ips en moyenne

Une analyse complète des inférences derrière ces chiffres n'entre pas dans le cadre de cet article, et cela ne signifie certainement pas qu'une API est `` meilleure '' qu'une autre (il s'agit d'une version bêta, rappelez-vous), donc `` la programmation pour différentes API présente divers défis et est actuellement souligne qu'il y aura toujours un certain changement dans les performances. En règle générale, les développeurs de jeux choisiront l'API avec laquelle ils travaillent le plus et optimiseront leur code sur cette base. Parfois le mot moteur Il est utilisé pour décrire le code de rendu, mais techniquement, un moteur est le package complet qui gère tous les aspects d'un jeu, pas seulement ses graphismes.

Créer un programme complet à partir de zéro pour créer des jeux 3D n'est pas une chose simple, tant de jeux aujourd'hui licencient des systèmes complets d'autres développeurs (par exemple. Moteur irréel); Vous pouvez vous faire une idée de l'échelle en consultant le moteur open source de. tremblement de terre id Software et parcourez le fichier gl_draw.c - cet élément unique contient des instructions sur les différentes constructions effectuées dans le jeu et ne représente qu'une petite partie de l'ensemble du moteur. Le tremblement de terre a plus de 20 ans et tout le jeu (y compris tous les éléments, sons, musique, etc.) sa taille est de 55 Mo; contrairement à Ubisoft Far Cry 5 montant seulement shaders utilisés par le jeu sur un fichier de 62 Mo.

Le temps, c'est tout: utiliser le bon matériel

Tout ce que nous avons décrit jusqu'à présent peut être calculé et traité par le processeur de n'importe quel système informatique; Les processeurs x86-64 modernes prennent facilement en charge toutes les mathématiques nécessaires, et il y a des parties dédiées à ces choses. Cependant, faire ce travail pour créer un cadre nécessite beaucoup de calculs répétitifs et nécessite une quantité importante de traitement parallèle. Les processeurs ne sont pas conçus pour cela car ils sont trop génériques de par leur conception. Les puces spéciales pour ce type de travail sont bien sûr appelées GPU'lar (unités de traitement graphique) et les mathématiques telles que DirectX, OpenGL et Vulkan sont conçues pour faire les calculs nécessaires d'une manière très rapide et largement parallèle.

Une façon de le démontrer est d'utiliser un benchmark qui nous permet de créer une trame à l'aide d'un CPU, puis d'utiliser du matériel personnalisé. Nous utiliserons V-beam ADVANCED par Chaos Group; Cet outil effectue en fait le lancer de rayons plutôt que le rendu que nous examinons dans cet article, mais la plupart des bourrages numériques nécessitent des aspects matériels similaires.

Pour comprendre la différence entre ce qu'un CPU peut faire et ce que le bon matériel spécialement conçu peut accomplir, nous avons exécuté la comparaison de GPU V-ray en 3 modes: CPU uniquement, GPU uniquement, puis CPU + GPU. Les résultats sont assez différents:

  • Test CPU uniquement = 53 maths
  • Test GPU uniquement = 251 maths
  • Test CPU + GPU = 299 mpath

Puisqu'une différence de 5x en sortie n'est pas anodine, nous pouvons ignorer les unités de mesure dans cette comparaison. Mais ce n'est pas un test très semblable à un jeu, alors essayons autre chose et allons à la vieille école. 3DMark03 de Futuremark. En appliquant le simple test Wings of Fury, nous pouvons forcer à faire tous les shaders de coin (c'est-à-dire toutes les routines pour déplacer et créer des triangles de couleur) à l'aide du processeur.

Le résultat ne devrait pas vraiment être une surprise, mais il est toujours beaucoup plus prononcé que ce que nous avons vu dans le test V-ray:

  • Shaders de crête du processeur = 77 ips en moyenne
  • Shaders d'angle GPU = 1580 ips en moyenne

Alors que le processeur effectuait tous les calculs de sommets, il fallait en moyenne 13 millisecondes pour afficher et afficher chaque image; Pousser ces calculs vers le GPU réduit ce temps à 0,6 millisecondes. En d'autres termes, c'était 20 fois plus rapide.

Si nous essayons le test le plus complexe en comparaison, Dame Nature, la différence est encore plus prononcée. Avec les shaders de pics rendus par le processeur, le résultat moyen était de 3,1 ips! Apportez le GPU et la fréquence d'images moyenne passe à 1388 fps: environ 450 fois plus rapide. Notez que maintenant 3DMark03 a 16 ans et que le test ne gère que les coins du CPU - la pixellisation et la phase de pixel sont toujours effectuées via le GPU. Et si c'était moderne et que tout était fait dans le logiciel?

Essayons Vallée de l'Unigine outil d'analyse comparative à nouveau - relativement nouveau, rendant des graphismes très similaires à ceux vus dans des jeux comme Far Cry 5 d'Ubisoft; En plus du bus GPU DirectX 11 standard, il fournit également un moteur de rendu logiciel complet. Les résultats ne nécessitent pas beaucoup d'analyse, mais l'exécution de la version de qualité la plus basse du test DirectX 11 sur le GPU a fait en moyenne 196 images par seconde. Une version de logiciel? Mis à part quelques plantages, le puissant ordinateur de test dessine en moyenne 0,1 image par seconde - presque deux mille fois plus lent.

La raison d'une telle différence réside dans la forme des mathématiques et des données utilisées pour le rendu 3D. Dans un CPU, unités à virgule flottante (FPU) effectuent les calculs dans chaque noyau; Le modèle i7-9700K du PC de test dispose de 8 cœurs avec chacun deux FPU. Bien que les unités de Titan X soient de conception différente, les deux peuvent faire les mêmes calculs de base dans le même format de données. Ce GPU particulier dispose de plus de 3500 unités pour effectuer un calcul comparable, et bien que l'horloge ne soit pas affichée à proximité du même emplacement que le CPU (1,5 GHz contre 4,7 GHz), le GPU dépasse le processeur central par le nombre d'unités transparentes.

Bien que la Titan X ne soit pas une carte graphique générique, même un modèle économique surpasse n'importe quel processeur, de sorte que tous les jeux 3D et API sont conçus pour du matériel dédié et dédié. N'hésitez pas à télécharger V-ray, 3DMark ou tout autre benchmark Unigine, et testez votre propre système - publiez les résultats sur le forum afin de voir à quel point les GPU sont bons pour le rendu des graphiques dans les jeux.

Quelques derniers mots sur notre page 101

Il s'agissait d'une brève étude de la façon dont un carré est rendu dans un jeu 3D, des points dans l'espace à un pixel de couleur sur un moniteur.

À son niveau le plus élémentaire, l'ensemble du processus n'est rien de plus que de travailler avec des nombres, car tout ordinateur le fait de toute façon. Cependant, cet article laisse beaucoup à se concentrer sur les bases (nous continuerons probablement avec des plongées plus approfondies sur la façon dont les graphiques informatiques sont créés plus tard). Nous n'avons inclus aucune des mathématiques réelles utilisées telles que l'algèbre linéaire euclidienne, la trigonométrie et le calcul différentiel effectué par les shaders racine et pixel; Nous avons expliqué comment les textures sont traitées par échantillonnage statistique et nous avons mis de côté les grands effets visuels tels que l'occlusion ambiante de l'espace de l'écran, la réduction du bruit des traces de rayons, l'affichage à plage dynamique élevée ou l'anti-crénelage temporaire.

Mais lorsque vous lancez le prochain Call of Mario: Deathduty Battleyard, vous verrez non seulement les graphismes avec un nouveau sentiment d'émerveillement, mais vous aurez envie d'en savoir plus.

Épisode 0: Rendu de jeu 3D 101
Expliquer les graphiques

Épisode 1: Fonctionnement du rendu de jeu 3D: rendu d'angle
Une plongée plus profonde dans le monde des graphismes 3D
Partie 2: Fonctionnement du rendu de jeu 3D: pixellisation et lancer de rayons
De la 3D au Flat 2D, POV et éclairage
Partie 3: Fonctionnement du rendu de jeu 3D: texturation
Bilineer, trilinéaire, filtrage anisotrope, cartographie des tubercules et plus