Unity3d反射(Reflection)材质的探讨【2021】

无论是VR、AR,还是游戏开发,都绕不开反射材质,一些童鞋说用反射探测器(Reflection Probe)制作反射,总感觉地板的反射不正确,本文小姐姐就这一话题,和大家一起探讨一下反射材质的制作,如对本文中的知识点有疑问可V询(qtpl_wx)小姐姐,也可淘→Unity3d模型预处理灯光布设场景烘焙后处理特效等美工制作及场景优化实战。

本文将以下图所示的场景为例,来制作地板的反射,大家都应该注意到了,地面上还有一个地台,地台上还有一个圆形的地台,小姐姐也打算为这两个地台也制作一些反射。

在这里插入图片描述

首先我们用反射探测器来制作一下反射,看看其反射不正确的问题到底出在哪里。如下图所示,在场景中添加一个反射探测器,并调整反射探测器的手柄,使其包络整个房子空间。

在这里插入图片描述

用反射探测器制作物体反射,得经烘焙(实时模式除外)并配合物体材质的光滑度(Smoothness)甚至金属性(Metallic),才会呈现反射效果,所以我们先烘焙一下整个场景,然后调整地面材质的光滑度,如下图所示,此时地板有了反射效果。

在这里插入图片描述

仔细观察之后,我们发现房间柱子的反射明显不对,如下图所示:

在这里插入图片描述

再换个角度来观察,柱子的反射还是不对,而且窗户和墙面没有反射,如下图所示,这显然是不正确的反射。

在这里插入图片描述

接下来我们选中反射探测器,勾选Box Projection(立方体投影)选项,反射似乎有了变化,仔细观察,反射还是不正确,如下图所示:

在这里插入图片描述

我们这里暂且不追究地板的反射为什么不正确,而是导入一个茶壶和万向节物体,重新烘焙之后,调整这两个物体的光滑度,结果如下图所示。

在这里插入图片描述

我们拉近到茶壶和万向节物体,从不同角度观察,发现其反射是正确的,如下图所示:

在这里插入图片描述

由此可见,反射探测器仅适用于曲面物体的反射,不适用平面物体,这也正是很多人用反射探测器制作地板反射不正确的根本所在,那么平面物体的反射如何制作呢,下面我们就来讨论。

接下来我们可按下图所示的步骤来设定地板的平面反射:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后调整的效果如下图所示,由图可见,这回地板的反射关系正确了。

在这里插入图片描述

实际上很多童鞋制作的地板反射并不是上图这样的,而是如下图所示,很显然下图的地板反射太假、太滑、太脆弱,没有一点厚重感,苍蝇蚊子落上去会摔成骨折。真正的平面反射一般并非全反射,而是区域反射,上图小姐姐给地板贴图添加了Alpha通道,地板的反射是由这个通道控制的,下图之所以全反射,是因为没有控制反射的Alpha通道。

在这里插入图片描述

PlanarReflection(平面反射)Shader的贴图要求带有控制反射的Alpha通道,如下图所示:

在这里插入图片描述

下面我们来看看平面反射shader的几个参数,具体如下图所示,其中主贴图(Main Tex(RGBA))用其后括号中的RGBA特别强调这张贴图必须是带有Alpha(A)通道的RGB图像,可以是PSD、TGA或TIFF格式(因为这些格式可以保存Alpha通道),如果这张贴图是没有Alpha通道的图像,shader会默认Alpha通道为为白色,这个shader中白色Alpha通道会全反射,黑色Alpha通道为不反射,介于白色和黑色之间的灰阶Alpha通道为不同强度的反射。

在这里插入图片描述

下面我们把前面两张地板反射的截图对比一下,如下图所示,第一张是小姐姐制作了Alpha通道的地板的反射,形成了区域反射。第二张是没有Alpha通道的地板反射,刚才我们说过,如果没有Alpha通道,shader会按白色的Alpha通道对待,即全反射。

在这里插入图片描述
在这里插入图片描述

区域反射到底是怎么形成的呢,下面我们就将上面第一张地板贴图用ps打开,如下图所示,可以看到这张贴图是PSD格式的。

在这里插入图片描述

接下来切换到通道面板,如下图所示,由图可见,这张PSD贴图带有Alpha通道:

在这里插入图片描述

现在我们关闭RGB通道,只显示Alpha通道,如下图所示,由图可见,Alpha通道中,不用区域分布着不同灰度的颜色,白色部分将使地板反射最强,黑色部分将使地板不反射,不同的灰色,将使地板呈现不同程度的反射,宏观上形成了不同区域不同程度的反射,所以称之为区域反射。

在这里插入图片描述

下面我们极端一点,直接在Alpha通道中填充白色,如下图所示,然后将其以PSD格式(PSD格式可以保存Alpha通道)保存在Unity的Assets文件夹中。

在这里插入图片描述

回到Unity中,将刚才那张PSD格式的贴图指定给地板,我们发现,地板成了全反射,如下图所示:

在这里插入图片描述

再回到ps中,在Alpha通道中填充黑色,如下图所示,然后保存。

在这里插入图片描述

回到Unity中,更新后地板没有反射了,如下图所示:

在这里插入图片描述

返回到ps中,这回我们将Alpha通道填充成灰色,如下图所示,然后再保存。

在这里插入图片描述

再次切换回Unity,更新后地板的反射如下图所示:

在这里插入图片描述

通过上面的实验,我们发现平面反射Shader的反射状况和主贴图本身无关,只和主贴图的Alpha通道有关系,换句话说,主贴图的Alpha通道控制着这个shader的反射,或者说平面反射shader的反射状况完全由Alpha通道控制。同时我们得到这样的概念,在主贴图的Alpha通道中,白色反射强度最高,黑色最低,灰色反射强度较弱。刚才的例子中,我们在Alpha通道中,每个像素填充了一样的颜色,可以想象,不同像素中如果填充不同的灰度色,那么地板的反射将成为不均为的反射,这样做是非常困难的,所以一般我们不这样去做Alpha通道。

有了上面的概念,下面我们就来制作区域反射的Alpha通道,一般情况下,大家都只给地板贴一张不带通道的jpg图像,要用这个平面反射Shader制作出比较自然的区域反射效果,就得给贴图创建一个Alpha通道,否则Shader会认为Alpha通道是白色的,最后制作的反射就成了极不自然的全反射了。接下来用ps打开用于反射的贴图,如下图所示,由于贴图没有alpha通道,所以需要为贴图创建一个,因此切换到通道面板,按下图提示来创建一个Alpha通道。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将按上述图示步骤制作的带有Alpha通道的贴图指定给地板材质Shader的Main Tex(主贴图),则地板的反射状况如下图所示:

在这里插入图片描述

返回ps继续调整Alpha通道的曲线,如下图所示:

在这里插入图片描述

我们发现上图Alpha通道中白色太多,这样会使地板反射太强,所以按Ctrl+I,将Alpha通道反相,白色和黑色对调,这样Alpha同多种白色会少很多,如下图所示:

在这里插入图片描述

保存上图的修改,返回Unity更新后地板反射如下图所示,由图可见,地板产生了区域反射。

在这里插入图片描述

Alpha通道可根据自己的偏好随便调整,没有什么定式。下面按下图所示的步骤,配合脚本和shader来进一步调整地板的反射:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过以上的图解分析,相信大家对平面反射及其区域反射有了很深的映像,这里做个小结,平面反射及区域反射的关键是控制反射的Alpha通道、反射通道强度以及反射贴图的分辨率(如下图所示),把握好这几个要素,就能做出出色的平面反射效果。

在这里插入图片描述

有了上面的经验,我们就可轻松做出方形和圆形地台的反射,因为整个房间时一个物体,所以不需要再为方形地台和圆形地台加载脚本,只需将这两个地台材质的shader也改为PlanarReflection,然后为这两个地台的贴图也制作用于控制反射的Alpha通道即可,如下图所示:

在这里插入图片描述
在这里插入图片描述

最终效果如下图所示:通过以上的演示,解决了平面及区域反射和曲面反射的并存,在实际项目中平面反射和曲面反射就是并存的,比如摆放茶杯、水壶、和一些器皿的桌面等。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

很多童鞋在测试一些知识点时,常常忽略了播放状态的测试,结果在实际项目中应用时,一播放不是代码不兼容,就是没有任何效果,这里需要强调一下,相机视图和播放状态不是一回事,所以我们播放一下上面的场景,看看有没有平面区域反射和曲面反射失效和不兼容现象,经播放测试后,没有任何问题,也没有卡机现象,如下图所示:

在这里插入图片描述

需要说明的是,现实生活中平面及区域反射一般都比较弱,而且是模糊反射,当然也有比较强的和比较清晰的平面反射实例,掌握了以上所述的平面及区域反射,相信大家都可以轻松搞定。

对于材质比较简单的平面及区域反射,以上的方法完全可以满足反射材质制作的需要,但是对于复杂的材质,只能另择他法,因为上面的shader只能接受一张带Alpha通道的贴图,对于有凹凸、AO、高度需求的材质,无处加载法线、AO等贴图,这正是这个shader的不足之处。

3D软件的灯光加载光域网(IES)来模拟光度学灯光效果已成为一种流行趋势,那么Unity3d是否也能使用光域网,如果可以的话,又如何来使用,本文小姐姐将就这些话题和童鞋们展开简要的图解和讨论。

首先可以肯定,Unity的灯光是可以使用光域网的,具体操作如下图所示。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

需要说明的是,本文所讨论的光域网需要烘焙才可见,不能实时显示,尤其要强调的是,布设灯光时,应使灯光符的箭头所在平面平行于光域网的投射墙面,这样才能让光域网完美呈现,否则会产生形变,如果不平行,应修改灯光的方位角使其与墙面平行。

下图所示为灯光符箭头所在平面与投射平面平行时的光域网形态。

在这里插入图片描述

下图所示为灯光符箭头所在平面与投射平面斜交时的光域网形态。

在这里插入图片描述

由上图可见,只有使灯光符箭头所在的平面平行于投射平面时,光域网才能完美呈现。

另外,灯光符箭头所在平面距离投射墙面越近,光域网跨距越小,灯光越爆,距离越远,跨距越大,但光域网越模糊,灯光越弱,因此,合理的距离是光域网完美呈现的重要因素(Unity3d中的光域网不同于其他3D软件中的光域网)

下图是小姐姐通过大量实验总结的36个Unity3d常用光域网经烘焙后的形态,由图可见,每个光域网的名称中有三个参数,第一个为光域网文件的编号、第二个是与墙面的距离、第三个是灯光的强度,大家可放大观察光域网的细节,根据需要选择对应的光域网文件。

在这里插入图片描述
在这里插入图片描述

一些童鞋烘焙一个灯光的光域网,得几十分钟,36个光域网同时烘焙,估计得几十小时,小姐姐烘焙这些光域网,只用了5分钟(如上图左下角所示)

下图所示为36个Unity3d常用的光域网文件。

在这里插入图片描述

下图为光域网在实际项目中的应用:

在这里插入图片描述
在这里插入图片描述
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,932评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,554评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,894评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,442评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,347评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,899评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,325评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,980评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,196评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,163评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,085评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,826评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,389评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,501评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,753评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,171评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,616评论 2 339

推荐阅读更多精彩内容