查看: 1413|回复: 0

[知识] 3D眩酷技巧(二)HDR高动态光照,法线贴图,视差贴图

[复制链接]

902

主题

950

帖子

3930

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3930

最佳新人

发表于 2018-11-12 12:44:26 | 显示全部楼层 |阅读模式
高动态光照(High Dynamic Range)
很多人对HDR的第一感觉就是“太亮了、好刺眼、受不了”。其实HDR并不是像许多玩家理解的那样就是简单的“高亮”,不是让画面有更大的亮度或是对比度。大家都知道,当人从黑暗的地方走到阳光下时,我们的眼睛会不由自主的眯起来,那是因为在黑暗的地方,人为了更好的分辨物体,瞳孔张开很大,以便吸收光线;而突然到了光亮处瞳孔来不及收缩,视网膜上的视神经无法承受如此多的光线,人自然会眯上眼睛阻止大量光线冲击视神经。
我们的眼睛非常敏感,而电脑就不具备这种功能,因此就通过HDR技术在一瞬间将光线渲染得非常亮,然后亮度逐渐降低。所以,HDR的最终效果应该是亮处的效果是鲜亮的,而黑暗处你也可以清晰的分辨物体的轮廓,位置和深度,而不是以前的一团黑。动态、趋近真实的物理环境是HDR的特效表现原则。
高亮的部分仍保持了相当丰富的细节

33_3_3e7b56d155524a9.jpg


HDR并不仅仅是反射的光强度要高。在游戏中,如果你盯着一个面向阳光直射的物体,物体表面会出现丰富的光反射;如果盯着不放,物体表面的泛光会渐渐淡出,还原出更多的细节。HDR特效是变化的,因此称做高动态光照。
   HDR是分种类的,一般按可精度分为:Int16(整数)、FP16(浮点)、FP32等等,数字越大精度越高,运算量当然也越大。其中Int格式的HDR在SM2.0下即可实现(如半条命2:失落的海岸线、第一章、第二章),FP格式要SM3.0或以上才能实现(目前有HDR的游戏基本都是FP格式),在DX10中HDR的精度已经提升到FP128。
   说到HDR不得不提另外一个特效:BLOOM。BLOOM也能实现和HDR类似的效果,但BLOOM的是静态的,HDR是动态渐变的,BLOOM在细节表现、明暗对比不如HDR,这是BLOOM与HDR的重要区别。实现HDR效果的系统资源开销也比BLOOM大。

33_3_b4f71ffdb2b759a.jpg


33_3_3a8656c63edb056.jpg

这样的HDR效果未免有点倒胃口,太夸张了。(半条命2:失落的海岸线)

33_3_13ae442e195e407.jpg

《无限试驾》的HDR效果我是比较认同的

33_3_3c2aedbda99e826.jpg

《彩虹6号:维加斯》、《生化冲击》的都不错。

33_3_3892c6109cbb05a.jpg

《孤岛危机》的HDR使用已经非常成熟

33_3_8517bd6530aedac.jpg

虚幻3引擎演示的HDR效果:

33_3_5025925b28b32fd.jpg

游戏中贴图是2D的,如果在游戏中换个角度看的话,很容易就会发现墙面没有任何立体感,砖纹看上去非常假!为了让2D贴图看上去也有3D立体效果,就诞生了多种贴图技术,比如凹凸贴图、法线贴图、位移贴图、视察映射贴图等。
凹凸贴图(Bump Mapping)
凹凸贴图技术简单说起来是一种在3D场景中模拟粗糙表面的技术,将带有深度变化的凹凸材质贴图赋予3D物体,经过光线渲染处理后,这个物体的表面就会呈现出凹凸不平的感觉,而无需改变物体的几何结构或增加额外的点面。例如,把一张碎石的贴图赋予一个平面,经过处理后这个平面就会变成一片铺满碎石、高低不平的荒原。当然,使用凹凸贴图产生的凹凸效果其光影的方向角度是不会改变的,而且不可能产生物理上的起伏效果。
凹凸贴图在今天看来已经是老的不能再老的一种技术了,虽然能够获得凹凸的效果,但是凹凸的程度非常受限制,基本上只能做出一些简单的浮雕效果来。这种技术通常用在一些观察视角变化很小的情况上,例如地面,墙壁,远处的一些模型等等,如果角度稍微一大,你就会发现那些凹坑其实是根本不存在的。

凹凸贴图渲染出的墙壁,注意看边缘其实没有任何凹槽

33_3_5662d1a423c6d8f.jpg

法线贴图(Normal Mapping)

       法线贴图技术通过计算高细节度模型的法线信息并将其保存在一张高压缩比(3DC/DC5)的法线贴图之中,然后将这张法线贴图贴用于低细节模型上代替原型的多边形曲面的光照计算,从而等到一个低多边形、高细节的3D模型。这样做就能在保证模型细节的情况下,大幅度降低场景的多边形数目。法线贴图目前已经广泛应用于3D游戏中。
视觉效果达到1亿多边形的场景,通过线框显示发现只用了50万多边形。(虚幻3引擎场景)

33_3_c1c36740a53aee8.jpg

33_3_e4a67a16c961c3b.jpg

在3D Max中渲染一个相同的高精度模型需要200万多边形,而采用Normal Map后的效果. 模型本身只有5287面。(虚幻3引擎的怪物模型,兰姆将军?)

33_3_c07a2f03bc058de.jpg

法线贴图在《孤岛危机》里的应用,立体感表现得非常好

33_3_67c7afae273cf73.jpg

视差贴图(Parallax Mapping)

视差贴图技术我们其实应该称之为视差遮蔽贴图技术,因为在这一技术中,会对纹理的坐标做变换,一些凸出的纹理会遮蔽到其他的纹理,这样就会看起来具备更好的凹凸的感觉了。视差贴图技术的实现原理,其实和法线贴图是一样的,都是根据法线贴图进行的处理。视差贴图比法线贴图提供更好的视觉效果,而且跟法线贴图有同一个目的:在保证模型细节的情况下,大幅度降低场景的多边形数目。
《S.T.A.L.K.E.R.》中的视差贴图效果,砖块和石板上的凹痕表现十分生动

33_3_3fed8b4a86cd5fa.jpg

《孤岛危机》中使用的视差消隐贴图,堪称目前Bump mapping技术的极致!逼真的鹅卵石让人留下深刻的印象!

33_3_4e3c3da1b8dfaaf.jpg

《西部狂野》DX10版也能开启视差贴图(留意右下角的砖块)

33_3_35d920d173a4917.jpg

3D眩酷技巧(一)动态模糊,景深,软阴影
3D眩酷技巧(二)HDR高动态光照,法线贴图,视差贴图
3D眩酷技巧(三)次表面散射,体积云雾,积光,SpeedTree


关注galaxixv,官方微信公众号。
GALAXIX UE4 讨论学习群 140439020
UE4精英学习群  12762592
UNITY学习群   194092348
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


快速回复 返回顶部 返回列表