UE4虚幻引擎开发手机游戏(二)

发表于2017-05-09
评论2 4.4k浏览

上篇回顾:UE4虚幻引擎开发手机游戏(一) 

前面已经对使用UE4开发高品质的手机游戏的UE4渲染器、特性集和渲染管线做了介绍,这篇文章是要对它下面部分进行介绍,结合这两部分的干货内容,大家才能更好的去利用UE4引擎做出一款好的手机游戏。

4. 基础Pass(准备阶段)

       根据阴影和灯光的属性为物体选择合适的Shader

       无光模式

       预处理的距离场阴影 + 光照图

       预处理的距离场阴影 + 光照图 + CSM(用于处理动态物体阴影)

       动态光照(一般与CSM阴影配合)

       其它

4. 基础Pass(绘制阶段)

绘制所有拥有不透明材质的物体(同时计算物体光照), 在HDR/线性空间输出场景颜色

       动态的方向光和点光源(逐像素光照, ps中计算光照)

       静态的距离场阴影

       动态的CSM阴影

       静态灯光产生的光照图

       天光

       反射

4. 基础Pass(渲染顺序)

物体的渲染顺序由设备决定

       不需要任何排序的情况

       支持TBDR的芯片,一般都支持 “HiddenSurface Removal”隐藏面消除

       重新按从近到远的顺序对每个列表进行排序

       最小化状态改变

       重新按从近到远的顺序对所有列表中的所有物体进行排序

       最小化Overdraw

       non-ImgTec GPU的默认选项

       你能够根据自己的需要对该行为进行定制

       r.ForwardBasePassSort = x


5. 延时贴花

       需要场景深度获取的功能

       通过支持的扩展实现

       GL_ARM_shader_framebuffer_fetch_depth_stencil

       GL_EXT_shader_framebuffer_fetch

       GL_OES_depth_texture

       深度缓冲区解析

       支持“Receives Decals”标识

       模板操作

       贴花不支持光照

6. 混合阴影投影

       与延时贴花类同

       不能与静态光照进行比较好的混合

       静态光照 + CSM是一个更好的选择(4.12+

7. 半透明物体处理

       利用Base Pass时使用的相同Shader,在半透的混合模式下对图元进行绘制。

       不对深度缓冲区进行写操作。

       反射支持

       需要完整的场景颜色拷贝。

8. 后处理

       仅在HDR打开的时候才被支持

       根据效果使用的情况需要一些额外的Pass

       景深

       自定义的后处理材质

       Tonemapper Pass发生在最后阶段

       HDR 颜色映射到8位每通道的RGB颜色

       同时将颜色值写回后备缓冲区

       Bloom也在该阶段应用

       Filmic tonemapping(4.13+)

9.HUD & UI

       直接将UI对象绘入后备缓冲区

       Slate BP(蓝图)

       幕布(Canvas

       交换后备缓冲区

光照: 全动态光照

移动的方向光 + CSM阴影

       编辑器准备

       方向光组件,“Mobility” 属性设置为 “Movable”

       设置“Dynamic Shadow Distance Movable Light” 的值

       设置“Num Dynamic Shadow Cascades”的值

       优点

       所有的光都是动态的,都可以被运行时修改

       减少内存大小和包体大小(因为没有预计算的光照信息)

       缺点

       所有在场景中的物体,不管是静态还是动态的,都需要被CSM渲染

       额外的渲染批次和CSM生成开销

静态方向光

更简单的移动平台光照准备

       直接光和高光被逐像素计算

       强度和颜色能被运行时改变,但光的方向不能被改变

       编辑器准备

       方向光组件中,将“Mobility”属性设置为“Stationary1 supported)”

       将“Cast Dynamic Shadows”属性设置为“False”

优点

       更快的渲染速度

       高质量的距离场阴影

缺点

       光的方向不能运行时改变

       仅支持混合角色阴影

       内存和包体大小因为预计算的Shadowmap等信息变大

静态方向光 + CSM阴影

4.13版本的优化

       不再需要对每个物体设置是否接收CSM阴影的属性。

       编辑器准备

       方向光组件,将“Mobility”属性设置为“Stationary1 supported)

       设置“Dynamic Shadow Distance Stationary Light”的值

       设置“Num Dynamic Shadow Cascades”的值

       禁用 “Inset Shadows For Movable Objects”选项

优点

       静态几何体通过距离场阴影产生静态阴影

       动态角色阴影能够很好的与静态阴影混合

缺点

       CSM生成消耗(仅仅只包含动态对象)

       基础Pass需要一个额外的纹理单元(用于CSM阴影)

 

动态点光源

与其他光照准备独立

       每个物体/表面支持最多4个点光

       将“Max Movable Point Lights” 设为大于0的值, 该选项在Project Settings/ Engine Rendering

优点

       当成基础Pass的一部分进行渲染,所以不会产生额外的渲染批次

缺点

       需要额外的shader计算

 

 

灯光通道(???没有搞明白这东东的作用)

灯光通道在4.13及以上版本被支持

       限制:每个物体仅一个静态或者动态方向光能被应用

后处理 – FilmicTonemapper

       对于美术来说可以更自由的获取他们想要的视觉效果。

       通过控制台变量启用

       r.tonemapperfilm(4.12-5.15)

       4.15默认开启了该选项

       r.mobile.tonemapperfilm(4.16+)

       因为有额外的性能开销,建议仅在高端机上使用。

自定义后处理过程

       自定义后处理过程

       通过材质系统创建后处理Shader

       自定义深度

       算定义深度(4.14新增)

       选中的物体可以被渲染到一个独立的深度缓冲区中

       这个独立的缓冲区可以在自定义的后处理中被采样

后处理自定义模板值

自定义模板值(4.15新增)

       PC上可以直接对模板缓冲区中的模板值进行采样

       在移动GPU上不能进行该操作

       UE4通过渲染到一个独立的颜色缓冲区的方式支持该功能

非渲染部分

移动平台的补丁和DLC支持

最小化的APK/IPA + DLC 打包向导(4.13

       极小的包体下载(AppStore/GooglePlay)

       仅需要下载内容时显示的UI

       从云端下载游戏内容和补丁

       强制用户内容更新

移动平台的补丁和DLC支持

“Mobile Patch Utilities” BP 库(4.14

       通过BP控制下载安装处理过程

       进度条 & 错误处理

       存储空间

       Wifi 可用性

       其他

Apk包体支持

       在中国分包模式不可行(阿西, 专门提到中国), 然而在某些情况下大包体在一些设备上不能正常工作

       4.16开始这个问题被修复,现在不存在APK包体大小的限制了

4.16中的移动平台改进

       更小的Android执行程序

       更改编译器的选项移除不使用的代码

       UI 相关蓝图的性能优化

       Android的运行时权限获取

4.16中的移动平台改进

       材质节点新增“VertexInterpolator” – 对移动优化极其有用(???使用VS中的插值代替PS插值)

开发中的移动平台功能

       更快的帧迭代时间 –Android平台

       改进的 编辑器内 移动平台预览

       改进的PC iOS版本发布

       简单的远程工具链安装

       远程日志输出?

 

 

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引