首页

文章

Unity5.x地形工具怎么去除材质的反光效果

发布网友 发布时间:2022-04-19 15:10

我来回答

1个回答

热心网友 时间:2023-07-08 00:14

试一下改变光照方向;

或者

使用阴天效果。。。


---------------------------------------

Unity5实用教程:光照技术的使用技巧


unity5中的光照主要分6个部分来讲解。

Forward(前向)与Deferred(延迟)渲染

Realtime(实时)与Baked(烘焙)光照

引擎的光照工具

光照场景

性能技巧

后期处理


上述的大部分对于Unity制作的内容都是适用的,并不局限于虚拟现实应用。这是非常高级的内容介绍,需要读者具备基础的图形和光照的概念。下面开始吧!

前向与延迟渲染通道

如果心怀疑虑,请使用前向渲染通道。前向渲染通道对VR应用来说很理想,有以下几点原因。前向渲染在前期的性能开销较低,DrawCall较少更宜在CPU运行,在移动VR设备上也同样运行的很好,它还支持抗锯齿和半透明材质。以下是能帮助你决定应用适用渲染管线的简单指南。

延迟渲染

延迟渲染前期的性能开销很大,但它是一个固定的性能开销,添加再多的几何体和灯光也不会产生过多的额外开销。你有几百个实时灯光?那就使用延迟光照吧。延迟光照的开销是与灯光照亮的像素数量成正比的。场景复杂度(灯光照亮的物体数量)并不会影响性能。旁注:UE4 只有延迟渲染管线,这就是UE4制作的Demo在较老的PC上运行缓慢的一个原因。

优点

延迟渲染最适用于包含大量小体积实时灯光的场景。

每个光照都可以当作一个逐像素灯光来渲染,以便在法线和深度贴图中可以精确着色。

每个光照都有一个实时阴影。

权衡

延迟渲染器无法渲染半透明材质。你需要为半透明材质添加一个额外的前向通道。

平行光在延迟渲染器中开销很大。它们影响整个场景,且光照体积无限大。

产生大量Draw Call(场景中每个物体产生的两个Draw Call乘以每个灯光产生的两个Draw Call。)

不能抗锯齿(这对于VR非常不利,因为VR极度依赖MSAA来减少闪烁和忽隐忽现的线)。

前向渲染

前向渲染的前期固定开销较小,因而最适合复杂度较低的场景,但其性能开销与场景复杂度成正比。如果你的场景中只有一对实时灯光,那就使用前向渲染吧。前向渲染器的成本与场景中灯光的数目成正比。像素灯越少则性能越高。

权衡

在每个渲染通道中,每个被像素灯光照到的对象都会被渲染。如果一个对象被10盏不同的灯光照亮,那它将被渲染十次(每个光照通道一次)。这就是前向渲染通道中被灯光照亮的物体越少越好的原因。

从设计上*灯光数量。

基本通道用实时阴影渲染一个方向光,并用额外的通道来渲染其余的灯光。然而,这些额外的灯光不会有阴影。

像素光照数量有限,其余的都是顶点光照。和逐像素光照对象相比,顶点光照提供的效果较简单。


好处

Draw Call较少。每次像素光照射到物体,就会产生一次Draw Call。最坏的绘制调用计数情况是(场景中对象数量*照射到对象的像素光数量)。有很多降低Draw Call的方法(批处理等)

锯齿(8XMSAA,非常适合VR)

支持半透明材质

如果你的目标平台是移动端(如GearVR),使用前向渲染通道,*像素光数量为1~2个


当在前向和延迟渲染间犹豫不决时,别忘了我们这里只讨论实时灯光。场景中有多少烘焙光照都是可以的。烘焙光照贴图,并在运行之前禁用它们。运行时渲染器只会考虑场景中的实时灯光。

实时和烘焙光照

如果你在乎阴影的真实,那就烘焙灯光。硬阴影或者软阴影在一些情况下已足够,但在很多情况下仍不能接受。(比如桌子上的点光源)。在实时光照下,你可以在地面上看到块状阴影。在烘焙光照下,你看见的是一个柔和的,散布在桌下的阴影。实时灯光只在光照有变化(颜色,位置等等)的情况下是必要的。烘焙光照和阴影不会随着实时移动的对象而改变,但可以用小技巧来弥补。(见下面的“光照探针”)。

提高烘焙光照贴图质量

在烘焙时,你可以通过增大烘焙分辨率滑动条(合理的纹理像素分辨率是40~100)来提高光照贴图质量。启用环境光遮蔽(Ambient Occlusion)和最终聚集(Final Gather)。在烘焙之前,检查工程的Quality 和Player 设置。在Quality选项卡中,使用高分辨率的硬阴影和软阴影。在Player选项卡中,选择延迟渲染器。在烘焙前禁用GI预计算。即使使用质量较低的阴影,在运行时采用前向渲染,采用这些设置会使烘焙期间效果达到最好。你可以在烘焙完成后切回前向渲染或低图形质量。

引擎灯光工具

区域光源

可以改变位置和旋转。必须烘焙。

注意:镜面反射显示在表面的单一区域,与该区域光的大小和形状无关。

用于窗口和盒状的灯光(壁顶灯或灯管)。


点光源

可以调整位置,但旋转无效。

一个光秃秃的灯泡,会向各个方向散射光线。用于普通的灯泡环境。


聚光灯

可以设置位置和旋转。

用于手电筒,泛光灯,和天花板灯等。


方向光

位置无关紧要,但可以旋转。

灯光影响整个场景(但可以被屋顶遮挡,这与环境光不同)

使用方向光模拟户外太阳或者月亮光,或者创建一个室外灯光通过天窗来照亮室内场景。

方向光非常粗糙,产生的阴影也是生硬的。


环境光

会微微照亮整个场景(颜色可选)

这意味着即使未被照亮的区域也会有一丝光线

如果希望未照亮区域完全不可见,就要禁用环境光。

使用环境光来改变场景氛围。


全局光照

全局光照是为了实现更具有真实感的场景而计算来自直接光照的简单反射光和阴影。实时全局光照支持改变场景灯光,比如改变灯光颜色,移动直射的太阳光,从白天过渡到黑夜等等。为了提高实时全局光照的质量,增加预计算的分辨率。

光照探针

如果使用烘焙光照,那动态对象就不会有精确的阴影和光照信息。它们看起来很呆滞。使用Light Probes来添加真实感光照,阴影并为动态物体着色。它是预计算的光照信息卷积,可以作用于移入和移出此区域的物体,以较小的代价模拟实时光照。

光照探针用球面调和(SH)模型来存储光照信息。前向渲染器的基本通道渲染像素灯光和所有的SH灯光。这样一来,每个光照探针的CPU开销很小,也不会产生GPU开销。点此了解更多内容。

反射探针

对于镜子或镜面屏这样的反射表面,你需要在此表面上看到周围物体的倒影。这可以用一个反射探针简单的实现。可惜目前只能是立方体形状,最适用于立体房间。对于有动态对象的场景,你可以使用实时反射探针。对于静态场景(或为了降低性能开销),可以使用烘焙反射探针。


反射探针使用长方体投影精确模拟诸如大理石地板上的窗户倒影。立方体本身不会精准反射,而长方体的反射贴图可以解决这个问题。自定义立方贴图可以做更加*真的“波浪”反射(例如在大理石地板上)。

自发光光照

在一个有灯罩的台灯场景中,灯罩上必须有自发光纹理。它将使灯罩显得明亮,对周围环境有柔和的光照。在里面还需放置一个点光源,使得台灯顶部和底部都能发出更清晰更明亮的光。这些光应该会被灯罩遮挡,因此这些光将会以双重锥体形状从灯罩中射出。区域光会有更好的阴影,但自发光贴图有成形的光(并因此产生有形状的反射)

照明场景

天花板灯光(管状或盒状灯)

可以利用标准着色器的自发光属性来实现带状和盒状灯精确而柔和的灯光。你可以使用区域光或自发光材质,或两者结合。天花板上的灯管可能在你直视它的时候发出明亮的光。在管状灯的各个灯管上使用自发光材质。用区域光来实现管状灯实际产生的灯光,实现带有更好的半影效果的阴影。

窗户

对场景的曝光控制和有限的眼睛动态范围,意味着在远离窗口时,室内应正确曝光,但窗口应该被表现出来,展现出明亮的光线和柔和的阴影。这可以通过HDR到LDR色调贴图来实现。当玩家从黑暗的室内移动到明亮的室外场景时,场景的曝光也会随之改变。

使用彩色纹理的窗户(例如:教堂的窗户)可以使用Cookie在地板上投射图案,但Cookie是没有颜色数据的灰度Alpha通道。这很棘手,需要一些黑科技

阴天

在一个阴天的户外场景,直射的“太阳”在通过云层时散射后产生的光线比较柔和。方向光可能不适合,因为它们产生的阴影非常生硬。可以考虑使用浅灰色的环境光,和充满乌云的天空盒立体贴图以及点光源来营造阴郁的光线和阴影。

云隙光

云隙光也被称为阳光光束或灯光轴,这在VR中效果很好,尤其是结合浮尘粒子。它的计算量很大,但Robert Cupisz正致力于实现一个轻量的灯光轴。unity的Asset store上有很多解决方案,但我还没有试过,所以这里没什么建议。

提高性能

以下是一些提高性能的技巧:

降低眼睛的渲染目标纹理分辨率。这是提升性能最简单,最直接的方式。

烘焙光照贴图可以搞定一切?几何体、灯光,和材质越多,会导致烘焙时间越长。将场景划分为多个层次,并分别加载它们。这能大大减少加载所需资源而占用的内存量,移动平台的内存*非常关键。

使用前向渲染?尽量少用像素光。这可以在项目的Quality设置菜单进行更改。

实时光照开销很大。尽可能多使用烘焙光照并在运行之前禁用它们。

光照探针(球面谐和灯)的CPU开销很小,且没有GPU的开销。这是预先计算和模拟实时阴影的简便办法,而无需使用实时灯光。


旁注:VR中的灯光闪烁?

如果你的灯光在一只眼中闪烁(VR的左、右镜头),Unity会剔除灯光。我认为这是一个Bug。解决方法:将灯光标记为重要,这样引擎就不会禁用它了。记住,你也可以根据需求用代码来启用或禁用场景中的灯光,这样就能完全控制。

后期处理和关卡设计

设计真实感的光照时,场景的对比度要很高:明亮的区域,正确的阴影,以及黑暗的区域。不要照亮整个场景(例如环境光),否则将出现面片和游戏那样不真实的场景。

破坏阴影(即让阴影区域更加黑暗,几乎没有任何细节)是比较理想的现实。可以避免那种扁平的效果。

同样,要小心强光使一些区域过度曝光。

查找纹理(LUTS)


左:中性  右:标准  “平衡对比度”纹理

可以通过PhotoShop添加色调与色彩校正,修改阴影,曝光一些区域,并应用PS校正场景的每一帧。

用一个非常简单的LUT来彻底改变一个沉闷的场景,使其有完全不同的氛围


这是一个快速简单的后期处理技术,可以带来截然不同的效果。

变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? U3D创建好游戏以后怎样制作游戏的更新补丁 3dmax模型导入unity后很昏暗,对比度低怎么办? Unity安装好后出问题,这个该怎么解决? 3dmax导入unity3d后模型中心点改变怎么解决? Unity3D如何将现实中的环境给还原搭建出来 萌新刚使用unity感觉建模之后渲染好卡啊,怎么解决? unity shader 做描边屏幕特效,怎么让单个物体进行... 如果用unity制作一个3d游戏,完成的画面的质量和精... 华为p10浮点怎么设置 哪种的灭蚊灯效果好? 灭蚊灯哪个牌子好 灭蚊灯的选购技巧有哪些 灭蚊灯的原理是什么? 灭蚊灯对人体有害吗? 灭蚊灯哪个牌子的好啊? 灭蚊灯买什么牌子的好? 灭蚊灯,哪个牌子的好? 灭蚊灯安装时有什么要求 灭蚊灯真的那么好用吗 请问:什么样的灭蚊灯好? 灭蚊灯对人有没有伤害。是什么工作原理? unity运行后像素特别低该怎么办? Unity3D特效制作,制作完成后材质动画怎么会一卡一... unity建立了要做天空,做了材质球后怎么办 unity做完保存后,再打开发现运行不了,出现“引用... unity3d更新版本后报错怎么解决? unity 重装破解 后白屏 怎么解决? unity引擎的什么特点,使开发者,能够为超过20个平台... unity3d新建项目之后界面一片空白,怎么解决问题?... 请问华为手机上的这个点怎样除去? ios15在哪里更新? ipad系统更新在哪里设置 苹果ios 14在哪更新 苹果在哪更新ios14 同事离职我来交接,该怎么操作? 离职工作交接内容明细 申请离职后,公司没有安排交接的人,应该怎么做呢? 员工辞职交接表怎么写 离职前需要做那些事情? 离职公司派新人来交接工作接不起来怎么办 最近准备提出离职,是先找领导谈还是先写辞职信?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com