Как бы вы создали реалистичный эффект инфракрасного зрения с помощью шейдеров? Под реалистичным я подразумеваю тот, который выглядит реалистичным, как этот пример .
У меня есть идея сделать текстуру, чтобы определить, сколько тепла излучает материал, а затем определить с помощью точечного произведения нормали и вектора обзора, сколько этого тепла достигает зрителя, но я даже не уверен, что именно так происходит тепловое зрение. даже работает, поэтому я хотел проверить, есть ли лучший подход, прежде чем начать реализовывать что-то, что может быть совершенно неправильно.
Ответы:
Есть ИК, а затем есть ИК. Диапазон длин волн света, обычно называемый « инфракрасным », простирается от края визуального диапазона человека (около 700 нм) до 1 мм = 1 000 000 нм.
Ответ Филиппа верен для «ближнего инфракрасного» света (около 700–1400 нм), который в основном похож на обычный видимый свет, за исключением того, что он невидим для невооруженного человеческого глаза. Чтобы смоделировать ближнее инфракрасное зрение, вы просто замените текстуры вашего объекта и цвета источника света на альтернативные, которые моделируют их отражательную способность и интенсивность света на разных длинах волн, чем обычно
Однако, исходя из формулировки вашего вопроса и видео, на которое вы ссылаетесь, вы, похоже, больше интересуетесь «инфракрасным» диапазоном (от 8000 до 15000 нм), который соответствует пику спектра теплового излучения большинства бытовых объектов. в том числе и организм человека. Это излучение по-прежнему ведет себя в большинстве случаев подобно «свету» и может быть смоделировано с использованием стандартных методов компьютерной графики (в отличие от радиоволн , когда длины волн становятся достаточно длинными, чтобы стандартные предположения о лучевой оптике начали разрушаться), но мир, как видно В тепловом инфракрасном диапазоне есть свои особенности:
Как отмечалось выше, большинство объектов будут светиться в инфракрасном диапазоне. Что касается видимого света, вы можете предположить, что существует всего несколько реальных источников света, а все остальное просто отражает свет, излучаемый другими источниками. Для теплового ИК-излучения, в зависимости от точной выбранной длины волны, часто имеет место обратное.
И наоборот, большинство поверхностей также будут достаточно эффективно поглощать тепловое ИК. Это, в свою очередь, согреет их, заставляя их самостоятельно излучать больше ИК. По сути, это как если бы почти каждая поверхность была фосфоресцентной .
Тепловой ИК-спектр (то есть «цвет»), испускаемый большинством поверхностей, будет в основном зависеть от их температуры. Собственная излучательная способность поверхностного материала тоже имеет эффект, но относительно ограниченный.
Таким образом, по сравнению с нормальным видением света моделирование реалистичного теплового инфракрасного зрения потребовало бы большего внимания глобальному освещению и динамически изменяющимся значениям излучательной способности. В зависимости от ваших настроек, вы можете немного обмануть здесь: например, для статических сцен, глобальные функции радиационного теплового переноса могут быть предварительно рассчитаны и встроены в статическую карту освещения , точно так же, как если бы вы имитировали глобальное освещение в видимый спектр.
Если вы хотите смоделировать вид с помощью термографической камеры в своей игре, я бы рекомендовал, по крайней мере, следующее:
Рисуйте и / или вычисляйте специальные текстуры ИК излучения и / или отражательной способности для ваших объектов. Обратите особое внимание на излучательную способность теплых предметов (например, людей или машин), которая должна соответствовать температуре их поверхности. Отражательная способность относительно менее важна.
Вы, вероятно, захотите использовать только один спектральный канал (т.е. нарисовать все в монохромном режиме), соответствующий общему тепловому ИК потоку. Вы можете выполнить постобработку изображения, сопоставив полученные значения градаций серого с градиентом ложного цвета, чтобы имитировать традиционное сечение плотности, используемое для тепловых изображений.
Рассмотрите возможность точного отслеживания температуры ваших поверхностей, чтобы, например, пятно на земле, на котором лежал человек, оставалось теплым (и, следовательно, светящимся в инфракрасном диапазоне) в течение некоторого времени даже после того, как человек отошел. Есть несколько способов, которыми вы могли бы справиться с этим (например, отслеживание температуры на вершину, добавление декалей для кратковременных локальных изменений температуры и т. Д.) С различными компромиссами между реализмом и вычислительными затратами. Вы , наверное , не нужно , чтобы сделать это очень реалистично, но даже имея этот эффект , присутствующий на всех было бы приятно прикасаться.
источник
То, что вы обычно видите от мира, - это визуальная часть света, которая отражается объектами. Зеленый объект отражает только зеленый свет, красный объект - только красный, а синий - только синий. Инфракрасный можно считать четвертым цветом, который ваши глаза не воспринимают. Инфракрасная камера делает инфракрасный свет видимым для вас, воспринимая его с помощью датчика и преобразуя инфракрасное изображение в видимые длины волн.
Точно так же, как некоторые материалы более или менее ярко окрашены в красный, зеленый или синий цвета, они также отличаются яркостью в инфракрасном диапазоне. Яркость инфракрасного излучения может, но не обязательно, соответствовать яркости видимого света.
Вот сцена в видимой и в ИК. Обратите внимание, что листья деревьев намного ярче в инфракрасном диапазоне, чем стволы, но яркость инфракрасного излучения различных частей фасада здания одинакова в видимом и инфракрасном свете.
Что вы можете сделать, это создать две версии всех ваших текстур: RGB-текстуру для видимого света и альтернативную монохромную текстуру для инфракрасного. В обычном режиме вы используете текстуру RGB, а в ИК-режиме вы используете ИК-текстуру.
Вы также можете использовать разные источники света в ИК-режиме. Солнце излучает столько же инфракрасного света, сколько и видимый. Но искусственные источники света (такие как галогенные лампы или светодиоды) производят мало или почти не излучают ИК-свет, поэтому они не освещают инфракрасное излучение. С другой стороны, есть источники света, которые намного сильнее в инфракрасном диапазоне (например, открытый огонь) или видимые только в инфракрасном диапазоне (горячие объекты, которые недостаточно горячие, чтобы светиться красным. Или искусственные источники инфракрасного света. Знаете ли вы, что когда вы носить ИК-очки, вы можете использовать пульт дистанционного управления телевизора в качестве фонарика?). Различные условия освещения в нормальном и инфракрасном освещении могут быть интересным элементом игрового процесса.
источник