特性集介绍

•ES2

•Mobile渲染器

•对应OpenGLES2.0-3.x(Android平台)       OpenGL ES2.0(iOS平台,支持ES3.0的IOS平台已经能够支持metal, 所以直接使用metal渲染器)

•支持最大8个纹理单元

•Android平台:

ES3.0扩展的支持

Fallback到32位RenderTarget

特性集介绍

ES3_1高端Mobile特性集

•Mobile渲染器

•OpenGLES 3.1(Android平台) Vulkan(Android平台, Android7.0) Metal(iOS平台)

•最大16层纹理单元支持

•浮点RenderTarget支持

•VertexTextures Fetch支持

•sRGB支持(可以支持硬件Gamma校正,但此处一般使用更简化的Shader计算代替,方便统一低配与高配机的效果)

特性集介绍

•SM4

•延时渲染器

•Direct3D10OpenGL3.0 Metal支持

•最大16层纹理单元

•支持延时渲染的最低特性集

特性集介绍

•SM5

•延时或者前向VR渲染器(Forward+)

•Direct3D11, OpenGL4.0, Playstation 4, XboxOne, Metal, GLES3.1 +AEP

•16+纹理单元支持

•支持Tessellation(曲面细分)的最低特性集,可以利用Compute Shader完成一些高级渲染特性支持。

特性集(Android)

打开黄框选中的特性可以让UE4生成ES3_1特性集使用的Shader

•UE4在对应设备执行时会自动选择最匹配的RHI(抽象硬件接口)和特性集

•这些配置可以被设备配置重写

Android Vulkan介绍

Vulkan是虾米?

•用来取代OpenGL和OpenGLES的次世代的渲染Api。

•由工业派设计,克拉魔发起。

•专为下一代硬件设计。

支持Vulkan的UE4(Android平台, iOS官方标配是Metal, 不支持Vulkan)

•运行Android7.0的设备现在自带一个可工作的Vulkan驱动。

•轻量级的Api, 最小化Cpu开销。

•“PipelineState Objects”带来高效的渲染状态切换。

•更多的渲染批次,因为每个渲染批次更轻量化

•???大意应该是按“RenderPass”组织方式带来更高效的Gpu硬件利用率(字被人挡住了。。。)

这里是Epic官方的Vulkan示例(可以自行查阅相关视频)

颜色缓冲区(HDR模式)

对比延时渲染器, UE4移动渲染器使用一个前向渲染器, 仅输出颜色,而不是使用Gbuffer。

•场景颜色

•理想的情况在支持的设备上使用16位浮点RenderTarget。

•不支持的情况使用“ RGBE 编码”或者“马赛克”模式(??Whatis “mosaic”mode???)。

•在渲染过程中RGB存储HDR颜色值。

•Alpha通道用来存储后续会使用到的深度值(软粒子,贴花)。

•深度缓冲区

•通常使用24位深度,8位模板的模式。

•后备缓冲区

•32位RGBA。

•存储后处理和Tonemapping后的最终结果。

RGBE HDR 编码

RGB + 指数 的编码方式需要被低端移动设备使用(运行Android5.X的GalaxyS6/Note4等)

•需要 EXT_shader_framebuffer_fetch的扩展(该扩展在GalaxyS6上可用)

•支持full HDR, bloom 而且没有分辨率限制。

从图中可以看到Native HDR和“Encoding” HDR的实现基本没有区别

颜色缓冲区(LDR 模式)

•32位硬件后备缓冲区 & 深度缓冲区

•系统分配(比如Android上的EGL)

•许多移动设备并不支持sRGB

•场景在Gamma空间中被直接渲染到后备缓冲区,随后透明物体和UI也被直接渲染到后备缓冲区

•最快的渲染方式(一般给简单游戏或者VR游戏使用)

移动平台渲染管线

1.视口建立

2.GPU粒子模拟

3.渲染阴影图

4.基础Pass渲染

5.贴花处理

6.混合阴影处理

7.半透明物理处理

8.后处理 & ToneMapping

9.HUD& UI

1. 视口建立

•查询所有可见物体

•视锥裁剪

•距离裁剪

•预计算的可见性(类似U3D的Umbra,离线计算场景的可见性,运行时通过少量开销即可判断静态物体的遮挡情况)

•关联的可见性

•查询所有可见阴影

•收集动态Mesh项

•更新视口相关的UniformBuffer

2. GPU粒子模拟

•需要支持OpenGLES3.1的设备

•在GPU上对粒子进行模拟

•将粒子位置写入128位的目标中

•将粒子的速度写入64位的目标中

3. 阴影图渲染

•准备深度绘制目标

•查询所有产生阴影的对象

•使用主光视角对这些物体进行渲染

•阴影图将在后续过程被使用

•在基础Pass阶段处理CSM阴影的时候使用

•随后,在需要混合阴影投影的地方使用

前面已经对使用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”属性设置为“Stationary(1 supported)”

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

优点

•       更快的渲染速度

•       高质量的距离场阴影

缺点

•       光的方向不能运行时改变

•       仅支持混合角色阴影

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

静态方向光 + CSM阴影

4.13版本的优化

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

•       编辑器准备

•       方向光组件,将“Mobility”属性设置为“Stationary(1 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版本发布

•       简单的远程工具链安装

•       远程日志输出?

ue4手机ui_UE4虚幻引擎开发手机游戏相关推荐

  1. 打开iPhone自拍,就能用虚幻引擎开发3A游戏大作!新应用无门槛创造超逼真游戏角色...

    贾浩楠 晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 3D游戏人物建模,虚幻引擎可以算标杆了吧? 要是我告诉你,只要会自拍,就能用虚幻引擎开发出和3A游戏一样逼真的3D角色呢? 表情.毛 ...

  2. UE4虚幻引擎开发手机游戏

    该文章来自用户转载 点击阅读原文 UE4虚幻引擎作为游戏开发引擎之一,在很多项目中都会使用到.下面就给大家分享下如何使用UE4开发高品质的手机游戏. 作者介绍 大纲 •介绍 •UE4 针对3A级手游的 ...

  3. 虚幻gameframe_UE4虚幻引擎开发手机游戏(一)

    特性集介绍•ES2•Mobile渲染器•对应OpenGLES2.0-3.x(Android平台)OpenGL ES2.0(iOS平台,支持ES3.0的IOS平台已经能够支持metal,所以直接使用me ...

  4. 虚幻引擎C++编程游戏开发基础

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:23.8 GB |时长:44h 59m ...

  5. 如何将白鹭引擎开发的游戏通过Egret Native发布到 GooglePlay平台

    GooglePlay 平台是很多开发者在海外发布游戏的第一选择,本文将介绍如何将白鹭引擎开发的游戏通过Egret Native 发布到 GooglePlay 平台. 发布前期准备 1.科学上网,登录G ...

  6. 如何用天纵手机APP快速开发框架开发手机APP

    标题:如何用天纵手机APP快速开发框架开发手机APP 简介: 使用天纵软件快速开发平台开发手机APP不需要懂开发语言和进行编码工作,只需配置业务逻辑和界面样式即可.她颠覆了传统手机APP开发成本高.难 ...

  7. 虚幻引擎(15)-暂停游戏

    文章目录 前言 相关介绍 其他介绍 上一篇笔记 下一篇笔记 预览 操作映射 控件蓝图 角色蓝图 一.游戏界面 [1]. 创建 [2]. 背景图 [3]. 按钮 [4]. 文本 [5]. 蓝图 (1)事 ...

  8. 如何改善虚幻引擎中的游戏线程CPU性能表现

    您游戏中的帧频率是不是太低? 您了解为什么会发生这种现象吗? 这是不是由于您同时生成了太多敌人?还是由于某个特定敌人过于消耗系统资源? 是由于您设置了过多的视觉特效,还是由于您所设计的战斗系统所造成的 ...

  9. Epic:把虚幻引擎推向所有游戏平台

    [GameLook专稿,转载请注明出处] GameLook报道/Epic Games准备把虚幻引擎推向所有的平台,而且该公司正在加快进度.今天,该公司透露,自从数周之前该公司开放了自己的平台之后,开发 ...

最新文章

  1. HDU 4826 Labyrinth(DP解法)
  2. Modbus网口设备接入多比物联网云平台教程
  3. 进阶Frida--Android逆向之动态加载dex Hook(三)
  4. 如何将Outgoing Webhook部署到中国版Azure
  5. 横空出世,席卷互联网--评微软等公司数据结构和算法面试100题
  6. VS2015配置jsoncpp详解
  7. 处理器管理及并发进程-多道程序设计
  8. 程序员的编辑器 notepad++ || XML编辑器
  9. Oracle数据库中文排序问题记录
  10. URL中经常出现的百分号22是什么意思
  11. 恒玉佳壬二酸使用方法,15壬二酸能帮助祛痘吗
  12. iOS 15.0 和 Xcode 13更新
  13. RAID容量在线计算器
  14. Widget Extention开发笔记
  15. Halcon一些功能算子
  16. html在线预览ppt excel,JavaScript实现Word、Excel、PPT在线预览
  17. 几款实用的Docker的GUI管理界面
  18. C++解析3d模型文件jt
  19. 【课程设计】Java 计算器实现(源码 + 详解)
  20. 第十四届蓝桥杯三月真题刷题训练——第 14 天

热门文章

  1. Android 的反编译 (附愤怒的小鸟源码下载)
  2. 使用python合并与切割pdf文件
  3. 如何修改Word页面的显示大小
  4. Windows Server 2008 R2 系统管理篇(理论+实战)-深博-专题视频课程
  5. java datarow_DataRow
  6. 计算机系统管理及控制程序,计算机管理系统控制程序
  7. 关于批量爬取wallhaven的解析+源码
  8. 无线网卡 无线上网卡 的介绍
  9. 一个会计做账的实际过程
  10. 40张PPT完整解析字节跳动人力资源体系(附PPT)