Comment construire un effet réaliste de «vision infrarouge»?


20

Comment comptez-vous construire un effet de vision infrarouge réaliste avec des shaders? Par réaliste, je veux dire celui qui semble réaliste, comme cet exemple .

J'ai une idée sur la création d'une texture pour déterminer la quantité de chaleur émise par un matériau, puis déterminer en utilisant le produit scalaire de la normale et du vecteur de vue la quantité de chaleur qui atteint le spectateur, mais je ne suis même pas sûr que c'est ainsi que la vision thermique fonctionne même, donc je voulais vérifier s'il y avait une meilleure approche avant de commencer à mettre en œuvre quelque chose qui pourrait être complètement faux.


3
non avec l'infrarouge, vous pouvez supposer que tout est un émetteur diffus avec des intensités différentes, alors divisez simplement avec le carré de la distance pour que les objets les plus proches apparaissent plus lumineux
cliquet freak

il suffit d'emballer les valeurs thermiques dans la texture. ou avoir une texture distincte si vous voulez qu'elle soit plus avancée.
Tordin

1
@ratchetfreak: Il vous suffit de diviser par le carré de la distance pour les sources ponctuelles (ou les choses que vous approximez comme sources ponctuelles). Pour les objets étendus, vous devez maintenir la luminance (lecture: luminosité par pixel) constante, tandis que l' angle solide (lecture: nombre de pixels à l'écran) couvert par l'objet tombe comme le carré de distance inverse en raison de la perspective.
Ilmari Karonen

Réponses:


25

Il y a l'IR, puis l'IR. La plage de longueurs d'onde de la lumière communément appelée « infrarouge » s'étend du bord de la plage visuelle humaine (environ 700 nm) jusqu'à 1 mm = 1 000 000 nm.

La réponse de Philipp est correcte pour la lumière "proche infrarouge" (environ 700 à 1 400 nm), qui est fondamentalement comme la lumière visible normale, sauf qu'elle est invisible à l'œil nu. Pour modéliser la vision proche infrarouge, il vous suffit de remplacer les textures et les couleurs de votre source lumineuse par des couleurs alternatives qui modélisent leurs réflectances et intensités lumineuses à des longueurs d'onde différentes de celles habituelles.

Cependant, sur la base du libellé de votre question et de la vidéo à laquelle vous avez lié, vous semblez plus intéressé par la gamme "infrarouge thermique" (8 000 à 15 000 nm), qui correspond au pic du spectre de rayonnement thermique de la plupart des objets du quotidien , y compris le corps humain. Ce rayonnement se comporte toujours de la plupart des manières comme la "lumière" et peut être modélisé en utilisant des techniques graphiques informatiques standard (par opposition aux ondes radio , où les longueurs d'onde deviennent suffisamment longues pour que les hypothèses standard de l'optique des rayons commencent à se décomposer), mais le monde tel qu'il est vu dans l'infrarouge thermique a ses particularités:

  • Comme indiqué ci-dessus, la plupart des objets brillent dans l'IR thermique. Pour la lumière visible, vous pouvez généralement supposer qu'il n'y a que quelques sources de lumière réelles, tout le reste ne réfléchissant que la lumière émise par d'autres sources. Pour l'IR thermique, selon la ou les longueurs d'onde exactes choisies, le contraire est souvent le cas.

  • À l'inverse, la plupart des surfaces absorberont également l'IR thermique de manière assez efficace. Cela, à son tour, les réchauffera, les obligeant à réémettre davantage d'IR eux-mêmes. En fait, c'est comme si presque toutes les surfaces étaient phosphorescentes .

  • Le spectre infrarouge thermique (c'est-à-dire la "couleur") émis par la plupart des surfaces dépendra principalement de leur température. L'émissivité intrinsèque du matériau de surface a également un effet, mais relativement limité.

Ainsi, par rapport à une vision lumineuse normale, la modélisation d' une vision infrarouge thermique réaliste nécessiterait de mettre davantage l'accent sur l'illumination globale et sur les valeurs d'émissivité à changement dynamique. Selon votre réglage, vous pourrez peut-être tricher un peu ici: par exemple, pour les scènes statiques, les fonctions de transfert thermique radiatif global peuvent être précalculées une fois et intégrées dans une carte lumineuse statique , tout comme vous le feriez pour simuler un éclairage global dans le spectre visible.

Si vous souhaitez simuler la vue à l'aide d'une caméra thermographique dans votre jeu, je recommanderais au moins ce qui suit:

  • Dessinez et / ou calculez des textures d'émissivité et / ou de réflectivité IR spéciales pour vos objets. Portez une attention particulière à l'émissivité des objets chauds (comme les humains ou les machines), qui doivent correspondre à leur température de surface. La réflectivité est relativement moins importante.

  • Vous voudrez probablement utiliser un seul canal spectral (c'est-à-dire dessiner tout en monochrome) correspondant au flux infrarouge thermique total. Vous pouvez post-traiter l'image en mappant les valeurs de niveaux de gris résultantes dans un dégradé de fausses couleurs pour simuler le découpage de densité traditionnel utilisé pour les images thermiques.

  • Envisagez de suivre explicitement la température de vos surfaces, de sorte que, par exemple, un endroit au sol sur lequel une personne était allongée restera au chaud (et donc brillera en infrarouge) pendant un certain temps même après que la personne s'est éloignée. Il existe plusieurs façons de gérer cela (par exemple, le suivi de la température par sommet, l'ajout de décalcomanies pour les changements de température locaux transitoires, etc.) avec différents compromis entre le réalisme et le coût de calcul. Vous n'avez probablement pas besoin de le rendre très réaliste, mais même d' avoir ce présent effet du tout serait une belle touche.


+1 très bonne réponse! J'aime particulièrement votre dernier point, je n'avais pas du tout considéré cela et je pense que vous avez raison, cela donnerait une très belle touche qui pourrait même aider à détourner l'attention de l'utilisateur du fait que le reste pourrait ne pas être entièrement réaliste.
Mikael Högström

Les deux étaient de bonnes réponses et utiles, mais la vôtre m'a aidé un peu plus spécifiquement en me pointant vers la recherche de différentes longueurs d'onde du spectre IR et pour ajuster dynamiquement les valeurs d'émissivité. Mais comment diable saviez-vous tout cela sur quelque chose de si loin du jeu dev ?? J'ai travaillé avec des IRV dans la vraie vie et je n'en savais pas la moitié :)
Mikael Högström

Wikipédia. :) Non, sérieusement, je savais que l'IR proche n'est pas la même chose que l'IR thermique, et je me suis intéressé au ray tracing et à d'autres techniques de rendu fantaisistes, alors je savais qu'ils avaient des applications pour modéliser le transfert de chaleur radiatif. La plupart du reste, j'ai simplement levé les yeux. La chose de l'empreinte thermique était quelque chose sur laquelle j'ai vu une vidéo YouTube, je pense.
Ilmari Karonen

11

Ce que vous voyez normalement du monde, c'est la partie visuelle de la lumière qui est réfléchie par les objets. Un objet vert ne reflète que la lumière verte, un objet rouge uniquement la lumière rouge et un objet bleu uniquement la lumière bleue. L'infrarouge peut être considéré comme une quatrième couleur que vos yeux ne peuvent pas percevoir. Une caméra infrarouge vous permet de voir la lumière infrarouge en la percevant avec un capteur et en convertissant l'image infrarouge en longueurs d'onde que vous pouvez voir.

Tout comme certains matériaux sont plus ou moins lumineux en rouge, vert ou bleu, ils sont également différents en IR. La luminosité IR peut mais ne doit pas nécessairement correspondre à la luminosité de la lumière visible.

Voici une scène en visible et en IR. Notez que les feuilles des arbres sont beaucoup plus lumineuses en infrarouge que les troncs, mais la luminosité infrarouge des différentes parties de la façade du bâtiment est similaire en lumière visible et infrarouge.

Ce que vous pourriez faire, c'est créer deux versions de toutes vos textures: une texture RVB pour la lumière visible et une texture monochrome alternative pour l'infrarouge. En mode normal, vous utilisez la texture RVB et en mode IR, vous utilisez la texture IR.

Vous pouvez également envisager d'utiliser différentes sources de lumière en mode IR. Le soleil produit autant de lumière infrarouge que de lumière visible. Mais les sources de lumière artificielle (comme les lampes halogènes ou les diodes électroluminescentes) produisent peu ou presque pas de lumière infrarouge, donc elles n'éclairent rien en infrarouge. D’un autre côté, il existe des sources de lumière beaucoup plus fortes en infrarouge (comme un feu ouvert) ou visibles uniquement en infrarouge (objets chauds qui ne sont pas assez chauds pour briller en rouge. Ou des sources de lumière infrarouge artificielle. Le saviez-vous lorsque vous porter des lunettes infrarouges, vous pouvez utiliser une télécommande de téléviseur comme lampe de poche?). Différentes conditions d'éclairage en lumière normale et infrarouge pourraient être un élément de gameplay intéressant.


Jamais vraiment considéré comme des sources de lumière infrarouge. Je suppose que vous pourriez faire des effets soignés avec la réinitialisation des IRV en regardant directement une source IR ...
Mikael Högström

La photo ci-dessus est UV mais fournirait toujours des effets sympas pour avoir une vision nocturne UV ou infrarouge. Cela m'a fait réfléchir parce que j'ai récemment testé un shader d'imageur thermique qui a l'air plutôt cool.
SICGames2013

2
@ SICGames2013 Pourquoi pensez-vous que c'est l'ultraviolet? Je l'ai obtenu de l'article wikipedia allemand sur la lumière infrarouge . La description de l'image indique qu'elle affiche la longueur d'onde de 700 à 1000 nm.
Philipp

La gamme 700-1000 est infrarouge mais l'image ci-dessus ne semble ultraviolette qu'à cause du violet. Les caméras infrarouges telles que Sony ou les types militaires ont un contraste blanc-grisâtre ou sont plus profondes dans le spectre infrarouge et détectent la chaleur corporelle; cartographier la plage de température d'une personne à travers une palette de couleurs. Avec la vision nocturne de Sony, c'est gris mais maintenant, un jour, ils leur ont mis une teinte verte. Les lunettes militaires de vision nocturne ont été teintées en vert pour que l'utilisateur puisse mieux voir les images après que les électrons ont frappé l'écran de phosphore à l'arrière du tube.
SICGames2013

1
@ SICGames2013 Quand vous pensez sérieusement qu'il montre le spectre ultraviolet parce que l'image a une teinte violette, vous n'avez pas compris le sens de "infra" ou "ultra" en ces termes.
Philipp
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.