您将如何使用着色器构建逼真的红外视觉效果?现实的,我的意思是看起来像这个例子的现实。
我有一个想法,要制作一个纹理以确定材料散发多少热量,然后通过使用法线和视图矢量的点积来确定有多少热量到达观察者,但是我什至不确定这就是热视觉甚至可以正常工作,所以我想在开始实施可能完全错误的东西之前检查是否有更好的方法。
您将如何使用着色器构建逼真的红外视觉效果?现实的,我的意思是看起来像这个例子的现实。
我有一个想法,要制作一个纹理以确定材料散发多少热量,然后通过使用法线和视图矢量的点积来确定有多少热量到达观察者,但是我什至不确定这就是热视觉甚至可以正常工作,所以我想在开始实施可能完全错误的东西之前检查是否有更好的方法。
Answers:
有IR,然后有IR。通常称为“ 红外 ” 的光波长范围从人类视觉范围的边缘(大约700 nm)一直扩展到1 mm = 1,000,000 nm。
Philipp的答案对于“近红外”光(大约700至1,400 nm)是正确的,该光基本上与普通可见光相同,只是肉眼无法看见。要对近红外视觉建模,您只需用替代模型替换对象的纹理和光源颜色,以替代其在不同波长下的反射率和光强度
但是,根据问题的措辞和所链接的视频,您似乎对“热红外”范围(8,000至15,000 nm)更感兴趣,该范围对应于大多数日常物体的热辐射光谱的峰值,包括人体。这种辐射在大多数情况下仍然像“光”一样起作用,并且可以使用标准的计算机图形技术(与无线电波相反,因为无线电波的波长足够长,以至于射线光学的标准假设开始崩溃),可以对其进行建模,但是所看到的却是世界在热红外中确实有其特点:
如上所述,大多数物体将在热红外中发光。对于可见光,通常可以假设只有几个实际光源,而其他所有东西都只是反射其他光源发出的光。对于热红外,取决于所选择的确切波长,通常是相反的情况。
相反,大多数表面也将非常有效地吸收热红外。反过来,这将使它们变热,使它们自己重新发射更多的IR。实际上,似乎几乎每个表面都是磷光的。
大多数表面发出的热红外光谱(即“颜色”)将主要取决于其温度。表面材料的固有发射率也确实有影响,但是相对有限。
因此,与普通的光学视觉相比,对真实的热红外视觉进行建模将需要更加强调整体照明和动态变化的发射率值。根据您的设置,您也许可以在此处作弊:例如,对于静态场景,可以一次计算全局辐射热传递函数并将其烘焙为静态光照贴图,就像您要在其中伪造全局照明一样。可见光谱。
如果要在游戏中通过热像仪模拟视图,则建议至少使用以下方法:
绘制和/或计算对象的特殊红外发射率和/或反射率纹理。要特别注意温暖物体(例如人或机器)的发射率,该发射率应与它们的表面温度相对应。反射率相对不太重要。
您可能只想使用一个与总红外通量相对应的单个光谱通道(即以单色绘制所有内容)。您可以通过将生成的灰度值映射到虚假的颜色渐变中来对图像进行后处理,以模拟用于热图像的传统密度切片。
考虑显式跟踪您的表面温度,例如,即使一个人离开后,一个人躺在地面上的斑点仍会保持一段时间(并因此在红外光下发光)。您可以通过多种方式(例如,每个顶点的温度跟踪,为瞬时局部温度变化添加贴花等),在真实性和计算成本之间进行权衡取舍。你也许并不需要使它非常逼真,但即使有目前这个效果都将是一个很好的接触。
您通常从世界上看到的是物体反射的光的视觉部分。绿色对象仅反射绿色光,红色对象仅反射红色光,蓝色对象仅反射蓝色光。红外线可以被视为您的眼睛无法感知的第四种颜色。红外摄像机通过使用传感器感知红外光并将红外图像转换为您可以看到的波长,从而使您可以看到红外光。
就像某些材料在红色,绿色或蓝色中或多或少是明亮的一样,它们在IR中也有所不同。IR亮度可以但不一定必须对应于可见光的亮度。
这是可见光和IR中的场景。请注意,树木的叶子在红外光下比树干要亮得多,但是建筑物外墙不同部分的红外光在可见光和红外光下是相似的。
您可以做的是为所有纹理创建两个版本:用于可见光的RGB纹理和用于红外的替代单色纹理。在正常模式下,您使用RGB纹理,而在IR模式下,您使用IR纹理。
您可能还考虑在IR模式下使用不同的光源。太阳产生的红外光与可见光一样多。但是人造光源(例如卤素灯或发光二极管)几乎不产生或几乎不产生IR光,因此它们不会照亮红外线。另一方面,有些光源在红外光下要强得多(例如明火),或者在红外光下才可见(热的物体,它们的温度不足以发出红色的光,或者是人造红外光源。当您知道时,戴上红外线护目镜,您可以将电视遥控器用作手电筒吗?)。正常和红外光下的不同光照条件可能是有趣的游戏元素。