Pourquoi le mappage des ombres est-il la norme?

41

Bien que je sois programmeur de métier, j'ai à peine touché au développement de jeux. Je pose cette question depuis un certain temps et maintenant que je me penche sur le développement de jeux, je me suis dit que ce serait un bon moment.

Pourquoi le mappage des ombres semble-t-il être le moyen exclusif utilisé par les jeux pour créer des ombres? Pour être franc, ça a l'air terrible. Même les jeux modernes avec des paramètres d'ombre maximisés ont des ombres en bloc très distrayantes.

Doom 3, créé il y a 11 ans, utilisait des volumes d'ombres qui paraissaient bien meilleurs que toute implémentation de carte d'ombres que j'ai jamais vue, qui incluent des jeux AAA publiés la même semaine que cette question a été postée. Les mods tiers pour Doom 3 ont même adouci les contours des ombres, les rendant encore plus impressionnants visuellement.

Existe-t-il des problèmes techniques ou des limitations dans la mise en œuvre d'éléments tels que les volumes fantômes? Les cartes fantômes sont-elles si faciles à implémenter que les développeurs ne considèrent même rien d’autre?

La seule information que j'ai pu trouver sur le sujet est que les polygones qui composent les volumes peuvent être assez grands et devenir plus exigeants. Peut-être que les volumes fantômes ont des exigences système beaucoup plus élevées, mais si tel est le cas, comment se sont-ils débrouillés pour les utiliser en 2004?

Cette question n'est pas spécifique à la cartographie des ombres par rapport aux volumes des ombres, ils sont simplement les deux seuls que j'ai vus utilisés dans des produits complets et je n'ai tout simplement pas été en mesure de trouver beaucoup d'informations sur d'autres techniques.

gnoblin
la source
3
Juste une remarque - Doom 3 était extrêmement exigeant en performances pour son époque et reste instable, même sur certains systèmes modernes (et je ne parle pas de GPU intégrés, même si cela ne serait pas vraiment inapproprié ici; bien sûr, c'est très probable en raison de son âge, mais ...). Et je l'ai vu fonctionner sur de nombreux ordinateurs où les ombres et l'éclairage ne fonctionnaient tout simplement pas . De toute évidence, il y a beaucoup de complexités pour obtenir des ombres précises dans un jeu, et Doom 3 est un bel exemple de la dureté des graphismes réalistes dans une multitude de configurations informatiques.
Luaan
1
Doom 3 était des années en avance sur son époque lorsque le développement a commencé (du moins en raison du choix de l'API graphique). Il disposait de plusieurs serveurs pour gérer des générations de matériel pré-Shader Model 2.0, ce qui signifiait qu’environ 1/4 du moteur était à peine portable (il était même avant GLSL) et les 3/4 restants étaient des chemins de code pour des extensions matérielles anciennes NV et ATI. qui étaient hors de propos au moment de la livraison du jeu. Son choix de volumes d'ombres au pochoir était peut-être le moindre de ses problèmes.
Andon M. Coleman

Réponses:

48

La cartographie des ombres et les ombres au pochoir (volumes des ombres) sont certainement les deux plus gros, comme vous l'avez mentionné, alors je vais m'en tenir à comparer les deux. Et puisque vous avez souligné les défauts les plus évidents de la cartographie des ombres et les avantages des ombres au pochoir, je ferai le contraire.

Lacunes des ombres au pochoir

  1. Les ombres correspondent à la forme du maillage. Ceci est très limitatif et constitue probablement la principale raison technique de ne pas utiliser les ombres au pochoir . Les feuilles d'arbre, les buissons, les clôtures métalliques, les déchirures en tissu et d'autres éléments de jeu courants de projection d'ombres utilisent la transparence alpha pour définir la forme de l'objet. Mais comme les ombres de pochoir correspondent au maillage et pas strictement aux parties visibles de la texture sur le maillage, elles ne peuvent pas être utilisées pour de tels objets. Par exemple, une grappe de feuilles dans un arbre sera généralement une texture d'une grappe de feuilles sur un quad. Les ombres au pochoir ne pourront montrer que l’ombre du quad (et cela posera problème, puisqu’un quad n’est pas un maillage fermé, mais c’est un détail mineur que je ne passerai pas à côté de cette réponse, généralement capable d'être travaillé autour).
  2. Impossible de faire des ombres douces précises. Vous avez souligné que Doom 3 a été modifié pour permettre des ombres douces. Cette version utilise au moins le mappage des ombres pour les ombres douces. J'ai également vu des techniques d'espace d'écran pour atténuer les ombres dures, mais elles sont sujettes à toutes sortes de problèmes.
  3. Impossible de faire des ombres sur des objets transparents. Il existe des solutions de contournement pour cela - rendre les ombres pour les objets transparents dans des passes séparées et les composer ensuite. Mais en plus des solutions de contournement difficiles, la nature des ombres pochoir est telle que chaque pixel à l'écran est soit dans l' ombre ou non. C'est également la raison pour laquelle aucune ombre douce, comme mentionné précédemment.
  4. L'implémentation généralement préférée et la plus robuste des ombres de pochoir, souvent appelée "Inverse de Carmack", est en fait brevetée, comme l'a souligné Angew dans les commentaires. (Non breveté par Carmack; il a dû y remédier pour la version open source de Doom 3)

En faveur de la cartographie des ombres

Outre le fait de ne pas avoir les limitations que j'ai énumérées spécifiquement pour les ombres de pochoir, le mappage d'ombres présente quelques avantages supplémentaires:

  1. Evolutivité. Bien que le mappage d'ombres ne soit ni bon marché ni parfait ( mais les ombres de pochoir ne le sont pas non plus ), il est relativement facile d'échanger des performances de fidélité en changeant la résolution des cartes d'ombres ou en modifiant le filtrage des ombres. Cela facilite relativement le réglage de la qualité / des performances des ombres pour différents systèmes. Comme vous l'avez fait remarquer, ce n'est souvent pas parfait, mais cela dépend en grande partie de la perspicacité du joueur et de la résolution à laquelle il joue (une résolution d'écran plus élevée facilitera la compréhension du caractère opaque de l'ombre). cartographie). Certains jeux AAA (comme Fracture ) font un travail incroyable avec la cartographie des ombres simplement en sélectionnant les bons filtres et en réglant les bons boutons, tandis que beaucoup y ajoutent simplement "Assez bien".
  2. Cookies (ombres texturées): Ajoutez la texture d'un projecteur ou d'un vitrail pour émuler toutes sortes de sources lumineuses du monde réel. Soit dit en passant, ceci est également faisable avec les ombres de pochoir, mais implique néanmoins presque toute la configuration du mappage des ombres (les mêmes matrices de projection utilisées pour projeter la texture de la lumière sur des objets sont celles utilisées pour le mappage des ombres).
  3. Ombres transparentes: la plupart des jeux n'essayent pas beaucoup, mais des ombres transparentes sont possibles avec le mappage des ombres. Je ne parle pas seulement de découpes alpha telles que des arbres et des clôtures, comme je l’ai déjà mentionné, mais des ombres partiellement transparentes, comme de la fumée et de la poussière.

Aucune de ces listes n'est exhaustive.

Ainsi, même si vos observations sur la représentation des ombres et des ombres de pochoir sont correctes, les inconvénients des ombres de pochoir sont un obstacle à de nombreux effets souhaitables, et la représentation des ombres présente quelques avantages.

Jibb Smart
la source
1
Ahhh, j'ai omis de prendre en compte la plupart de ces choses et les textures transparentes comme les feuilles sont un problème majeur. Merci d'avoir répondu!
gnoblin
1
Pas de problème :) Certains sont faciles à manquer!
Jibb Smart
8
Je dirais qu’un problème supplémentaire avec les volumes d’ombre est que la profondeur ne veut pas que la caméra soit à l’intérieur de l’ombre, et la profondeur est brevetée.
Rétablir Monica le
Bon point, Angew. J'ai ajouté cela aux raisons de ne pas utiliser d'ombres de pochoir et clarifié la raison principale de ne pas utiliser d'ombres de pochoir comme la "plus grande raison technique " de ne pas les utiliser, car la question des brevets pourrait à elle seule constituer un obstacle.
Jibb Smart