Come si potrebbe costruire un effetto realistico di "visione a infrarossi"?


20

Come costruiresti un effetto di visione a infrarossi realistico con gli shader? Per realistico intendo uno che sembra realistico, come questo esempio .

Ho un'idea su come creare una trama per determinare la quantità di calore emessa da un materiale e quindi determinare usando il prodotto a punti del normale e visualizzare il vettore di quanto calore raggiunge lo spettatore, ma non sono nemmeno sicuro che sia così che la visione termica funziona anche quindi volevo verificare se esiste un approccio migliore prima di iniziare a implementare qualcosa che potrebbe essere completamente sbagliato.


3
nah con l'infrarosso puoi supporre che tutto sia un emettitore diffuso con intensità diverse, quindi basta dividerlo con il quadrato della distanza per far apparire più luminosi gli oggetti più vicini
maniaco del cricchetto

impacchettare semplicemente i valori termici nella trama. o hai una trama separata se vuoi che sia più avanzata.
Tordin,

1
@ratchetfreak: devi solo dividere per il quadrato della distanza per sorgenti puntiformi (o cose che stai approssimando come fonti puntiformi). Per gli oggetti estesi, è necessario mantenere costante la luminanza (leggi: luminosità per pixel), mentre l' angolo solido (leggi: numero di pixel sullo schermo) coperto dall'oggetto cade come il quadrato inverso della distanza a causa della prospettiva.
Ilmari Karonen,

Risposte:


25

C'è IR, e poi c'è IR. La gamma di lunghezze d'onda della luce comunemente chiamate " infrarossi " si estende dal bordo della gamma visiva umana (circa 700 nm) fino a 1 mm = 1.000.000 nm.

La risposta di Philipp è corretta per la luce "vicino all'infrarosso" (da circa 700 a 1.400 nm), che è fondamentalmente proprio come la normale luce visibile, tranne per il fatto che è invisibile all'occhio umano senza aiuto. Per modellare la visione near-IR, dovresti semplicemente sostituire le trame dei tuoi oggetti e i colori delle sorgenti luminose con quelli alternativi che modellano i loro riflessi e intensità di luce a diverse lunghezze d'onda del solito

Tuttavia, in base alla formulazione della tua domanda e al video a cui ti sei collegato, sembra che tu sia più interessato alla gamma "infrarossi termici" (da 8.000 a 15.000 nm), che corrisponde al picco dello spettro di radiazione termica della maggior parte degli oggetti quotidiani , compreso il corpo umano. Questa radiazione si comporta ancora in molti modi come "luce" e può essere modellata utilizzando tecniche di computer grafica standard (al contrario delle onde radio , in cui le lunghezze d'onda diventano abbastanza lunghe da far crollare i presupposti standard dell'ottica del raggio ), ma il mondo visto nell'infrarosso termico ha le sue peculiarità:

  • Come notato sopra, la maggior parte degli oggetti si illuminerà in IR termico. Per la luce visibile, si può generalmente supporre che ci siano solo poche fonti di luce reali, con tutto il resto che riflette solo la luce emessa da altre fonti. Per l'IR termico, a seconda della o delle lunghezze d'onda esatte scelte, spesso accade il contrario.

  • Al contrario, la maggior parte delle superfici assorbirà anche l'IR termico in modo abbastanza efficiente. Questo, a sua volta, li riscalderà, facendoli riemettere più IR da soli. In effetti, è come se quasi ogni superficie fosse fosforescente .

  • Lo spettro IR termico (cioè "colore") emesso dalla maggior parte delle superfici dipenderà principalmente dalla loro temperatura. Anche l'emissività intrinseca del materiale superficiale ha un effetto, ma relativamente limitato.

Pertanto, rispetto alla normale visione della luce, la modellizzazione della visione realistica a infrarossi termici richiederebbe una maggiore enfasi sull'illuminazione globale e sui valori di emissività che cambiano dinamicamente. A seconda delle impostazioni, potresti essere in grado di imbrogliare un po 'qui: ad esempio, per le scene statiche, le funzioni di trasferimento termico radiativo globale possono essere pre-calcolate una volta e inserite in una mappa luminosa statica , proprio come faresti per falsificare l'illuminazione globale in lo spettro visibile.

Se vuoi simulare la vista attraverso una termocamera nel tuo gioco, ti consiglio almeno quanto segue:

  • Disegna e / o calcola trame speciali di emissività e / o riflettività IR per i tuoi oggetti. Presta particolare attenzione all'emissività di oggetti caldi (come esseri umani o macchine), che dovrebbero corrispondere alla loro temperatura superficiale. La riflettività è relativamente meno importante.

  • Probabilmente vorrai usare solo un singolo canale spettrale (cioè disegnare tutto in bianco e nero) corrispondente al flusso IR termico totale. È possibile postelaborare l'immagine mappando i valori di gradazione di grigio risultanti in un gradiente di colore falso per simulare la divisione della densità tradizionale utilizzata per le immagini termiche.

  • Considera di tracciare esplicitamente la temperatura delle tue superfici, in modo tale che, per esempio, un punto sul terreno su cui giace una persona rimanga caldo (e quindi incandescente in IR) per un po 'anche dopo che la persona si è allontanata. Esistono diversi modi per gestirlo (ad es. Rilevamento della temperatura per vertice, aggiunta di decalcomanie per variazioni transitorie della temperatura locale, ecc.) Con diversi compromessi tra realismo e costo computazionale. Probabilmente non c'è bisogno di farlo molto realistico, ma anche avere questo effetto presente a tutti sarebbe un bel tocco.


+1 risposta davvero buona! In particolare mi piace il tuo ultimo punto che non avevo considerato affatto e penso che tu abbia ragione, sarebbe un bel tocco che potrebbe anche aiutare a distogliere l'attenzione dell'utente dal fatto che il resto potrebbe non essere del tutto realistico.
Mikael Högström,

Entrambe sono state risposte valide e utili, ma la tua mi ha aiutato un po 'più specificamente indicandomi verso diverse lunghezze d'onda dello spettro IR e per regolare dinamicamente i valori di emissività. Ma come diamine sapevi tutto questo su qualcosa di così lontano dal game dev ?? Ho lavorato con IRV nella vita reale e non ne conoscevo la metà :)
Mikael Högström,

Wikipedia. :) No, sul serio, sapevo che vicino all'IR non è lo stesso dell'IR termico e mi sono interessato al ray tracing e ad altre tecniche di rendering fantasiose, quindi sapevo che avevano applicazioni per modellare il trasferimento di calore radiativo. Per il resto ho solo alzato lo sguardo. La cosa dell'impronta termica era qualcosa su cui una volta ho visto un video di YouTube, credo.
Ilmari Karonen,

11

Ciò che normalmente vedi dal mondo è la parte visiva della luce che viene riflessa dagli oggetti. Un oggetto verde riflette solo la luce verde, un oggetto rosso solo la luce rossa e un oggetto blu solo la luce blu. L'infrarosso può essere considerato un quarto colore che i tuoi occhi non riescono a percepire. Una videocamera a infrarossi ti rende visibile la luce a infrarossi percependola con un sensore e convertendo l'immagine a infrarossi in lunghezze d'onda che puoi vedere.

Proprio come alcuni materiali sono più o meno luminosi in rosso, verde o blu, sono anche in modo diverso in IR. La luminosità IR può, ma non deve necessariamente corrispondere a quanto è luminosa alla luce visibile.

Ecco una scena in visibile e in IR. Nota come le foglie degli alberi siano molto più luminose in IR rispetto ai tronchi, ma la luminosità IR delle diverse parti della facciata dell'edificio è simile in luce visibile e IR.

Quello che potresti fare è creare due versioni di tutte le tue trame: una trama RGB per la luce visibile e una trama monocromatica alternativa per gli infrarossi. In modalità normale si utilizza la trama RGB e in modalità IR si utilizza la trama IR.

Potresti anche considerare di utilizzare diverse fonti di luce in modalità IR. Il sole produce la stessa quantità di luce IR della luce visibile. Ma le fonti di luce artificiale (come lampade alogene o diodi emettitori di luce) producono poca o quasi nessuna luce IR, quindi non illuminano nulla in infrarossi. D'altra parte ci sono fonti di luce che sono molto più forti in IR (come il fuoco aperto) o visibili solo in IR (oggetti caldi che non sono abbastanza caldi da diventare rossi. O fonti di luce IR artificiali. Lo sapevi quando indossare occhiali IR, è possibile utilizzare un telecomando TV come una torcia?). Diverse condizioni di luce nella luce normale e IR potrebbero essere un elemento di gioco interessante.


Mai veramente considerato le fonti di luce IR. Immagino che potresti ottenere effetti netti con il reset degli IRV guardando direttamente una sorgente IR ...
Mikael Högström

La foto sopra è UV ma fornirebbe comunque degli effetti fantastici per avere una visione notturna UV o infrarossa. Questo mi ha fatto pensare perché di recente ho testato uno shader con termocamera che sembra piuttosto bello.
SICGames2013,

2
@ SICGames2013 Perché pensi che sia ultravioletta? L'ho preso dall'articolo tedesco di Wikipedia sulla luce infrarossa . La descrizione dell'immagine dice che mostra la lunghezza d'onda da 700-1000 nm.
Philipp,

La gamma 700-1000 è infrarossa ma l'immagine sopra appare ultravioletta solo a causa del viola. Le telecamere a infrarossi come Sony o tipi militari hanno un contrasto bianco-grigiastro o sono solo più profonde nello spettro infrarosso con il rilevamento del calore corporeo; mappatura dell'intervallo di temperatura di una persona attraverso una tavolozza di colori. Con la visione notturna di Sony, è grigio ma ora un giorno hanno messo una tonalità verde per loro. La visione notturna militare di Google è diventata verde per consentire all'utente di vedere meglio le immagini dopo che gli elettroni hanno colpito lo schermo al fosforo nella parte posteriore del tubo.
SICGames2013

1
@ SICGames2013 Quando pensi seriamente che mostri lo spettro degli ultravioletti perché l'immagine ha una sfumatura viola, non hai capito il significato di "infra" o "ultra" in quei termini.
Philipp,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.