Bagaimana orang membangun efek "penglihatan inframerah" yang realistis?

20

Bagaimana cara Anda membangun efek penglihatan inframerah realistis dengan shader? Yang realistis maksud saya yang terlihat realistis, seperti contoh ini .

Saya punya ide tentang membuat tekstur untuk menentukan berapa banyak panas yang dipancarkan suatu bahan dan kemudian menentukan dengan menggunakan produk titik normal dan melihat vektor berapa banyak panas yang mencapai pemirsa, tetapi saya bahkan tidak yakin bahwa ini adalah bagaimana penglihatan termal bahkan berfungsi jadi saya ingin memeriksa apakah ada pendekatan yang lebih baik sebelum mulai menerapkan sesuatu yang mungkin sepenuhnya salah.

Mikael Högström
sumber
3
nah dengan infra merah Anda dapat menganggap bahwa semuanya adalah emitor difus dengan intensitas yang berbeda, jadi cukup bagi dengan kuadrat jarak ke benda yang lebih dekat tampak lebih terang
ratchet freak
cukup bungkus nilai termal dalam tekstur. atau memiliki tekstur terpisah jika Anda menginginkannya lebih maju.
Tordin
1
@ scratchetfreak: Anda hanya perlu membaginya dengan kuadrat jarak untuk sumber titik (atau hal-hal yang Anda kira sebagai sumber titik). Untuk objek yang diperluas, Anda harus menjaga luminansi (baca: kecerahan per piksel) konstan, sedangkan sudut solid (baca: jumlah piksel pada layar) tertutup oleh objek jatuh sebagai kuadrat terbalik jarak karena perspektif.
Ilmari Karonen

Jawaban:

25

Ada IR, dan kemudian ada IR. Kisaran panjang gelombang cahaya yang biasa disebut " inframerah " memanjang dari tepi rentang visual manusia (sekitar 700 nm) hingga 1 mm = 1.000.000 nm.

Jawaban Philipp tepat untuk cahaya "hampir-inframerah" (sekitar 700 hingga 1.400 nm), yang pada dasarnya sama seperti cahaya tampak normal, kecuali bahwa itu tidak terlihat oleh mata manusia tanpa bantuan. Untuk memodelkan penglihatan dekat-IR, Anda hanya akan mengganti tekstur objek dan warna sumber cahaya dengan yang alternatif yang memodelkan pantulan dan intensitas cahaya pada panjang gelombang yang berbeda dari biasanya

Namun, berdasarkan kata-kata dari pertanyaan Anda dan video yang Anda tautkan, Anda tampaknya lebih tertarik pada kisaran "termal inframerah" (8.000 hingga 15.000 nm), yang sesuai dengan puncak spektrum radiasi termal dari sebagian besar benda sehari-hari , termasuk tubuh manusia. Radiasi ini masih berperilaku seperti "cahaya" dan dapat dimodelkan menggunakan teknik grafis komputer standar (berbeda dengan gelombang radio , di mana panjang gelombangnya cukup panjang sehingga asumsi standar optik sinar mulai rusak), tetapi dunia seperti terlihat dalam inframerah termal memang memiliki kekhasannya:

  • Seperti disebutkan di atas, sebagian besar objek akan menyala di IR termal. Untuk cahaya tampak, Anda biasanya dapat mengasumsikan bahwa hanya ada beberapa sumber cahaya aktual, dengan yang lainnya hanya memantulkan cahaya yang dipancarkan oleh sumber lain. Untuk IR termal, tergantung pada panjang gelombang yang tepat yang dipilih, kebalikannya sering terjadi.

  • Sebaliknya, sebagian besar permukaan juga akan menyerap IR termal dengan cukup efisien. Ini akan, pada gilirannya, menghangatkan mereka, menyebabkan mereka memancarkan kembali lebih banyak IR sendiri. Efeknya, seolah-olah hampir setiap permukaan adalah berpendar .

  • Spektrum IR termal (yaitu "warna") yang dipancarkan oleh sebagian besar permukaan terutama akan tergantung pada suhu mereka. Emisivitas intrinsik material permukaan memang memiliki efek juga, tetapi yang relatif terbatas.

Dengan demikian, dibandingkan dengan penglihatan cahaya normal, pemodelan penglihatan inframerah termal realistis akan memerlukan lebih banyak penekanan pada penerangan global dan pada perubahan nilai emisivitas dinamis. Tergantung pada pengaturan Anda, Anda mungkin bisa menipu sedikit di sini: misalnya, untuk adegan statis, radiasi fungsi thermal transfer global yang dapat dijalankan sekali dan dipanggang menjadi statis lightmap , seperti Anda akan lakukan untuk pencahayaan global palsu di spektrum yang terlihat.

Jika Anda ingin mensimulasikan tampilan melalui kamera termografi di game Anda, saya sarankan setidaknya yang berikut ini:

  • Gambar dan / atau hitung emisivitas IR khusus dan / atau tekstur reflektifitas untuk objek Anda. Berikan perhatian khusus pada emisivitas objek hangat (seperti manusia atau mesin), yang harus sesuai dengan suhu permukaannya. Reflektivitasnya relatif kurang penting.

  • Anda mungkin ingin menggunakan hanya satu saluran spektral (yaitu menggambar semuanya dalam monokrom) yang sesuai dengan fluks IR total termal. Anda dapat memposting proses gambar dengan memetakan nilai skala abu-abu yang dihasilkan ke dalam gradien warna palsu untuk mensimulasikan irisan kerapatan tradisional yang digunakan untuk gambar termal.

  • Pertimbangkan untuk secara eksplisit melacak suhu permukaan Anda, sehingga, katakanlah, tempat di tanah tempat seseorang berbaring akan tetap hangat (dan karenanya bercahaya pada IR) untuk sementara waktu bahkan setelah orang tersebut pindah. Ada beberapa cara Anda bisa mengatasinya (misalnya pelacakan suhu per-verteks, menambahkan decals untuk perubahan suhu lokal sementara, dll.) Dengan berbagai trade-off antara realisme dan biaya komputasi. Anda mungkin tidak perlu membuatnya sangat realistis, tetapi bahkan menghadirkan efek ini sama sekali akan menjadi sentuhan yang bagus.

Ilmari Karonen
sumber
+1 jawaban yang sangat bagus! Saya terutama menyukai poin terakhir Anda, saya tidak mempertimbangkan ini sama sekali dan saya pikir Anda benar, itu akan membuat sentuhan yang sangat bagus yang bahkan dapat membantu mengalihkan perhatian pengguna dari fakta bahwa sisanya mungkin tidak sepenuhnya realistis.
Mikael Högström
Keduanya merupakan jawaban yang baik dan membantu tetapi jawaban Anda membantu saya sedikit lebih spesifik dengan mengarahkan saya ke arah melihat pada panjang gelombang yang berbeda dari spektrum IR dan untuk secara dinamis menyesuaikan nilai emisivitas. Tapi bagaimana sih kamu tahu semua ini tentang sesuatu yang begitu jauh dari game dev ?? Saya telah bekerja dengan IRV dalam kehidupan nyata dan tidak tahu setengah dari ini :)
Mikael Högström
Wikipedia. :) Tidak, serius, saya tahu bahwa IR dekat tidak sama dengan IR termal, dan saya sudah tertarik pada ray tracing dan teknik rendering mewah lainnya, jadi saya tahu mereka memiliki aplikasi untuk memodelkan perpindahan panas radiasi. Sebagian besar sisanya saya hanya melihat ke atas. Masalah jejak termal adalah sesuatu yang pernah saya lihat di video YouTube, saya kira.
Ilmari Karonen
11

Apa yang biasanya Anda lihat dari dunia adalah bagian visual cahaya yang dipantulkan oleh objek. Objek hijau hanya memantulkan cahaya hijau, objek merah hanya lampu merah dan objek biru hanya cahaya biru. Infra-merah dapat dianggap sebagai warna keempat yang tidak bisa dilihat mata Anda. Sebuah kamera infra-merah membuat cahaya infra-merah terlihat oleh Anda dengan melihatnya dengan sensor dan mengubah gambar infra-merah menjadi panjang gelombang yang dapat Anda lihat.

Sama seperti beberapa bahan yang kurang lebih cerah dalam warna merah, hijau atau biru, mereka juga berbeda terang dalam IR. Kecerahan IR dapat tetapi tidak harus sesuai dengan seberapa terang itu dalam cahaya tampak.

Berikut adalah adegan yang terlihat dan di IR. Perhatikan bagaimana daun pohon jauh lebih terang di IR daripada batangnya, tetapi kecerahan IR dari berbagai bagian fasad bangunan serupa dalam cahaya tampak dan IR.

Apa yang dapat Anda lakukan adalah membuat dua versi dari semua tekstur Anda: tekstur RGB untuk cahaya tampak dan tekstur monokrom alternatif untuk infra-merah. Dalam mode normal Anda menggunakan tekstur RGB dan dalam mode IR Anda menggunakan tekstur IR.

Anda mungkin juga mempertimbangkan untuk menggunakan berbagai sumber cahaya dalam mode IR. Matahari menghasilkan cahaya IR sebanyak cahaya tampak. Tetapi sumber cahaya buatan (seperti lampu halogen atau dioda pemancar cahaya) menghasilkan sedikit atau hampir tidak ada cahaya IR, sehingga mereka tidak menerangi apa pun dalam infra merah. Di sisi lain ada sumber cahaya yang jauh lebih kuat di IR (seperti api terbuka) atau hanya terlihat di IR (objek panas yang tidak cukup panas untuk bersinar merah. Atau sumber cahaya IR buatan. Apakah Anda tahu bahwa ketika Anda memakai kacamata IR, Anda dapat menggunakan remote TV sebagai senter?). Kondisi cahaya yang berbeda dalam cahaya normal dan IR bisa menjadi elemen gameplay yang menarik.

Philipp
sumber
Tidak pernah dianggap sebagai sumber cahaya IR. Saya kira Anda bisa membuat beberapa efek rapi dengan pengaturan ulang IRV ketika melihat langsung pada sumber IR ...
Mikael Högström
Foto di atas adalah UV tetapi masih akan memberikan beberapa efek keren untuk memiliki penglihatan UV atau Inframerah malam. Ini membuat saya berpikir karena saya baru-baru ini menguji shader imager termal yang terlihat cukup keren.
SICGames2013
2
@ SICGames2013 Mengapa Anda pikir itu ultraviolet? Saya mendapatkannya dari artikel wikipedia Jerman tentang cahaya inframerah . Deskripsi gambar mengatakan bahwa ia menampilkan panjang gelombang 700-1000 nm.
Philipp
Rentang 700-1000 adalah Inframerah tetapi gambar di atas terlihat Ultraviolet hanya karena ungu. Kamera inframerah seperti Sony atau tipe militer adalah kontras putih keabu-abuan atau lebih dalam dalam spektrum inframerah dengan mendeteksi panas tubuh; memetakan rentang suhu seseorang melalui palet warna. Dengan Sony night vision, warnanya abu-abu tapi sekarang sehari mereka memberi warna hijau. Military Night Vision Googles berwarna hijau agar pengguna dapat melihat gambar dengan lebih baik setelah elektron mengenai layar fosfor di bagian belakang Tube.
SICGames2013
1
@ SICGames2013 Ketika Anda serius berpikir itu menunjukkan spektrum ultraviolet karena gambar memiliki warna ungu, Anda tidak mengerti arti "infra" atau "ultra" dalam istilah-istilah itu.
Philipp