Je me souviens avoir regardé la bande-annonce pré-rendue de Tomb Raider, et souhaité que ces graphiques puissent être dans le jeu lui-même.
Pourquoi il y a une telle différence entre la bande-annonce et le jeu actuel? Je comprends que le jeu est un concept complètement différent, il a un pipeline différent, il doit passer par différents types d'interactions entre joueurs, etc. Je veux savoir en quoi les jeux rendent le rendu si difficile par rapport aux films d'animation.
Jusqu'à présent, je sais que la création d'un jeu et d'un film d'animation partagent une charge de travail de base, par exemple la création de modèles 3D, leur rendu (uniquement dans le jeu, cela se fait en direct). Les films d'animation sont restitués pendant longtemps et nous ne voyons que des scènes pré-rendues. C’est tout ce que je sais, alors j’espère que vous répondrez de ce point de vue!
Qu'en est-il du rendu des films d'animation pendant des heures et des heures qui les rend si beaux, alors que le rendu en direct dans le jeu l'est moins (d'un point de vue général)?
Réponses:
Vous avez déjà mentionné l'un des points centraux: le temps .
Lors du rendu d'une animation haute fidélité, de nombreuses approches et algorithmes différents sont utilisés (tous généralement combinés sous le terme "Illumination globale" ), le lancer de rayons étant l'un des plus courants (d'autres incluent par exemple Radiosity et Ambient Occlusion ).
Le lancer de rayons consiste à simuler un nombre (généralement élevé) de rayons lumineux traversant la scène et à calculer leurs trajectoires, leurs réflexions et leurs réfractions lorsqu'ils frappent des objets avec des matériaux différents. En retour, différents matériaux ont des propriétés physiques différentes qui entraînent des réactions spécifiques pour les rayons (la quantité de lumière qui rebondit sur un objet, par exemple, est plus élevée pour un objet brillant que pour un objet brillant).
La physique est un autre point : simuler des milliers de souches de cheveux de manière physiquement correcte prend beaucoup de temps. C'est pourquoi, dans les jeux plus anciens, les poils sont souvent approximés avec un maillage très rugueux qui est ensuite texturé pour donner une impression de poil, éventuellement avec quelques objets en mouvement supplémentaires pour le rendre un peu plus réaliste.
Également à prendre en compte: mémoire et bande passante . Plus la qualité d'une texture appliquée à un objet dans une scène doit être élevée, plus vous avez besoin de mémoire pour la charger et l'utiliser dans un jeu. Mais le système doit non seulement disposer de suffisamment de mémoire pour stocker les données, mais ces données doivent également être transférées, ce qui utilise la bande passante disponible. Étant donné que la mémoire et la bande passante sont limitées, il existe un maximum de possibilités.
Les jeux trichent souvent en n'utilisant que les textures haute résolution pour les objets proches et utilisent des images en basse résolution pour les objets éloignés (terme: MipMapping ), réduisant ainsi la bande passante nécessaire, car moins de texels doivent être récupérés, ce qui augmente les performances. (voir la section sur MipMapping dans le Guide de programmation OpenGLES d’Apple).
De même, les jeux utilisent souvent des maillages différents pour les objets en fonction de leur distance, les objets éloignés étant moins détaillés (terme: LoD = Level of Detail ).
Conclusion: dans les graphiques en temps réel (tels que les jeux et les simulations), ce processus de rendu détaillé et complexe ne fonctionnera bien entendu pas pour produire des scènes fluides / lisses. Vous avez besoin d'au moins 20 images rendues par seconde pour obtenir cet effet d'animation / mouvement fluide pour l'œil humain. De l'autre côté, le rendu d'une seule image (!) Dans un film d'animation peut facilement prendre de quelques heures à plusieurs jours, en fonction de nombreux facteurs tels que le nombre de rayons utilisés dans Ray-Tracing ou le nombre d'échantillons pour Ambient. Occlusion (voir la page 1 de Pixar / page 2 de Pixar pour des captures d’écran de 16 échantillons sur 256) ainsi que la résolution de film souhaitée (plus de pixels = plus d’informations à calculer). Voir aussi cet articleà propos du processus derrière le film d’ animation de la Monsters University de Pixar , donnant des informations intéressantes et mentionnant également 29 heures de temps de rendu par image.
En général: Plus la fidélité / le réalisme doit être élevé, plus le nombre d'itérations / rebonds / échantillons requis est élevé, ce qui nécessite en retour davantage de ressources (temps et / ou puissance de calcul / mémoire). Pour visualiser la différence, consultez le rendu obtenu en fonction du nombre de rebonds pour le calcul de la réfraction dans cet exemple: Diamond Bounces from Keyshot
Mais bien entendu, la qualité des applications en temps réel augmente sans cesse pour deux raisons:
Des méthodes / formules plus intelligentes sont développées et mises en œuvre, capables de créer des effets plutôt photoréalistes sans avoir besoin de lancer de rayons. Cela implique souvent des approximations et parfois des données pré-calculées. Quelques exemples:
la source
Outre le facteur temps, il convient de noter que dans un film, l'artiste contrôle parfaitement ce que le spectateur regarde et ne regarde pas.
Dans votre scène de film typique, la caméra ne passe pas beaucoup de temps au plafond, ni dans un coin sombre de la pièce, ni à la cheville de quelqu'un, de sorte que le budget et le budget de texturation de ces éléments sont assez bas.
Si la scène entière se déroule à partir d'un seul point de vue, le plateau virtuel (comme un plateau de tournage réel) n'a pas besoin d'inclure les parties situées derrière la caméra. Dans la plupart des jeux, le joueur est libre de regarder n’importe où et à tout moment. Cela signifie que le budget qualité peut être concentré sur ce qui est réellement vu. (Certains jeux à la troisième personne, par exemple la série God Of War, utilisent une caméra à accès restreint; leurs visuels ont tendance à être considérablement meilleurs que ceux de jeux à caméra gratuite.)
la source
Vous supposez que la différence réside simplement dans le rendu - dans un film d'animation, il y a aussi une possibilité de montage après coup. Ils pourraient avoir des effets composés qui auraient été difficiles à obtenir dans le moteur d'origine, ou ils pourraient modifier un peu les choses (par exemple, supprimer ou répéter toutes les 10 images pour accélérer / ralentir l'animation).
Si vous en avez l'occasion, procurez-vous l'un des DVD de «Roughnecks: The Starship Trooper», car les rédacteurs et les animateurs en ont commenté les trucs qu'ils devaient faire quand ils ont commencé à prendre du retard sur leur calendrier de livraison - des choses comme recycler les tirs mais inverser l’axe afin que ce ne soit pas aussi évident, corrections de couleur, masquage des choses qu’ils n’aimaient pas, ajout d’explosions, etc.
la source
Vous avez déjà répondu à votre propre question. Les films d'animation ont généralement un niveau de détail plus élevé, ce qui entraîne un temps de rendu long pour chaque image.
Par contre, les jeux ne contiennent pas autant de détails, car la scène doit être rendue au moins 30 fois par seconde. C'est également pour cette raison que les développeurs essaient de réutiliser le plus possible d'actifs (textures, modèles, etc.), car le rendu du même objet à deux positions est beaucoup plus rapide que si tout était unique. Ils doivent également veiller à ne pas utiliser trop de polygones dans leurs modèles, mais plutôt à obtenir une impression de profondeur en utilisant l’éclairage, les textures, les reliefs et d’autres techniques.
Les films n'ont pas ce problème; ils réalisent la scène comme ils le souhaitent et utilisent autant de textures, de modèles et de géométries détaillées que nécessaire pour obtenir la scène recherchée.
On pourrait dire que les jeux sont en train de rattraper. Si vous regardez quelques-uns des jeux les plus attrayants de ces dernières années, ils ne sont plus aussi éloignés de la qualité du film qu'ils l'étaient. Bien sûr, vous serez toujours en mesure d’intégrer plus de détails dans une scène prédéfinie qu’un jeu, mais je pense que la différence ne sera plus aussi marquée dans quelques années.
la source
Les autres réponses traitent en détail des problèmes graphiques bruts, mais ne mentionnent pas une partie importante du réalisme des jeux par rapport aux films et aux bandes-annonces: les animations et les mouvements de caméra .
Dans un film ou une bande-annonce, chaque mouvement de personnes et d'appareils photo peut être soigneusement coordonné pour montrer l'émotion qui convient au moment présent, sans avoir à les répéter. Dans les jeux vidéo, le jeu doit pouvoir réagir instantanément aux mouvements du joueur et doit réutiliser un petit groupe d’animations de stock afin de remplir les heures illimitées de jeu possibles.
La remorque en question en est un exemple lorsque le thérapeute hoche la tête et lui sourit «pas mal» , et lorsque Lara saisit l'accoudoir, secoue la jambe ou regarde la caverne avec effroi. Ces petites choses (ou leur absence et les personnages "plastiques" impliqués) affectent le réalisme perçu bien plus que des améliorations graphiques mineures.
Contrairement aux autres différences graphiques, il ne s'agit pas d'un problème qui peut potentiellement être résolu en augmentant la puissance de calcul: il s'agit d'une différence fondamentale entre un monde scripté et un monde qui répond à toutes vos actions. À cet égard, j’espère que le réalisme des bandes-annonces actuelles dépassera tout le gameplay dans un avenir prévisible.
la source
Outre les excellentes réponses déjà publiées, il convient de noter que, pour obtenir les temps de traitement rapides nécessaires aux jeux, les développeurs de jeux ont besoin de réaliser de nombreux effets visuels sous forme de simples textures. Cela signifie qu’il faut prendre grand soin d’éviter les effets qui ne cuisent pas bien.
Un effet important, difficile à obtenir pour les jeux vidéo, est la diffusion subsurface (SSS) . Malheureusement, cet effet est vraiment important pour générer une peau humaine d'aspect réaliste. C'est pourquoi de nombreux personnages de jeux vidéo "réalistes" ont l'air plastique.
Les développeurs évitent ce problème en créant des caractères de couleurs vives afin de nuire à l'aspect plastique, ou en ajoutant de nombreux ombres et détails texturaux au visage (comme des barbes, etc.) pour séparer les grandes sections continues peau.
la source
Pour répondre à l'une des questions posées par le PO dans un commentaire:
Cette question est plus difficile qu'il n'y paraît. Je pense qu’une bonne règle empirique est l’équation suivante (que j’ai inventée en passant):
En gros, cela signifie que pour les modèles avec relativement peu de matériaux spéciaux (c'est-à-dire sans miroir, sous-surface, etc.), le temps de calcul sera important, en fonction du nombre de poligons. C'est généralement le cas pour les graphiques de jeu vidéo très simples.
Dans la pratique, cependant, dans les nouveaux jeux haut de gamme et en particulier les films, le coupable est "généralement" le lancer de rayons. Pourquoi? Eh bien pour deux raisons. Je vais d'abord donner la raison mathématique, puis mon opinion sur la vraie raison à la fin.
Raison Mathy:
Mise à jour: Cette explication mathématique peut ne pas être complètement exacte. Veuillez consulter l'explication de CrazyCasta dans les commentaires pour plus de détails.
Supposons que vous avez 1000 polygones et 3 sources de lumière. Le plus petit nombre de traces de rayons que vous devez effectuer est de 3 * 1000.
Si nous simplifions trop la situation et supposons qu'un tracé de 1 rayon = 1 calcul (une sous-estimation grossière), nous aurons besoin de 3 000 calculs.
Mais supposons maintenant que vous souhaitiez également des réflexions.
Les paramètres par défaut pour les réflexions dans le programme gratuit Blender sont les suivants:
Pour ces paramètres, on peut estimer que, dans le meilleur des cas, cette réflexion très simple doublera le coût de calcul de votre modèle.
Mais comme je l'ai déjà dit, cet exemple est très simpliste et vous pouvez trouver un grand nombre d'effets (en plus de ceux que j'ai déjà mentionnés) qui vont filmer votre temps de rendu à travers le toit.
Cas et point: essayez de rendre les réflexions avec
gloss=1
(la valeur par défaut dans Blender), puis réduisez le brillant à 0,01 et comparez les deux temps de rendu. Vous constaterez que celui avec 0,01 brillant sera beaucoup plus lent, mais la complexité du modèle n'a pas été modifiée du tout.Ma raison qualitative mais plus réaliste:
L'augmentation de la complexité du maillage améliorera la qualité du modèle jusqu'à un certain point. Après avoir dépassé quelques millions de visages, l'ajout de nouveaux visages n'a pas beaucoup d'importance. J'irai même jusqu'à dire que si vous utilisez le lissage, vous pourrez vous en sortir avec seulement quelques centaines de visages pour des raisons plus générales.
Mais les choses qui font presque toujours la différence sont l’éclairage, les effets matériels et le traçage des rayons. C'est pourquoi les films ont tendance à en utiliser un grand nombre pour tenter de se rapprocher des belles complexités du monde réel.
Un excellent moyen d’avoir une idée de tout cela est de consulter la liste des acteurs à la fin des dernières animations de longs métrages de Disney. Vous serez probablement surpris par le nombre de personnes qu’ils ont en éclairage et en texture.
la source
:)
Il est intéressant de noter que l'animation de film fait généralement beaucoup de ruses visuelles pour fluidifier le mouvement perçu.
Les animateurs peuvent, par exemple, utiliser des techniques traditionnelles d'animation à la main qui ne sont généralement pas utilisées dans le rendu en temps réel, telles que les frottis, les multiples ou les déformations, pour produire des mouvements plus fluides malgré le nombre d'images par seconde plus bas (en tout cas, jusqu'à récemment). ) affiché à. L'utilisation de maillages complique en particulier l'utilisation de frottis et de multiples - vous devez générer des déformations de maillage pour ce type de distorsion, et je ne pense pas que cela ait été le cas dans les jeux vidéo 3D.
Les images avec des objets en mouvement rapide qui les traversent peuvent être rendues à un nombre d'images par seconde différent, puis combinées à nouveau pour produire un flou de mouvement dans la scène. Le flou de mouvement est une technique assez courante dans les graphiques 3D en temps réel de nos jours. L’effet n’est généralement pas de la grande qualité qu’une maison d’animation disposant de dizaines de processeurs obtiendra (voir les réponses "temps" ci-dessus), en grande partie à cause du fait que la simulation du flou de mouvement nécessite vraiment de multiples étapes de post-traitement par couche, et un grand nombre de cadres intermédiaires pour être vraiment fluide.
Faire ce genre de trucs visuels pour améliorer la qualité perçue avec des graphiques en temps réel nécessite de limiter le nombre d'images par seconde à des vitesses bien en dessous du maximum des cadres intermédiaires avec rendu en arrière-plan disponibles, puis de composer pour produire le cadre final. Il existe probablement de nombreux courants de pensée sur la question de savoir si les légères améliorations de la fidélité visuelle résultant de l'utilisation de telles techniques valent la perte de budget, surtout s'il est extrêmement difficile d'obtenir des résultats optimaux.
Pour répondre à un aspect de votre question:
Artisanerie, principalement. Les artistes en temps réel n'ont pas la possibilité d'affiner chaque image ou de créer des astuces uniques pour améliorer l'aspect général d'une scène ou d'une réaction, non seulement à cause des contraintes de temps (de développement ou de rendu), mais aussi parce des contraintes pratiques. Comme indiqué dans le commentaire sur l'interactivité, le joueur ne va probablement pas faire exactement la même chose à chaque fois, mais le film sera lu de la même manière à chaque fois.
Cela signifie que l’artiste du jeu vidéo a des priorités très différentes en ce qui concerne la qualité du modèle et la qualité du rendu final par rapport à l’artiste. Les deux requièrent d'énormes compétences, mais chacune exige des techniques différentes. Je m'attends à ce que ces techniques convergent de plus en plus à mesure que le matériel de rendu au niveau consommateur continue de progresser et que le génie mathématique continue à émerger au niveau de vos SIGGRAPH et de vos GDC.
la source
Un seul film d'animation peut prendre plusieurs années à être rendu sur une seule bête d'une machine. Comme il est pré-rendu, peu importe les effets coûteux que nous ajoutons à la scène, tels que la lumière, les ombres, etc. Ces films sont généralement restitués par des fermes de rendu où des milliers d'ordinateurs sont liés et travaillent sur le même travail.
La raison pour laquelle nous ne pouvons pas obtenir la même qualité en temps réel est simplement due au fait que la machine doit restituer la trame actuelle en environ 16 ms pour obtenir un FPS de 60. La restitution d'une image par film peut prendre des heures sur un seul PC.
Dans un jeu, en plus des graphismes, il se passe une tonne d'autres choses. Chaque cadre, il y a des tonnes de calculs. Simplement dit, un film d'animation n'a pas besoin de calculer les dégâts subis par le joueur depuis un lance-roquettes.
Heureusement, il y a des gens de génie qui se promènent sur cette planète. Outre de meilleurs PC capables de restituer plus de polygones et de plus grandes textures, il existe des inventions ingénieuses, conçues comme des cartes normales, qui peuvent animer la lumière / les ombres sur un polygone plat à un prix très avantageux, donnant à un objet 3D ennuyeux un aspect extraordinairement détaillé.
Certains de ces effets coûteux qui font que les films ont cette touche supplémentaire.
Pour résumer, nous devons proposer des astuces "bon marché" pour rendre un jeu beau. Mais l'œil humain est difficile à tromper.
la source