Paramètres des "paramètres globaux" du pilote pour cartes vidéo NVidia pour des performances maximales, sans perte de qualité. Accélération GPU

  • Traduction

Bonjour, je m'appelle Tony Albrecht, l'un des développeurs de la nouvelle Render Strike Team gérée par Sustainability Initiative en Ligue des Légendes. Mon équipe a été chargée d'apporter des améliorations au moteur de rendu Mdr, et nous nous sommes mis au travail avec plaisir. Dans cet article, je vais vous expliquer comment fonctionne le moteur Maintenant. J'espère que cela constituera une bonne base sur laquelle je pourrai ensuite parler des changements que nous apportons. Cet article sera pour moi une bonne excuse pour examiner moi-même le processus de rendu étape par étape afin que nous, en tant qu'équipe, comprenions parfaitement ce qui se passe sous le capot.

Je vais vous expliquer en détail comment Mdr construit et affiche chaque image du jeu (n'oubliez pas que sur les machines les plus puissantes, cela se produit à plus de 100 par seconde). L'histoire sera essentiellement technique, mais j'espère qu'elle sera facile à suivre, même pour ceux qui n'ont aucune expérience en matière de rendu. Pour plus de clarté, je sauterai certains points difficiles, mais si vous souhaitez en savoir plus, écrivez-le dans les commentaires [de l'article original].

Tout d’abord, je vais parler un peu des bibliothèques graphiques dont nous disposons. Ligue devrait fonctionner aussi efficacement que possible sur un large éventail de plates-formes. En fait, Windows XP est désormais la quatrième version du système d'exploitation la plus populaire sur laquelle exécuter le jeu (seuls Windows 7, 10 et 8 sont plus populaires). Dix millions de sessions de jeu sont jouées chaque mois sur Windows XP, donc pour maintenir la rétrocompatibilité, nous devons prendre en charge DirectX 9 et n'utiliser que les fonctionnalités qu'il offre. Nous utilisons également un ensemble de fonctionnalités comparables d'OpenGL 1.5 sur les machines OS X (cela changera bientôt).

Alors commençons ! Tout d’abord, nous apprendrons comment les ordinateurs restituent réellement les images.

Rendu pour les débutants

La plupart des ordinateurs disposent d'un CPU (unité centrale de traitement) et d'un GPU (unité de traitement graphique). Le CPU effectue la logique et les calculs du jeu, et le GPU reçoit les données de triangle et de texture du CPU et les affiche à l'écran sous forme de pixels. De petits programmes GPU appelés shaders vous permettent d'influencer la manière dont le rendu est effectué. Par exemple, vous pouvez modifier la façon dont les textures sont appliquées aux triangles ou demander au GPU d'effectuer des calculs pour chaque texel de la texture. Nous pouvons donc simplement mapper une texture sur un triangle, ajouter ou multiplier plusieurs textures sur un triangle, ou effectuer des processus plus complexes tels que la texturation en relief, les calculs d'éclairage, les réflexions ou même les shaders de peau très réalistes. Tous les objets visibles sont dessinés dans un framebuffer non rendu, qui n'est affiché qu'une fois le rendu terminé.

Regardons un exemple. Voici une image de Garen, composée de 6 336 triangles qui constituent une armature métallique et un modèle solide sans texture. Ce modèle a été créé par nos artistes et exporté dans un format que le moteur Ligue peut charger et animer. (Notez que Garen a un ombrage non plat : il s'agit d'une limitation de l'application utilisée pour l'étude de rendu.)

Ce modèle sans texture est non seulement ennuyeux, mais ne montre pas non plus de Garen reconnaissable. Pour donner vie à Garen, vous devez appliquer une texture.

Avant le chargement, les textures de Garen sont stockées sur le disque sous forme de fichiers DDS ou TGA, qui ressemblent eux-mêmes à une scène d'un film d'horreur. Après superposition correcte sur le modèle, on obtient ce résultat :

Nous commençons déjà à réussir. Le shader qui restitue nos maillages skinnés n'applique pas seulement la texture, mais nous y reviendrons plus tard.

C'étaient les bases, mais Mdr Il y a bien plus à restituer que le modèle et la texture du personnage. Examinons les étapes nécessaires au rendu de la scène suivante :

Étape de rendu 0 : Brouillard de guerre

Avant de commencer à dessiner des parties de la scène, vous devez d'abord préparer le brouillard de guerre et les ombres (ooh, « brouillard et ombres », comme c'est inquiétant !). Fog of War est stocké par le processeur sous la forme d'un maillage de 128 x 128, qui est ensuite mis à l'échelle en une texture carrée de 512 x 512 (vous pouvez en savoir plus à ce sujet dans l'article « Une histoire de brouillard et de guerre »). On floute ensuite cette texture et on l'applique pour assombrir les zones correspondantes du jeu et de la minicarte.


Étape de rendu 1 : ombres

Les ombres font partie intégrante d'une scène 3D. Sans eux, les objets paraîtront plats. Pour créer des ombres qui semblent être projetées par un serviteur ou un champion, nous devons les restituer à partir du point de la source de lumière. La distance entre la source de lumière et le caractère projetant l'ombre est stockée pour chaque pixel dans les composants RVB et nous définissons le composant de transparence alpha sur zéro. Cela peut être vu ci-dessous. Sur la gauche nous avons le champ RVB de hauteur d'ombre de la tour assiégée, des sbires et de deux champions. Sur la droite, nous avons juste le composant de transparence alpha. Ces textures sont recadrées pour montrer plus clairement les détails des ombres : les serviteurs en bas, la tour et les champions en haut.


Enfin, nous estimons les ombres pour leur donner un joli bord lisse (avec la nouvelle optimisation de la fréquence d'images). Le résultat est une texture qui peut être appliquée à une géométrie statique pour créer des effets d'ombre.

Étape de rendu 2 : géométrie statique

Une fois le brouillard de guerre et les textures d'ombre prêts, nous commençons à restituer le reste de la scène dans le cadre. Tout d’abord, la géométrie statique (on l’appelle ainsi parce qu’elle est immobile). Cette géométrie combine les informations de brouillard et d'ombre avec sa texture de base, nous donnant la scène suivante :

Remarquez comment les ombres des serviteurs et le brouillard de guerre se glissent sur les bords de la scène. Le moteur de rendu Summoner's Rift ne restitue pas les ombres dynamiques pour la géométrie statique. Étant donné que la source de lumière principale ne bouge pas, nous créons les ombres des maillages statiques sur leurs textures. Cela donne aux artistes plus de contrôle sur l'apparence de la carte et permet également une augmentation. performances (ne nécessite pas de rendu d'ombre de maillage statique) Seuls les serviteurs, les tours et les champions projettent des ombres.

Étape de rendu 3 : maillages avec peau

Nous avons donc le relief et les ombres, nous pouvons donc commencer à superposer des objets par-dessus. Les serviteurs, les champions et les tours sont appliqués en premier, c'est-à-dire tous les objets dotés d'articulations mobiles qui doivent se déplacer de manière réaliste.

Chaque maillage animé se compose d'un squelette (un cadre d'os connectés hiérarchiquement) et d'un maillage de triangles (voir l'image de Garen ci-dessus). Chaque sommet de chaque triangle est lié à un à quatre os, donc lorsque vous déplacez les os, les sommets bougent avec eux comme une peau. C'est pourquoi on les appelle « mailles skinnées ». Nos artistes talentueux créent des animations et des maillages pour tous les objets, puis les exportent dans un format qui se charge dans Ligue au démarrage du jeu.


Les images ci-dessus montrent tous les os du maillage de Garen. L'image de gauche montre tous ses os (avec leurs noms). Dans l'image de droite, les lignes bleues montrent les sommets sélectionnés et les lignes jaunes montrent les connexions aux os qui contrôlent leur position.

Les shaders de maillage skinnés ne se contentent pas de dessiner des maillages skinnés dans un tampon de trame, ils restituent également leur profondeur mise à l'échelle dans un autre tampon, que nous utiliserons plus tard pour dessiner des bords. De plus, les skinning shaders calculent les réflexions de Fresnel, l'éclairage émis, calculent les réflexions et modifient l'éclairage pour le brouillard de guerre.

Étape de rendu 4 : Contours (contours)

Par défaut, le contour des maillages avec peau est activé, ce qui fournit des contours plus nets. Cela permet aux maillages skinnés de se démarquer de l’arrière-plan, en particulier dans les zones à faible contraste. Dans les images ci-dessous, le contour est désactivé (à gauche) et activé (à droite).


Les contours sont créés en prenant la profondeur mise à l'échelle de l'étape précédente et en la traitant avec l'opérateur Sobel pour extraire une arête, que nous restituons sur un maillage skinné. Cette opération est effectuée séparément pour chaque maillage. Il existe également une méthode de retour qui utilise le tampon de pochoir pour les GPU qui ne peuvent pas restituer plusieurs objets à la fois.

Étape de rendu 5 : herbe

Pour déterminer ce qu'implique le rendu de l'eau et de l'herbe, regardons une autre scène.

Voici un cadre sans eau ni herbe, juste une géométrie d'arrière-plan statique et quelques maillages skinnés.

Notez que les ombres de l'herbe font déjà partie de la texture statique du terrain et ne sont pas rendues dynamiquement. Puis on ajoute l'herbe :

Les touffes d'herbe sont en réalité des filets écorchés. Cela nous permet de les animer au fur et à mesure que les personnages les parcourent et de leur donner un bel effet d'ondulation dans la brise dans Summoner's Rift.

Étape de rendu 6 : Eau

Après l'herbe, nous rendons l'eau à l'aide de maillages translucides avec des textures d'eau légèrement animées. Ensuite, nous ajoutons des nénuphars, des ondulations autour des rochers et près du rivage, ainsi que des insectes. Tous ces objets sont animés pour donner une impression de vie à la scène.

Pour renforcer l'effet de l'eau (c'est peut-être trop subtil), j'ai gardé l'eau transparente et ignoré la géométrie en dessous. Cela a mis en évidence les effets de l’eau afin que nous puissions mieux en tenir compte dans l’analyse.

En sélectionnant toutes les ondulations comme trames « filaires », nous obtenons :

On voit désormais clairement les effets de l'eau le long des berges de la rivière, ainsi qu'autour des pierres et des nénuphars.

Lorsqu'elle est rendue et animée normalement, l'eau ressemble à ceci :

Étape de rendu 7 : décalcomanies

Après avoir déposé l'herbe et l'eau, nous ajoutons des décalcomanies - des éléments géométriques simples à texture plate qui sont posés sur le dessus du terrain, comme l'indicateur de portée de la tourelle dans l'image ci-dessous.

Étape de rendu 8 : chemins spéciaux

Nous avons ici affaire à des contours plus épais activés par des événements de souris ou des états d'activation spéciaux, comme dans le cas du contour de la tour dans la figure ci-dessous. Cela se fait à peu près de la même manière que la création des contours des maillages skinnés, mais ici nous brouillons également les contours pour les rendre plus épais. Cette mise en évidence est d’autant plus visible qu’elle se produit plus tard dans le processus de rendu et peut chevaucher des effets déjà appliqués.

Étape de rendu 9 : particules

L’étape suivante est l’une des plus importantes : les particules. J'ai déjà parlé des particules dans cet article. Chaque sort, buff et effet est un système de particules qui doit être animé et mis à jour. La scène que nous regardons n'a pas autant d'action que, disons, un combat en équipe à 5 contre 5, mais il y a encore beaucoup de particules à afficher.

Si l’on considère uniquement les particules (en désactivant toute la scène d’arrière-plan), nous obtenons l’image suivante :

En rendant les triangles qui composent les particules avec des contours violets (pas de textures, juste de la géométrie), nous obtenons ce qui suit :

Si nous dessinons les particules normalement, nous obtiendrons un aspect plus familier.

Étape de rendu 10 : effets de post-traitement

Ainsi, les parties de base de la scène sont déjà rendues et nous pouvons lui donner un peu plus de brillance. Cela se fait en deux étapes. Nous effectuons d’abord une passe d’anti-alias (AA). Il aide à lisser les bords irréguliers, rendant l’ensemble du cadre plus net. Dans une image statique, cet effet est presque imperceptible, mais il contribue grandement à éliminer le « scintillement des pixels » qui peut se produire lorsque des bords très contrastés sont déplacés sur l'écran. DANS Mdr Nous utilisons l’algorithme de lissage Fast Approximate Anti-Aliasing (FXAA).

L'image de gauche est le serviteur avant FXAA et celle de droite après l'anti-aliasing. Remarquez comment les bords de l'objet sont lissés.

Après avoir terminé la passe FXAA, nous effectuons une passe de correction gamma pour ajuster la luminosité de la scène. À titre d'optimisation, nous avons récemment ajouté un effet de désaturation d'écran de mort à la passe de correction gamma, éliminant ainsi le besoin de remplacer tous les shaders des maillages visibles actuels pour les variantes de mort qui étaient auparavant désaturées séparément.

Étape de rendu 11 : barres de dégâts et de santé

Nous restituons ensuite tous les indicateurs du jeu : barres de santé, texte de dégâts, texte à l'écran, ainsi que tous les effets non post-traitement en plein écran, tels que l'effet de dégâts dans l'image ci-dessous.

Étape de rendu 12 : interface

Et enfin, l'interface utilisateur est rendue. Tous les textes, icônes et objets sont rendus à l'écran sous forme de textures distinctes, chevauchant tout ce qui se trouve en dessous. Dans le cas que nous avons analysé, il a fallu environ 1 000 triangles pour dessiner l'interface – environ 300 pour la mini-carte et 700 pour tout le reste.

Mettre tout cela ensemble


Et nous obtenons une scène entièrement rendue. La scène entière contient environ 200 000 triangles, dont 90 000 sont utilisés pour les particules. 28 millions de pixels sont rendus en 695 appels de tirage. Pour que le jeu soit jouable, tout ce travail doit être fait le plus rapidement possible. Pour atteindre 60 images par seconde ou plus, toutes les étapes doivent être complétées en moins de 16,66 millisecondes. Et ce ne sont que des calculs côté GPU : toute la logique du jeu, le traitement des entrées du joueur, les collisions, le traitement des particules, les animations et l'envoi des commandes de rendu doivent également être exécutés dans le même laps de temps sur le CPU. Si vous jouez à 300 fps, alors tout se passe en moins de 3,3 millisecondes !

Pourquoi refactoriser le moteur de rendu ?

Vous devriez maintenant pouvoir imaginer les défis liés au rendu d'une seule image d'un jeu. Ligue. Mais ce n'est que le résultat : ce que vous voyez à l'écran est le résultat de milliers d'appels de fonctions à notre moteur de rendu. Il change et évolue constamment pour mieux répondre aux besoins de rendu modernes. Cela a conduit à la coexistence de différentes formes de code de rendu au sein de la base de code de League, car nous devons prendre en charge le nouveau matériel et prendre en charge le matériel plus ancien. Par exemple, le rendu de Summoner's Rift est légèrement différent de celui de Howling Abyss et Twisted Treeline. Il reste des parties du moteur de rendu des anciennes versions Ligue, et les pièces qui n'ont pas encore atteint leur plein potentiel. Le travail de l'équipe Render Strike consiste à prendre tout le code de rendu et à le refactoriser afin que tout le rendu soit effectué via la même interface. Si nous faisons bien notre travail, les joueurs ne remarqueront aucune différence (sauf peut-être une légère augmentation de la vitesse à différents moments). Mais une fois que nous aurons terminé, nous aurons une excellente opportunité d'apporter des modifications simultanées au rendu de tous les modes de jeu. Ajouter des tags

Question d'un des utilisateurs

Bonne journée. Est-il possible d'augmenter d'une manière ou d'une autre les performances d'une carte vidéo NVIDIA (GeForce), c'est-à-dire d'augmenter les FPS ? Ma carte vidéo est déjà assez vieille et faire tourner quelques jeux est une envie irrésistible...

Bonjour!

99 % des questions sur les performances des cartes vidéo sont posées par les joueurs. C'est dans les jeux que si la carte vidéo est obsolète et ne tient pas le coup, vous commencerez à remarquer des ralentissements, l'image se contracte, des saccades et le jeu devient très inconfortable.

Pour augmenter le nombre de FPS (c'est le nombre d'images par seconde, plus ce paramètre est élevé, mieux c'est !) produits par la carte vidéo, vous pouvez recourir à différentes méthodes : overclocker la carte vidéo, réduire la qualité graphique du jeu paramètres, définissez les paramètres optimaux pour le pilote de la carte vidéo (en tenant compte des performances). J'écrirai quelques lignes dans cet article sur le réglage fin de la carte vidéo...

Note! Vous pourriez être intéressé par les articles connexes suivants :

  • Accélération de la carte graphique AMD -
  • Accélération de la carte graphique IntelHD -
  • comment découvrir et augmenter les FPS dans les jeux - de plusieurs manières :

Ajustement du pilote de la carte vidéo NVIDIA // pour améliorer les performances

Remarque importante !

De nombreux utilisateurs interprètent et comprennent le concept "performance" complètement différent. Dans cet article, je vais m'appuyer sur le paramètre FPS (c'est ainsi que les performances sont mesurées). Plus le FPS est élevé, plus les performances sont élevées !

Pour mesurer la quantité actuelle de FPS dans votre jeu, je vous recommande d'utiliser le programme FRAPS (j'en ai parlé dans cet article :).

Définissez un bouton dans les paramètres FRAPS pour afficher le nombre de FPS - et dans le coin supérieur de l'écran, après avoir démarré le jeu, vous verrez la valeur de ce paramètre. D'ailleurs, je recommande de s'en souvenir afin de le comparer avec l'indicateur qui sera après la configuration de la carte vidéo...

Dans le coin gauche de l'écran, FRAPS affiche en chiffres jaunes le nombre d'images par seconde, c'est-à-dire FPS !

Comment se connecter au panneau de configuration NVIDIA

La première chose à faire est d'accéder au panneau de configuration et de configuration NVIDIA (GeForce). Cela peut être fait de différentes manières : par exemple, le plus simple est de cliquer avec le bouton droit n'importe où sur le bureau et de sélectionner le lien souhaité dans le menu contextuel contextuel (voir capture d'écran ci-dessous).

Comment accéder au panneau de configuration NVIDIA // GeForce - Méthode n°1 : depuis le bureau

Une autre façon est d'aller à Panneau de contrôle Windows, puis ouvrez la partition "Équipement et son" , cette section doit contenir le lien précieux (voir capture d'écran ci-dessous).

Méthode n°2 - via le panneau de configuration Windows // Panneau de configuration NVIDIA

Si vous ne disposez pas d'un tel lien vers les paramètres NVIDIA - alors il est fort probable que vous n'ayez tout simplement pas installé les pilotes. De nombreux utilisateurs, par exemple, après avoir installé Windows, ne mettent pas du tout à jour les pilotes et utilisent ceux installés par Windows lui-même... En principe, il n'y a rien de mal à cela - de nombreuses fonctions ne seront tout simplement pas disponibles, y compris fines -régler la carte vidéo.

utilitaires de recherche et de mise à jour des pilotes -

Réglage NVIDIA rapide axé sur les performances

Dans le panneau de configuration de la carte vidéo, ouvrez la section "Paramètres 3D/Ajustement des paramètres d'image" , puis réglez le curseur sur le mode "Paramètres personnalisés axés sur les performances" et déplacez-le complètement vers la gauche (voir capture d'écran indicative ci-dessous).

Enregistrez ensuite les paramètres et essayez de redémarrer le jeu. En règle générale, même un paramètre aussi simple contribue à augmenter le nombre de FPS.

Options globales

La section vous aidera à configurer votre carte vidéo de manière beaucoup plus productive "Gérer les paramètres 3D" , où tous les paramètres principaux peuvent être définis manuellement.

Pour augmenter les FPS dans les jeux, vous devez définir les éléments suivants :

  1. Filtrage anisotrope: Cela affecte grandement les performances de la carte vidéo, nous la désactivons donc.
  2. Lissage de la transparence: aide à créer de meilleures images d'eau dans les jeux (par exemple). Cela consomme beaucoup de ressources, nous le désactivons donc également. Et en général, Tout l'anticrénelage peut être désactivé !
  3. Triple mise en mémoire tampon: éteindre;
  4. Synchronisation verticale (V-Sync): ce paramètre, dans certains jeux, affecte grandement le nombre d'images produites, alors désactivez-le ;
  5. Activer des textures évolutives: Non;
  6. Limitation de l'extension: éteindre;
  7. Mode de gestion de l'énergie: définir le mode de performances maximales ;
  8. Nombre maximum de cadres pré-préparés: 1;
  9. Accélérez plusieurs écrans/GPU mixtes: Mode de performance à affichage unique ;
  10. Filtrage des textures(optimisation de l'échantillonnage anisotrope) : désactiver ;
  11. Filtrage des textures(LOD d'écart négatif) : liaison ;
  12. Filtrage des textures(qualité) : réglez le curseur sur performances ;
  13. Filtrage des textures(optimisation trilinéaire) : désactiver ;
  14. Filtrage des textures(optimisation anisotrope par filtrage) : désactiver ;
  15. Impulsion de synchronisation verticale: définir adaptatif;
  16. Optimisation du streaming: éteindre;
  17. PhysX : processeur.

Commentaire! Certains modes et paramètres répertoriés ci-dessus peuvent ne pas figurer dans vos paramètres (ou peuvent être appelés légèrement différemment (« perdus dans la traduction »)). Tout dépend du modèle de votre carte vidéo et de la version du pilote (un exemple de ce à quoi ressemble cet onglet est montré dans la capture d'écran ci-dessous).

Panneau de configuration NVIDIA : paramètres globaux

Après avoir renseigné les paramètres, n'oubliez pas de les sauvegarder ; dans certains cas, il est conseillé de redémarrer l'ordinateur, et ensuite seulement de procéder aux tests (mesure FPS). Assez souvent, les performances d'une carte vidéo augmentent considérablement : jusqu'à 15-20 % (il faut admettre que sans overclocking, il n'y avait aucune chose risquée à faire - accélérer d'un tel pourcentage n'est pas mal du tout) !

Important! L'image du jeu peut se détériorer quelque peu. Mais c'est le prix : la carte vidéo commence à fonctionner plus rapidement, économisant ainsi sur la qualité (après tout, nous avons désactivé tous les filtres et l'anti-aliasing...). Mais je tiens à souligner qu'en général, même si la situation empire, ce n'est pas au point que cela vous empêche sérieusement de passer un bon moment en jouant à votre jeu préféré...

Paramètres du logiciel

Si un jeu spécifique ralentit pour vous (et que tout le reste va bien), alors il est logique de modifier non pas les paramètres globaux, mais les paramètres d'une application particulière ! De sorte que dans les paramètres NVIDIA, il existe un onglet spécial pour cela. Ainsi, avec une qualité graphique faible, vous pourrez exécuter un jeu spécifique, et pas tous.

Les paramètres eux-mêmes dans cet onglet doivent être définis de la même manière que ceux que j'ai cités juste au-dessus.

Panneau de configuration NVIDIA : paramètres du logiciel

Pour accélérer les jeux sur votre ordinateur, je recommande également ce qui suit :

C'est tout pour moi, pour les conseils pratiques et les compléments - un merci tout particulier. Bonne chance!

02Octobre

Qu'est-ce que le rendu (rendu)

Le rendu (rendu) est le processus de création d’une image finale ou d’une séquence d’images à partir de données bidimensionnelles ou tridimensionnelles. Ce processus se déroule à l'aide de programmes informatiques et s'accompagne souvent de calculs techniques difficiles qui dépendent de la puissance de calcul de l'ordinateur ou de ses composants individuels.

Le processus de rendu est présent d’une manière ou d’une autre dans divers domaines d’activité professionnelle, qu’il s’agisse de l’industrie cinématographique, de l’industrie du jeu vidéo ou du blog vidéo. Souvent, le rendu est la dernière ou l'avant-dernière étape du travail sur un projet, après quoi le travail est considéré comme terminé ou nécessite un petit post-traitement. Il convient également de noter que souvent le rendu n'est pas le processus de rendu lui-même, mais plutôt l'étape déjà terminée de ce processus ou son résultat final.

les mots « Rendre ».

Le mot Render (Rendu) est L'anglicisme, qui est souvent traduit en russe par le mot « Visualisation”.

Qu’est-ce que le rendu 3D ?

Le plus souvent, lorsque nous parlons de rendu, nous entendons le rendu en graphisme 3D. Il convient de noter d’emblée qu’en fait, dans le rendu 3D, il n’y a pas de trois dimensions en tant que telles, comme on peut souvent le voir au cinéma avec des lunettes spéciales. Le préfixe « 3D » dans le nom nous renseigne plutôt sur la méthode de création d'un rendu, qui utilise des objets 3D créés dans des programmes informatiques pour la modélisation 3D. En termes simples, au final, nous obtenons toujours une image 2D ou une séquence d'entre elles (vidéo) qui a été créée (rendue) sur la base d'un modèle ou d'une scène en 3 dimensions.

Le rendu est l'une des étapes les plus difficiles techniquement dans le travail avec des graphiques 3D. Pour expliquer cette opération dans un langage simple, nous pouvons faire une analogie avec le travail des photographes. Pour qu'une photographie apparaisse dans toute sa splendeur, le photographe doit passer par certaines étapes techniques, par exemple le développement d'un film ou l'impression sur une imprimante. Les artistes 3D sont confrontés à peu près aux mêmes étapes techniques, qui, pour créer l'image finale, passent par l'étape de mise en place du rendu et le processus de rendu lui-même.

Construction de l'image.

Comme mentionné précédemment, le rendu est l'une des étapes techniques les plus difficiles, car lors du rendu, des calculs mathématiques complexes sont effectués par le moteur de rendu. À ce stade, le moteur traduit les données mathématiques sur la scène en image 2D finale. Le processus convertit la géométrie 3D, les textures et les données d'éclairage de la scène en informations de valeur de couleur combinées de chaque pixel d'une image 2D. En d’autres termes, le moteur, sur la base des données dont il dispose, calcule de quelle couleur chaque pixel de l’image doit être coloré pour obtenir une image complexe, belle et complète.

Principaux types de rendu :

Globalement, il existe deux grands types de rendu dont les principales différences sont la rapidité avec laquelle l'image est calculée et finalisée, ainsi que la qualité de l'image.

Qu’est-ce que le rendu en temps réel ?

Le rendu en temps réel est souvent largement utilisé dans les jeux et les graphismes interactifs, où l'image doit être rendue le plus rapidement possible et affichée instantanément sous sa forme finale sur l'écran du moniteur.

Le facteur clé de ce type de rendu étant l'interactivité de l'utilisateur, l'image doit être restituée sans délai et presque en temps réel, car il est impossible de prédire avec précision le comportement du joueur et la manière dont il interagira avec l'environnement. jeu ou scène interactive. Pour qu'une scène ou un jeu interactif se déroule sans à-coups ni lenteur, le moteur 3D doit restituer l'image à une vitesse d'au moins 20 à 25 images par seconde. Si la vitesse de rendu est inférieure à 20 images, l'utilisateur ressentira une gêne liée à la scène, observant des saccades et des mouvements lents.

Le processus d'optimisation joue un rôle important dans la création d'un rendu fluide dans les jeux et les scènes interactives. Afin d'atteindre la vitesse de rendu souhaitée, les développeurs utilisent diverses astuces pour réduire la charge sur le moteur de rendu, en essayant de réduire le nombre forcé d'erreurs de calcul. Cela inclut la réduction de la qualité des modèles et des textures 3D, ainsi que l'enregistrement de certaines informations de lumière et de relief dans des cartes de textures prédéfinies. Il convient également de noter que l'essentiel de la charge lors du calcul du rendu en temps réel incombe à un équipement graphique spécialisé (carte vidéo - GPU), ce qui permet de réduire la charge sur l'unité centrale (CPU) et de libérer son calcul. puissance pour d’autres tâches.

Qu’est-ce que le pré-rendu ?

Le pré-rendu est utilisé lorsque la vitesse n’est pas une priorité et qu’il n’y a pas besoin d’interactivité. Ce type de rendu est le plus souvent utilisé dans l'industrie cinématographique, pour travailler avec des animations et des effets visuels complexes, ainsi que lorsque le photoréalisme et une très haute qualité d'image sont nécessaires.

Contrairement au rendu en temps réel, où la charge principale incombait aux cartes graphiques (GPU), lors du pré-rendu, la charge incombe à l'unité centrale (CPU) et la vitesse de rendu dépend du nombre de cœurs, du multithread et du processeur. performance.

Il arrive souvent que le temps de rendu d'une image prenne plusieurs heures, voire plusieurs jours. Dans ce cas, les artistes 3D n'ont pratiquement pas besoin de recourir à l'optimisation et peuvent utiliser des modèles 3D de la plus haute qualité, ainsi que des cartes de textures à très haute résolution. En conséquence, l’image s’avère bien meilleure et plus réaliste que le rendu en temps réel.

Programmes de rendu.

Il existe désormais sur le marché un grand nombre de moteurs de rendu qui se distinguent par leur vitesse, leur qualité d'image et leur facilité d'utilisation.

En règle générale, les moteurs de rendu sont intégrés aux grands programmes graphiques 3D et ont un potentiel énorme. Parmi les programmes (packages) 3D les plus populaires, il existe des logiciels tels que :

  • 3ds Max ;
  • Maya;
  • Mixer;
  • Cinéma 4d etc.

Beaucoup de ces packages 3D incluent déjà des moteurs de rendu. Par exemple, le moteur de rendu Mental Ray est présent dans le package 3Ds Max. De plus, presque tous les moteurs de rendu populaires peuvent être connectés aux packages 3D les plus connus. Parmi les moteurs de rendu populaires figurent les suivants :

  • Radiographie ;
  • rayon mental;
  • Rendu Corona etc.

Je voudrais noter que bien que le processus de rendu implique des calculs mathématiques très complexes, les développeurs de programmes de rendu 3D tentent par tous les moyens d'éviter aux artistes 3D de travailler avec les mathématiques complexes qui sous-tendent le programme de rendu. Ils essaient de fournir des paramètres de rendu paramétrique relativement faciles à comprendre, ainsi que des ensembles et bibliothèques de matériaux et d'éclairage.

De nombreux moteurs de rendu sont devenus célèbres dans certains domaines du travail avec les graphiques 3D. Par exemple, « V-ray » est très populaire parmi les visualiseurs architecturaux, en raison de la disponibilité d'un grand nombre de matériaux pour la visualisation architecturale et, en général, d'une bonne qualité de rendu.

Méthodes de visualisation.

La plupart des moteurs de rendu utilisent trois méthodes de calcul principales. Chacune d'elles a à la fois ses avantages et ses inconvénients, mais les trois méthodes ont le droit d'être utilisées dans certaines situations.

1. Ligne de balayage (ligne de balayage).

Le rendu Scanline est le choix de ceux qui privilégient la vitesse à la qualité. En raison de sa rapidité, ce type de rendu est souvent utilisé dans les jeux vidéo et les scènes interactives, ainsi que dans les fenêtres de divers packages 3D. Avec un adaptateur vidéo moderne, ce type de rendu peut produire une image stable et fluide en temps réel avec une fréquence de 30 images par seconde et plus.

Algorithme de travail :

Au lieu de rendre "pixel par pixel", l'algorithme du moteur de rendu "scanline" détermine la surface visible dans les graphiques 3D et, en travaillant selon le principe "ligne par ligne", trie d'abord les polygones nécessaires au rendu selon le Y le plus élevé. coordonnée, qui appartient à un polygone donné, après quoi chaque ligne de l'image est calculée en coupant la ligne avec le polygone le plus proche de la caméra. Les polygones qui ne sont plus visibles sont supprimés au fur et à mesure que vous passez d'une ligne à la suivante.

L'avantage de cet algorithme est qu'il n'est pas nécessaire de transférer les coordonnées de chaque sommet de la mémoire principale vers la mémoire de travail, et que les coordonnées de seuls les sommets qui tombent dans la zone de visibilité et de rendu sont traduites.

2. Raytrace (raytrace).

Ce type de rendu est créé pour ceux qui souhaitent obtenir une image avec un rendu détaillé et de la plus haute qualité. Le rendu de ce type particulier est très apprécié des amateurs de photoréalisme, et il convient de noter que ce n'est pas sans raison. Très souvent, à l'aide du rendu par lancer de rayons, nous pouvons voir des clichés incroyablement réalistes de la nature et de l'architecture, que tout le monde ne peut pas distinguer des photographies. De plus, la méthode du tracé de rayons est souvent utilisée lorsque l'on travaille sur des graphiques dans des bandes-annonces ou des films CG ;

Malheureusement, par souci de qualité, cet algorithme de rendu est très lent et ne peut pas encore être utilisé en graphisme temps réel.

Algorithme de travail :

L'idée de l'algorithme Raytrace est que pour chaque pixel d'un écran conventionnel, un ou plusieurs rayons sont tracés depuis la caméra jusqu'à l'objet tridimensionnel le plus proche. Le faisceau lumineux traverse ensuite un certain nombre de rebonds, qui peuvent comporter des réflexions ou des réfractions selon les matériaux de la scène. La couleur de chaque pixel est calculée de manière algorithmique en fonction de l'interaction du rayon lumineux avec les objets sur son trajet tracé.

Méthode de lancer de rayons.

L'algorithme fonctionne sur la base du « lancement » de rayons comme depuis l'œil de l'observateur, à travers chaque pixel de l'écran et en trouvant l'objet le plus proche qui bloque le chemin d'un tel rayon. En utilisant les propriétés de l'objet, son matériau et l'éclairage de la scène, nous obtenons la couleur de pixel souhaitée.

Il arrive souvent que la méthode « ray tracing » (raytrace) soit confondue avec la méthode « ray casting ». Mais en fait, le « raycasting » (la méthode de lancement d'un rayon) est en fait une méthode simplifiée de « raytrace », dans laquelle il n'y a pas de traitement supplémentaire des rayons parasites ou brisés, et seule la première surface sur le trajet du rayon est calculée. .

3. Radiosité.

Au lieu d'une méthode de "ray tracing", le rendu dans cette méthode fonctionne indépendamment de la caméra et est orienté objet, contrairement à la méthode "pixel par pixel". La fonction principale de la « radiosité » est de simuler plus précisément la couleur de la surface en prenant en compte l'éclairage indirect (rebond de la lumière diffusée).

Les avantages de la « radiosité » sont des ombres douces et graduées et des reflets de couleurs sur un objet provenant d'objets voisins aux couleurs vives.

C'est une pratique assez populaire d'utiliser ensemble Radiosity et Raytrace pour obtenir les rendus les plus impressionnants et photoréalistes.

Qu’est-ce que le rendu vidéo ?

Parfois, l'expression « rendu » est utilisée non seulement lorsque l'on travaille avec des infographies 3D, mais également lorsque l'on travaille avec des fichiers vidéo. Le processus de rendu vidéo commence lorsque l'utilisateur de l'éditeur vidéo a fini de travailler sur le fichier vidéo, défini tous les paramètres dont il a besoin, les pistes audio et les effets visuels. En gros, il ne reste plus qu'à combiner tout ce que nous avons fait en un seul fichier vidéo. Ce processus peut être comparé au travail d'un programmeur lorsqu'il a écrit le code, après quoi il ne lui reste plus qu'à compiler tout le code dans un programme fonctionnel.

Comme un concepteur 3D ou un monteur vidéo, le processus de rendu se produit automatiquement et sans intervention de l'utilisateur. Il suffit de définir quelques paramètres avant de commencer.

La vitesse de rendu vidéo dépend de la longueur et de la qualité requises de la sortie. Fondamentalement, la majeure partie du calcul repose sur la puissance du processeur central. Par conséquent, la vitesse de rendu vidéo dépend de ses performances.

Catégories : , // depuis

Salutations, chers amis. Dans le prochain article, nous aborderons à nouveau le sujet des processeurs graphiques, de la visualisation à l'aide de V-Ray RT et de la répartition des ressources informatiques dans les systèmes multi-GPU. Comme vous le savez depuis un certain temps déjà, les GPU s'implantent de plus en plus dans notre travail, avec de gros packages comme Autodesk 3ds Max, Autodesk Maya, SideFX Houdini et d'autres qui se tournent vers eux pour accélérer non seulement le rendu matériel, mais aussi le rendu général. informatique à des fins. Par exemple, pavage de géométrie à l'aide d'OpenSubdiv ou calcul d'effets dynamiques, ainsi que dans les processus de rendu photoréaliste.
Il n’est pas étonnant que l’installation de plusieurs accélérateurs graphiques soit utile dans de telles tâches et vous permettra de répartir la charge entre eux. Dans mes documents, j'ai déjà écrit plus d'une fois que j'utilise un poste de travail avec deux accélérateurs graphiques, ceci afin de répartir les calculs entre eux et d'effectuer une tâche sur un GPU, et d'effectuer une autre tâche sur l'autre.
Par défaut, Autodesk Maya 2015 restitue l'espace virtuel dans les fenêtres, ce qui est idéal lorsque vous souhaitez afficher des textures, utiliser des effets tels que l'occlusion ambiante, l'éclairage et les ombres ou l'anticrénelage matériel. Dans ce cas, si vous disposez de plusieurs GPU, Maya essaiera de répartir la charge entre eux et d'effectuer le rendu en utilisant les deux GPU.

Un exemple de la charge de calcul sur deux GPU lors de la navigation dans les fenêtres.
Mais une telle distribution et une utilisation dense d'accélérateurs graphiques uniquement pour afficher l'espace virtuel peuvent réduire les performances du système tout en exécutant simultanément des calculs à usage général, tels que le GPU V-Ray RT. Et configurer uniquement V-Ray RT lui-même et définir les GPU qui seront utilisés pour les calculs n'aidera pas à résoudre ce problème. Cela peut nécessiter une configuration supplémentaire du pilote GPU. J'en parlerai plus loin dans cet article.

Un exemple de dégradation sévère des performances du système et de rendu lent de l'espace virtuel lorsque les GPU et le rendu V-Ray RT ne sont pas configurés correctement.

Bien entendu, la première chose à faire est de déterminer lequel des différents GPU participera aux calculs de V-Ray RT. Cela peut être fait à l'aide d'un utilitaire spécial fourni avec V-Ray pour Maya. L'utilitaire a été nommé Sélectionnez les appareils OpenCL pour le GPU V-Ray RT. J'ai écrit et parlé de cet utilitaire dans des articles et vidéos précédents consacrés au GPU V-Ray RT.


Utilitaire Sélectionnez les appareils OpenCL pour le GPU V-Ray RT.
De plus, vous pouvez définir manuellement une variable d'environnement, qui, en fait, est modifiée par l'utilitaire Select OpenCL devices for V-Ray RT GPU.


Variable d'environnement VRAY_OPENCL_PLATFORMS_x64 avec des paramètres qui déterminent quel GPU le GPU V-Ray RT utilisera.
Ainsi, pour le GPU V-Ray RT, j'ai sélectionné par défaut le deuxième accélérateur graphique, qui n'est pas responsable de la sortie des images sur les moniteurs. Il s’agit généralement de NVIDIA Quadro K4000. Ce GPU est assez puissant et dispose de suffisamment de mémoire pour mes tâches. Comme le montre la vidéo au début de l'article, j'ai rencontré un sérieux problème lorsque, tout en calculant simultanément V-Ray RT et en naviguant dans l'espace virtuel, Maya a commencé à ralentir incroyablement.
Mais l'avantage des accélérateurs graphiques NVIDIA Quadro réside dans leurs pilotes assez stables et bien configurables. Puisque Maya, par nature, est parfaitement adapté à l'API OpenGL et que la configuration du pilote contient tout le nécessaire pour les applications 3D, vous pouvez facilement le configurer pour l'application souhaitée.


Page Gérer les paramètres 3D du pilote NVIDIA Quadro avec l'onglet Paramètres globaux ouvert.
La première chose que nous devons faire est d'ouvrir Panneau de configuration NVIDIA(Panneau de configuration NVIDIA) et accédez à Gérer les paramètres 3D(Gérer les paramètres 3D). Sur l'onglet Paramètres globaux(Paramètres globaux), sélectionnez le profil de paramètres globaux souhaité – liste déroulante Préréglages globaux(Préréglages globaux). J'utilise le profil Base par défaut car il utilise des paramètres équilibrés qui peuvent être appliqués à n'importe quelle application.
Afin de déterminer lequel des GPU installés sur le système sera utilisé pour restituer l'espace virtuel à l'aide d'OpenGL. Cela peut être fait en utilisant le paramètre GPU de rendu OpenGL(GPU de rendu OpenGL). Puisque dans mon exemple, les GPU NVIDIA Quadro K2000 et NVIDIA Quadro K4000 sont utilisés, et K2000 est utilisé pour afficher des images sur deux écrans, ainsi que pour restituer des fenêtres de projection virtuelle. Et comme mentionné ci-dessus, le modèle K4000 est utilisé pour les calculs. Par conséquent, il a été décidé de choisir le GPU NVIDIA Quadro K2000 pour cet attribut.


Page Gérer les paramètres 3D et onglet Paramètres du programme.
Une fois que vous avez sélectionné un accélérateur graphique pour restituer l'espace virtuel, vous devez vérifier comment cela affectera les paramètres individuels de l'application Maya. Cela peut être fait sur l'onglet Paramètres du programme(Paramètres du programme) et en sélectionnant dans la liste déroulante Sélectionnez un programme à personnaliser(Sélectionnez le programme à configurer) profil Autodesk Maya Stéréo .
Dans les paramètres de ce profil, assurez-vous que le paramètre GPU de rendu OpenGL est attribué à l'accélérateur graphique de votre choix.
Si vous souhaitez libérer un maximum de mémoire sur le GPU qui effectuera les calculs, vous pouvez également modifier le paramètre Optimiser pour des performances de texture clairsemées(Optimisez pour travailler avec des textures clairsemées) et attribuez-lui également le GPU responsable du rendu de l'espace virtuel.
À la suite de toutes les manipulations avec les paramètres du pilote, redémarrez simplement Maya et vous pourrez commencer à travailler. Le résultat des actions décrites ci-dessus peut être vu dans la vidéo ci-dessous.

Performances de navigation dans l'espace virtuel et de rendu GPU V-Ray RT après toutes les modifications.

Comme vous pouvez le constater, tout est assez simple et vous pouvez facilement configurer un système multi-GPU pour qu'il fonctionne avec diverses applications et leurs fonctions. Bien entendu, si le système utilise 3 voire 4 accélérateurs graphiques, cela permettra une configuration et une répartition encore plus fine des ressources entre les applications.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :