旋转天空壳:K+左键
复制粘贴节点:Ctrl+W
一、贴图规格设置
1、贴图尺寸规范
官方推荐贴图尺寸为:2的N次幂
如:256X256、512X512、256X512。。。。。。。
为什么要这样做呢:贴图也是有LOD的,场景远处的物件贴图会以低分辨率显示,降低硬件损耗。看下图Mip数量(贴图的LOD)。
查看贴图相关信息:
打开贴图细节面板:双击贴图打开。
天空盒贴图
为了保留天空盒的清晰度,需要把Mip关闭。
2、颜色贴图
不带Alpha的颜色贴图必须是8位数RGB颜色贴图。
带Alpha的贴图是32位数的RGB颜色贴图。
如果在UE4里,发现颜色贴图泛白,那么颜色贴图是16位数的。改成8位数就正常了(从SP、SD里导出贴图时注意设置)。
如果贴图颜色还是泛白。可以在PS软件里面新建一个文件,把颜色贴图复制进去,然后另存一张贴图颜色。用这张贴图就行了。
4、材质属性贴图
包括Metallic(金属度)、Roughness(粗糙度)贴图
灰度贴图必须关闭GRB选项。
5、法线贴图
UE4支持Directx的法线贴图。
OpenGL的法线贴图需要反转法线绿色通道(G通道)。
法线贴图必须关闭GRB选项。
二、常用算法(加减乘除)
乘法节点:Multipiy
M+左键(在材质蓝图面板里使用)
加法节点:Add
A+左键
除法节点:Divide
D+左键
减法节点:Subtract
三、UV缩放、平铺、移动、旋转
旋转UV
节点:Rotator(旋转)表达式以双通道矢量值形式输出 UV 纹理坐标,该矢量值可用来创建旋转纹理。
AppendVector(追加矢量)
二、贴图效果调节(蓝图)
1、法线贴图强度调节
2、AO贴图强度调节
3、贴图亮度调节
4、去饱和度(Desaturation)
上图来自官方文档
三、各种材质制作
1、透明材质
推荐看看官方文章《UE4透明材质的理解和应用》
- 基础玻璃材质
- 玻璃杯材质
- 半透明材质渲染排序
在关卡场景里选择使用半透明材质的物件,在物件细节面板的渲染下面设置。
- 使相机光圈(焦距、景深)影响半透明材质
在材质细节面板里关闭材质属性的【景深后渲染】
2、自发光材质
- 把自发光模型当静态灯光用
选择关卡场景里的自发光模型,在细节面板里勾选【使用静态光照的自发光】
注意:
自发光强度要够强。
在【世界场景设置】 里提高【间接光照反射次数】。
烘培光照贴图之后才能看到效果。
3、Decal贴花材质(延迟贴花)
(1)项目设置里开启颜色贴花。因为贴花不支持纯静态光照,不开启就不会显示颜色。
(2)贴花材质制作
(3)场景里添加贴花
(4)使模型不受贴花影响(不接收贴花)
四、呼吸灯制作
1、原理:
用Sine(正弦)函数节点控制自发光明暗波动。
用Time时间节点来控制自发光的 明暗波动速度。
2、节点:
Sine(正弦)函数节点:Sine 表达式在[0, 1]的输入范围和[-1, 1]的输出范围上反复输出正弦波的值。
Time时间节点:用来向材质(例如,Panner(平移)、Cosine(余弦) 或其他时间相关 *** 作)添加经历时间。
取值(0,1),速度由快(0)到慢(1)。
3、节点连接模板:材质参数默认。
六、流水灯制作
1、原理:用Time(时间)节点和Panner(平移)节点控制UV贴图的移动。
2、节点:Panner(平移)
Panner(平移)节点用于创建平移(或移动)纹理的 UV 纹理坐标。
速度 X(SpeedX)指定在 U 方向上平移坐标的速度。
速度 Y(SpeedY)指定在 V 方向上平移坐标的速度。
3、节点连接模板:材质参数默认。
打开CSDN,阅读体验更佳
【UE4】物理材质(蓝图)_Student_Hc的博客_ue4物理材质
UE4中物理材质可以让游戏中的对象识别出材质的不同从而做出不同响应,如子d打在不同材质上播放不同特效,人物走在不同陆面上发出不同的脚步声等等。 首先需要在工程设置中找到Engine->Physice滚动到PhysicalSurface: 可以看到SurfaceTyp...
继续访问
UE4大数据可视化教程(4)——可视化用到的材质蓝图_风里有诗句哈的博客...
学习目标: UE4从入门到入土 学习内容: 1、 UE4基础知识 1.1 UE4 窗口功能 1.2 UE4 偏好设置 1.3 UE4 快捷键 1.4 UE4 输入和输出 2、 UE4 上手 *** 作 2.1 UE4 Scene和Level 2.2 UE4BSP和StaticMesh 2.3 UE4 蓝图 2.4 UE4 UI...
继续访问
最新发布 UE5学习笔记(十二)——蓝图基础之材质蓝图及参数
本文整理了各种材质的传出参数以及各种材质格式的使用方法
继续访问
UE4材质 汇总
UE4材质内容汇总
继续访问
ue4 加载材质_UE4 C++和蓝图相关, 功能编写角度的取舍分析与看法_wei...
ue4 项目开发经验有限, 且工作开发方向非游戏方向, 有很大的局限性. 下文中的C++为UE C++的简写, 原因, 嗯, 应该都可以理解吧, UE4 C++魔改很多. 同时表达观点 UE C++ &蓝图 远大于>UE C++ 或 纯蓝图 ...
继续访问
UE4蓝图:材质编程(0)_闭上左眼看世界的博客
Live Preview按钮用于实时更新材质的预览显示.Live Nodes用于实时更新图表的显示.Live Update用来实时更新节点的显示.Stats按钮用来显示所创建材质的相关信息. 可以看到在图表中默认存在着一个节点,名字和你创建的材质蓝图的名字一样.这个节点...
继续访问
热门推荐 UE4 蓝图教程(三) 材质
简述和现实世界一样,游戏中也包含各种各样的物体,每个物体都有自己的外表。在虚幻引擎中,材质定义了这些外部。它是什么颜色的?有多亮的?是透明的吗?这些都是在材质中定义的。在虚幻引擎中,几乎所有的外表元素都使用了材质。你可以将材质应用于各种物体,例如网格,粒子和UI元素。在本教程中,您将学习如何:1 *** 作纹理改变它们的亮度和颜色2 使用材质实例快速改变物体3 使用动态材质实例改变物体颜色在本教程中,您...
继续访问
【UE4】UE4蓝图基础
一、蓝图可视化脚本与蓝图系统 1.蓝图脚本 蓝图可视化脚本简称“蓝图”或“蓝图脚本”,是一种需要编译的面向对象的可视化编程语言,蓝图完全集成在UE4中,蓝图通过节点与连线工作。 蓝图脚本的节点 触发事件,在蓝图脚本中以红色的节点出现 函数,在看图脚本中以蓝色的节点出现 变量,在蓝图脚本中中以黄色节点出现 2.蓝图系统 蓝图系统又称“蓝图”或“蓝图类”,蓝图类可以看成是一个包含游戏内容的容器,其中可以包含组件、脚本或可以仅仅包含数据。 蓝图类有点类似Unity3d中的预设(prefb),蓝图类可以类似预设
继续访问
UE4--蓝图的作用_清鸿y的博客_ue4蓝图是什么意思
UE4是一种基于蓝图和c++语言的游戏开发引擎,蓝图也被称为可视化编程,将c++语言的代码可视化,通过逻辑性编入到引擎中,这也大大的降低了这个引擎的上手难度,让很多新人可以很快熟练地使用这个引擎,所以就可以得出蓝图的重要性。
继续访问
UE4蓝图案例:制作实时反射镜面材质_羞涩的小红豆的博客_ue4...
UE4版本 4.7.6 通过蓝图来制作实时反射镜面材质 一、新建一个空的项目 如图1 二、向场景中添加[Modes]->[Basic]->[Cube] 设置[Cube]Actor 调节成适当的宽度和高度 图上(3)的位置就是用来当镜面的。
继续访问
UE5学习笔记(二)——3D材质蓝图的常用节点介绍
什么是材质:材质是模型表面涂抹的油漆,多层油漆形成了物理基础渲染(PBR Physically Based Rendering),它可以模拟自然界的任何材料的视觉效果。
继续访问
UE4如何动态修改材质(材质参数集)
UE4如何动态修改材质(材质参数集)UE4如何动态修改材质一、Material Parameter collection是什么?二、使用步骤1.创建材质参数集2.创建参数3.添加到材质4.动态修改材质参数集 UE4如何动态修改材质 一、Material Parameter collection是什么? Material Parameter collection就是材质参数集可以自定义创建Value值,然后获取并动态修改.便于在材质实例比较多或者模型数据量比较大的情况下使用 二、使用步骤 1.创建材质
继续访问
UE4制作基础材质蓝图模板
UE4制作基础材质蓝图模板
继续访问
SP Base Color(颜色贴图)导入UE4后泛白问题及解决方案
问题:Sp贴图导入UE4泛白 原因:png格式的basecolor贴图导入时会默认不勾选sRGB,而拖入材质创造节点后,采样器默认会选择线性颜色。(采样器basecolor贴图要选择颜色、norml贴图选择法线、其他贴图选择线性颜色) 解决:换将贴图格式换为JPG格式。 ...
继续访问
UE4 材质学习 (02-利用UV来调整纹理)
4.选中 TextureCoordinate 节点,在细节面板中可以通过U平铺和V平铺两个参数来调整纹理的疏密。此时,可以观察到纹理向上偏移了1/5个单位。可以看到纹理的横轴和纵轴都变密集了2倍。1.在内容浏览器中新建一个材质。2.双击打开uvTest。3.创建如下节点并连接。
继续访问
UE4学习日记(四)基础的材质 *** 作
UV坐标系,又叫贴图坐标系,是0-1的坐标系,横轴为u,纵轴为v。模型之所以能够出现精美的贴图,正是通过UV坐标系将对应的贴图放置的模型的对应位置上。 如上图中的标红块,就是车辆的车顶部分,会映射到车顶。 如在3d建模软件中左右上下拖动贴图,会导致模型上的贴图发生平移。如果放大缩小,贴图也会发生对应的变化。 在材质界面按下【U+鼠标左键】,可以添加一个UV坐标系。就是以下的图形。该图形之所以是这种颜色是因为它只做了R和G通道的渐变混合。 然后介绍一些UE4做材质的常见 *** 作。 1、首先如何应用一张贴图到材
继续访问
14_ue4蓝图实现开关门
蓝图开关门
继续访问
在UE中做一个用材质来处理贴图的蓝图工具
目标 做一个蓝图工具,对于一个输入图像,可以使用材质中的逻辑将计算后的图像输出。 0. 创建一个蓝图 这里我选择创建 Editor Utility Blueprint 型蓝图,因为它提供了一个右键就能执行命令的菜单,我觉得很方便。 选择EditorUtilityObject作为父类,它是一个较为基础的类。 创建后可以右键看到能执行命令的菜单: 它执行的就是Run函数,可以在蓝图中重载它: 比如连接一个打印一个 Hello 现在再右键菜单中执行命令的时候就可以看到打印Hello。 1. 创建Ren
继续访问
蓝图的教程
动作映射是判断按的键是否按下或者释放,轴映射是用来判断是否按键一直按着的情况,每帧每帧检测。 (这边还有个小技巧就是可以把这个旁边的键点一下,变成黄色的然后输入自己想输入的字母) --- 然后在角色的文件夹下面创建一个角色的蓝图类,创建角色的蓝图类是因为角色蓝图专门用作人物的属性,封装了很多跑步、、蹲伏飞行等等属性 组件:不同组件可以给蓝图添加不同的功能,添加摄像机,碰撞体等等 课程内容2-2 21:08 笛卡尔的标准坐标轴,X轴始终是前后,Y轴始终是左右,Z轴始终是上下 课..
继续访问
Unreal 入门-AO贴图
1 AO贴图详解及生成方法 1、Ao贴图的作用 Ao-AmbientOcclusion,“环境吸收”或者“环境光吸收” Ao贴图就是为模型提供了非常精确和平滑的阴影,就好像给模型打了全局光照一样的效果。 通俗来讲就是:Ao贴图不需要任何灯光照明,它以独特的计算方式吸收“环境光”,也就是同时吸收未被阻挡的光线和被阻挡光线所产生的“阴影”,从而模拟全局照明的结果,它主要是
继续访问
UE4-材质法线强度调整、法线贴图混合、自定义材质函数、材质边缘过渡、植被动态效果
一、法线强度 想控制一张法线贴图的呈现强度,不能直接对整个贴图的UV进行运算,需要对法线贴图的RG通道进行运算,并将每个通道的计算结果通过追加节点Append组成新的数值,改变强度参数,从而改变物体表现的强度。 1.各通道使用乘法与强度参数NormalIntensify相乘 2.使用追加节点,组合新的向量。并将值与Normal链接。 二、法线贴图融合BlendAngleCorrectedNormals 1.使用 BlendAngleCorrectedNormals 节点,完成两张法线贴图的叠.
继续访问
UE4 动态材质设置
UE4的话,有3种材质: 1-材质(Material) 2-材质实例(Material Instance) 3-动态材质(Dynamic Material Instance ) (1)如何从材质创建材质实例: 右键点击一个材质就可以,材质实例具备材质的静态结构。想要修改材质实例,还需要点掉对应参数的对勾 然后材质实例就变成可修改状态了。 (2)应用环境 基础材质用来编辑材质的结构,材质实例用于制作材质的变数,但是是静态可控范围的,比如即时战略的步兵,或者格斗游戏的1P...
继续访问
ue4材质节点大全_UE4贴图与材质优化
之前写了一篇关于美术架构的文章https://zhuanlan.zhihu.com/p/85927808,好像大家挺喜欢的(也有可能是被大佬点赞了)。那就再稍微谈谈关于UE4的材质和贴图吧。【大家想看什么可以在这篇文章里金木研:ue4文章意见征集zhuanlan.zhihu.com评论的,不要像女朋友一样让我猜她想看什么哈哈哈哈哈,都是大老爷们,积极交流啦】好,废话不多说,本文主要是从优化角度去...
继续访问
UE4材质基础整理
一:材质基本属性节点 底色(BaseColor):基础颜色 金属色(Metallic):金属度 高光(Specular):主要用于非金属材质表面反光效果(0表示无反射,1表示全反射) 粗糙度(Roughness):粗糙或者平滑度 自发光(EmissiveColor):控制材质的哪些部分发光,值可大于1 透明度(Opactity):适用于 半透明(Translucent)、添加(Additive) 和 调制(Modulated) 材质模式下(0表示完全透明,1表示完全不透明),当和次表面颜色(Subsurf
继续访问
UE4材质 制作UV贴图
我们想要制作一张uv贴图,是一个什么意思呢?我们知道一般来说,我们都是根据uv来采样贴图,一般来说这个事情都是美术同学来制作的,所以我们想要进行的是在UE4中,动态或者根据自己的实际情况来生成一张贴图,并且我们要存储的内容也可以自己定。你可以自己生成法线贴图,或者是世界坐标的贴图,等等,并不拘泥于只存储颜色信息。 那么,我们如何进行相关的 *** 作呢。 渲染目标 首先我们要做的就是生成一张RT,也就是r...
继续访问
ue4 材质蓝图
ue4
材质
使用RenderDoc在编辑器中捕捉了一帧。一个实际游戏里的渲染流程和这个可能不一样,但通过捕捉到的数据我们可以粗略地窥见UE4是怎么渲染一帧的。声明:以下分析基于GPU捕捉数据以及UE 4.17.1的渲染器代码,(作者)本人先前没有使用UE的经验。如果我漏掉了什么东西,请在评论中让我知晓。
幸运的是UE4的draw call列表非常整洁,并且有良好的注释,这会使我们分析起来更简单。如果你的场景中缺了些材质或者你的渲染质量设置得较低,你捕捉到的draw call列表可能和我的不一样。例如如果你的场景中没有粒子效果,那么ParticalSimulation这个 render pass就不会出现。
SlateUI这个pass包括了所有UE编辑器用于渲染UI的渲染调用,这一部分本文将会忽略,重点关注Scene下的所有render pass。
粒子模拟
UE4的一帧以ParticleSimulation pass开始。这一步在GPU上计算了场景里所有的粒子发射器(emitter)的粒子运动以及其他属性,并将结果输出到两个渲染目标(rendertarget)上,一个格式为RGBA32_Float,保存位置,另一个为RGBA16_Float,保存速度以及其他一些和粒子时间/生存周期相关的数据。下图展示了RGBA32_Float格式的渲染目标保存的数据,每一个像素代表了一个sprite的世界坐标。
我在场景中添加的粒子效果似乎有两个emitter在GPU上模拟时不需要进行碰撞检测,所以可以在每一帧较早的时候运行其对应的render pass。
Z-Prepass
接下来就是PrePass流程,这一步其实就是z-prepass,将所有不透明物体渲染到一个R24G8的深度缓冲中。
值得注意的是UE4使用reverse-Z来保存深度,意味着近裁面的深度值为1,远裁面的深度值为0。这使得深度缓冲的精度更高,避免在远处发生z-fighting的现象。从该pass的名字可以看出这一步是由“DBuffer”触发的。DBuffer是UE4用来保存延迟贴花(deferred decal)的缓冲,这一步需要场景深度,所以会启动Z-prepass。这个Z-buffer还会用在其他地方,例如遮挡检测和屏幕空间反射,这些我们会在之后提及。
Draw call列表中的一些渲染pass似乎是空的,例如ResolveSceneDepth,这一步我猜测是用于那些需要在使用纹理前resolve渲染目标的平台(PC平台不需要);又比如ShadowFrustumQueries,这一步看起来是个傀儡标记,因为真正的阴影遮挡测试发生在写一个渲染pass中。
遮挡检测
BeginOcclusionTests负责一帧中所有遮挡测试。UE4默认使用硬件遮挡查询(hardware occlusion queries)来进行遮挡测试。简而言之分为3步:
将所有被标记为遮挡体的物体(例如一个较大的solid mesh)渲染进一个深度缓冲。
创建一个遮挡查询(occlusion query),提交该查询并渲染那些我们希望查询遮挡情况的模型。这一步使用硬件深度测试(z-test)以及我们在第一步中创建的深度缓冲。遮挡查询将返回通过深度测试的像素数量,如果结果是0就意味着该物体完全被solid mesh遮挡。由于为了深度测试而去把完整的模型渲染一遍的开销很高,这一步我们渲染模型的包围盒,而不是原模型,如果该包围盒不可见(也就是没通过深度测试),那么该包围盒所代表的模型肯定也不可见。
将查询结果读回CPU,根据被渲染像素的数量我们决定是否提交模型给GPU渲染(即便是有一小部分像素可见我们也可以不读渲染这个模型)。
UE4根据具体情况决定使用哪一类遮挡查询:
硬件遮挡查询有诸多劣势,例如有drawcall粒度上的问题,渲染器需要对每一个模型(或者一个模型批次)提交一个drawcall来进行遮挡查询,这会使得每一帧的drawcall数量显著上升;还有一个问题是硬件遮挡查询需要将结果读回到CPU,这就需要在CPU和GPU之间同步,并且要求CPU一直等待到GPU完成查询处理的时刻。这对instanced物体并不友好,但在这里我们先忽略这个问题。
对于CPU与GPU间的同步问题,UE4使用和其他引擎类似的方法:将CPU对数据的读回 *** 作延迟几帧进行。这个方法大部分情况下可行,但在摄像机高速移动的时候可能会导致物体的突然出现(pop in)(实践中这不是个大问题,因为物体在遮挡剔除时使用包围盒来计算遮挡,这一步是保守,即便完全不可见的物体也可能被标记为可见)。额外的drawcall开销依然存在,但这个问题也是可以解决的。UE4通过以下方法来减轻这个问题的影响:
首先所有物体会被渲染到深度缓冲。(也就是之前提到的这一过程)
对于所有需要遮挡测试的物体向GPU提交一个遮挡查询请求。
在每一帧的最后,CPU从前一帧(或者更加前面的帧)读回物体的可见性结果。如果物体是可见的就将物体标为在下一帧需要渲染。对于不可见的物体,将其加入一个“分组”的查询中,该查询会以批次提交最高8个物体的包围盒组,测试这些物体在下一帧是否可见。
如果整个分组在下一帧变为可见,那么再将整个组重新分离为独立的遮挡查询并提交。
如果相机和物体是静止的(或者缓慢移动),这一优化会将必要的遮挡查询数量减少8倍。唯一一个我注意到的奇怪地方是被遮挡物体的批次查询组合方式似乎是随机的,而不是基于物体在空间上的距离。
这一步对应于上图中的IndividualQueries和GroupedQueries标记。GroupedQueries在这一帧是空的,因为UE4没有在前一帧中找到任何需要这一 *** 作的物体。
在整个遮挡剔除pass的最后,ShadowFrustumQueries提交所有针对本地光源(local light,也就是点光源或者聚光灯)的包围盒的遮挡查询(无论光源是否投影都会提交,和这一步的名字所表达的意思不同),如果某个光源被完全遮挡住了那么就没必要去对该光源进行任何光照/投影计算。值得注意的是我们的示例场景中有4个点光源(每一帧每个光源都需要计算shadowmap),但是ShadowFrustumQueries这一步提交的查询数量为3。我猜测这是因为其中一个光源的包围盒和相机近裁面相交,因此UE4认为该光源必然可见。另一点值得一提,对于一个需要计算cubemap shadowmap的动态光源,UE4会提交一个球体来进行遮挡测试。
对于需要计算逐物体阴影的静态(static)动态光源(之后会有更详细的介绍),UE4会提交一个视锥体来进行遮挡检测:
最后对于PlanarReflectionQueries这一步,我估计是指用于计算平面反射(planar reflection)的遮挡剔除计算(方法是将相机变换到渲染平面之后/之下在重新绘制物体)。
Hi-Z缓冲的生成
接下来,UE4会创建一个Hi-Z缓冲(passes HZB SetupMipXX),存储格式为16位浮点数(R16_Float)。这一步将Z-prepass阶段得到的深度缓冲作为输入创建一个深度值的mipmap链(mipmap chain)。这一步还会将深度重新采样为分辨率大小为2的幂次数的纹理,这样用起来更方便。
之前提到,由于UE4使用reverse-Z,pixel shader在降采样时使用最小值 *** 作符(译者注:也就是指每次降采样时选取邻域内深度值最小的像素输出到下一个mipmap)。
阴影的渲染
接下来一步是阴影计算render pass(ShadowDepths)。
在这个场景重我添加了一个固定光源的平行光(stationary directional light),两个可移动(movable)的点光源以及一个静态(static)的点光源。所有光源都会计算阴影。
对于固定光源(stationary light),渲染器会为静态物体烘焙阴影,并只为动态物体计算动态阴影。对于可移动的光源每一帧都需要为所有物体计算阴影(完全动态)。最终对于静态光源(static light)其阴影会被烘焙入光照贴图(lightmap),所以这些阴影在渲染中不会出现。
对于平行光我添加了分三个层级的级联阴影(cascaded shadowmaps),以观察UE4是怎么处理这个功能的。UE4创建了一个3x1的格式为R16_TYPELESS的纹理(每行3个tile,每层阴影一个),每一帧清除一次(意味着每一帧所有层都要更新,而不会有隔帧更新之类的优化)。随后,在Atlas0 render pass中所有物体会被渲染进对应的阴影tile中。
从上面的drawcall列表可看出只有Split0需要渲染一些物体,其他块是空的。阴影在渲染时无需pixel shader,这能使得阴影的渲染速度翻倍。值得注意的是无论平行光是静止的还是动态的,渲染器会将所有物体(包括静态物体)都渲染到阴影贴图中。
接下来是Atlas1 render pass,这一步将渲染所有固定点光源(stationary light)的阴影。在我的场景中只有那块岩石模型被标记为动态物体。对于固定光源(stationary light)和动态物体,UE4使用逐物体阴影贴图,保存在一个纹理图集(texture atlas)中,意味着对于每一个光源,每一个物体都会渲染一个shadowmap。
最后,对于动态光源,UE4使用传统的立方体阴影(cubemap shadowmap,在CubemapXX passes中),使用一个geometry shader来选择要渲染到cubemap的哪个面上(以减少draw call)。在这一步只渲染动态物体,所有静态/固定物体会被缓存起来。CopyCachedShadowMap这一步会把阴影缓存复制进来,然后在此之上渲染动态物体的阴影深度。下图是一个动态光源的立方体阴影缓存中一个面的内容(CopyCachedShadowMap这一步的输出)
这是渲染了动态物体(石头)后的结果:
静态物体的阴影缓存不会再每一帧重新生成,因为渲染器知道(我们场景中的)这一光源没有移动(尽管被标记为动态光源)。如果光源移动了,渲染器会在每一帧渲染动态物体前把所有静态物体重新绘制入阴影缓存中(这一步我在另一个测试中证实):
唯一一个静态光源(static light)完全没有出现在drawcall列表中,意味着这个光源不会影响动态物体,只会通过光照贴图去影响静态物体。
在本文最后提个建议,如果在你的场景中有固定光源(stationary light)请确保在编辑器中测试性能前烘焙光照(我不确定在standalone模式下运行时是否需要这样),如果不烘焙的话UE4会将它当做动态光源并渲染立方体阴影,而不是逐物体阴影。
在下一篇中我们会继续探索UE4的渲染流程,考察light grid生成,G-prepass和光照这些渲染步骤。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)