第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 虚幻gameframe_UE4虚幻引擎开发手机游戏(一)

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

时间:2024-05-27 19:24:14

相关推荐

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

特性集介绍•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(抽象硬件接口)和特性集

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

AndroidVulkan介绍

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后的最终结果。

RGBEHDR编码

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

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

•支持fullHDR, 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阴影的时候使用

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。