3ds Max 中HDRI与none clamp color
2006-08-04 08:22:13 来源:WEB开发网电脑的颜色 ( 这里以 24 位色为例 ) ,是从 [r0,g0,b0]( 亮度 0 纯黑色 ) 到 [r255,g255,b255]( 亮度 1 纯白色 ) ,然而在自然界中,颜色远远不止于此,只不过不论是人眼还是摄像机都只能接受亮度在 0 和 1 之间的颜色,超过这个范围的颜色 ( 色彩溢出 ) 会被 clamp 在 0 和 1 之间。比如太阳,大家都知道它的光是偏黄的大约是 [ r3000,g2800,b2000] 左右 ( 估计的 ) ,但是用于它太亮了,就被校验成了白色。而且,不论是显示器还是照片都不可能显示亮度超过 1 的颜色,所以 2 4 位色用来显示已经够了。
然而,在渲染的时候,问题就来了。如果两个物体之间的颜色不互相影响,那就没什么问题,所以在 max 里,这个问题几乎被人们遗忘了;一旦物体之间的颜色有影响,那 2 4 位色就不够用了,而最近出的 finalrender 的全局照明就依靠物体之间的颜色的相互影响。于是就推出了 HDRI ,其实并不神秘,就是记录了超亮的颜色而已。
在 max 中,两个物体之间的颜色也不是完全不互相影响的,如果你用了折射或反射,或半透明,都是两个物体之间的颜色互相影响,这时就看出 2 4 位色的局限了。两盏灯,亮度不同,渲染出来一样,都是白色,但在诸如大理石之类的表面的反射就不一样了。这样我们就要用到那种超亮的颜色,也就是非校验色 n one clamp color 了。
看这幅图,白色的数字之间看起来亮度一样,但是看反射就不一样了。黑色数字也一样。
白色数字代表它自己的亮度,黑色数字则代表负的亮度,也就是比黑色还黑的颜色,也许这种超黑色用于表面色或自发光不太现实,但是用于透明度或高光贴图等则会有特殊效果。
如何实现呢?其实很简单,有 finalrender 可以用 HDRI ,不过 max 有它自己的方法,适合 max 的所有版本。不知道大家注意没有,在绝大部分的程序贴图的最后都有一个 output 参数栏,对于没有 output 参数栏的, max 准备了 output 材质
这里主要用到右边的输出量 output amount ;色彩偏移 RGB offset ;色彩级别 RGB level 三个参数和校验 clamp 选项。
色彩偏移 RGB offset 相当于亮度。也就是把这个值加到颜色上。
色彩级别 RGB level 相当于对比度,也就是把这个值乘以颜色。 1 就是不变, 2 就是加倍。
至于 output amount ,它用于乘以材质的 map 参数栏的 amount 。
这几个值的范围都在 -9999 到 9999 之间。足够用了。
如果要制作超亮的发光体,把自发光改为自发光色,然后位自发光色指定一个贴图,如果你要一个纯色的自发光,就用两个子颜色相同的 n oise 或类似的贴图。然后更改 output 参数即可。要增加对比度就增加 RGB level( 同时也相当于增加亮度 ) ,要增加亮度就增加 RGB offset( 但是相当于会减小对比度 ) 。
还有一个 clamp 选项,它用于把色彩溢出的部分校验掉,使得颜色局限为 0 到 1 之间。看这个图:
自发光用的同一个世界地图, RGB level 为 15 ,左边的没有 clamp ,右边打开了 clamp ,地面的反射为 15 ,看反射就能看出区别。这就是“校验色”与“非校验色”的区别。其实超亮的颜色在很多情况下都会出现,比如高光, none clamp color 最明显的用途是用于产生镜头光晕 lens effect glow 和镜头高光 lens effect highlight 。
这样就只有超亮的位置有效果,比较真实。
这是在巴西中的应用。用了两个渐变色条贴图,一个做太阳,一个做天空,没有任何灯光。它可以在巴西, fr , mr 等全局照明的渲染器中作光源,亮度可任意调整。 特别是巴西,它的散焦就全靠这种方法产生了。
这是在 max 里的应用。 做过室内效果图的想必对这样的场景很熟悉吧? 你遇没遇到过感觉反射太暗的情况呢? 这个图的桌面用了强度为 5 的反射。注意倒影中的太阳。如此弱的反射,太阳的倒影仍然明亮,用别的方法很难做出来。
还是那个图,加了光晕 直接由 unclamp 控制
更多精彩
赞助商链接