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.
Réponses:
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.
la source
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.
la source