UE4移动端渲染简介

原创 2017年01月03日 15:41:31

本文从大面上介绍了下UE4移动端渲染的相关东西,实在是太大面了,里面每一条都可以展开说很久,大概也就是Base pass说的相对细一些吧,就是默认的固体surface与光照交互在shader中具体是啥样的。

UE4在渲染方面倾向于代码统一易于维护,美术资源在端游手游也只需制作一份。为此,跨平台方面,在底层的DX, OpenGL, OpenGL ES, Metal, Vulkan等API上面搭了一层中间层,代码使用该中间层操作渲染。在Shader方面,只需写一个HLSL风格的Shader代码,由UE4将其编译成对应平台的代码,比如GLSL。

对于不同平台开发,在编辑器使用,渲染效果上面尽可能保持一致,比如PBR效果在端游手游上尽可能接近。同时不同级别的平台开放对应特性,比如中低端手机不支持GPU粒子


移动端使用Forward Rendering,渲染管线如下:

Views setup 

渲染前的处理,包括CPU层面的各种剔除(Frustum culling,Distance culling,Precomputed visibility)等。


GPU particles simulation

需要OpenGL ES 3.1/Metal级别,使用GPU计算粒子位置/速度,这样可以计算大量粒子,比CPU效果好很多,结果存到texture给CPU使用。


Shadow maps 

设置深度缓冲,取得需要shadow的物体,只有主光源(一般是方向光)渲染shadow map,给后面的Base pass或Modulated shadow projection使用


Base pass 

首先将物体分组排序,根据材质属性,距离远近等。

然后开始渲染,具体着色包括:

Lightmap(低质量),可以设置是否使用计算法线&光线方向的direct lightmap。一般情况下主光源为Stationary Directional Light。Stationary Light不将直接光照烘焙进去,而只是烘焙间接光照,也就是说Stationary Light可以动态调整强度和颜色。Lightmap不包括stationary方向光的直接阴影,有一个专门的shadowmap储存这个主阴影。这个单独的shadowmap使用的技术是distance field shadow,不会受到贴图分辨率的影响,能一直保持边缘锐利,这个stationary light的indirect shadow和其它static light的shadow会直接烘焙到光照图上。 这个是与diffuse color相乘,针对静态物体。

Cached point indirect light,这个是移动物体用的SH光照。可以通过调整static lighting level scale调整场景中光照小球数量,和lightmap精度匹配,这块儿可以修改一下,保持野外场景减少其数量的同时保证光照图精度。这个是与diffuse color相乘,针对动态物体。

方向光shadow计算(使用shadow map信息,该shadow map或者是直接读取静态物体的distance field shadow,或者是c步骤里面计算出来的CSM,两者可以融合到一起,不会造成阴影叠加阴影的错误显示效果)。

方向光的直接光照,这个基本是最主要的动态光照。这个包括diffuse和specular,针对静态物体和动态物体。

使用环境贴图的间接高光,也就是所谓的反射效果。环境贴图由反射球和天空光构成。针对静态物体和动态物体。

stationary的skylight(这个不推荐用,因为stationary skylight在移动端只有diffuse光照,这样会造成只有specular color的金属材质物体颜色完全为黑色,推荐使用static skylight,这样将其烘焙的光照图和reflection probe上)

动态点光源,多个,包括diffuse和specular,针对静态物体和动态物体。

自发光。


Deferred decals 

需要有取得场景深度的扩展指令,不支持光照,相当于在场景画好后后处理的样子。


Modulated shadows projections 

和延时贴花很像,后处理使用shadow map画阴影,会在已有的阴影上再叠加一层,使用CSM更好。


Translucency 

画折射物体,透明物体,比如粒子。


Post-process 

只有打开HDR时才会开启后处理,包括多种后处理,bloom,light shaft,AA,Tonemapper等。


HUD 

Slate/Canvas UI


Mobile的设置包括针对低中高平台的各种细节设置,比如LDR/HDR,是否不计算高光,是否无金属,反射精度等等,这些设置和上面的渲染管线,编辑器深度耦合,因此推荐在修改相关东西的时候也是直接修改相关编辑器和渲染管线内容,而不是另起炉灶,不然得维护两套东西。



Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

游戏实时渲染中HDR入门介绍

游戏实时渲染中HDR入门介绍 虽然HDR这个概念绝大多数做游戏的人都知道了,不过可能有的人会像我一样一直对这个概念一知半解,这里做下学习笔记,省的以后又忘了= = 1. 到底什...

UE4学习笔记(六): 次世代的移动平台渲染技术

在GDC2014上, UE4展示了一个SOUL Mobile Tech Demo: http://www.youtube.com/watch?v=jzGRbGb-fog

Epic Games王祢:UE4在移动平台的开发优势

2016年3月7日--9日,由全球移动游戏联盟GMGC主办的第五届全球移动游戏大会GMGC2016在北京国际会议中心盛大举行,此次大会以“Game2.0:创新不止·忠于玩家”为主题,来自全球移动游戏及...

UE4房产应用虚拟样板间功能演示 | 3D箭头移动 | 材质替换 | 模型拖拽移动 - Unreal Engine 4

UE4房产应用虚拟样板间功能演示 | 3D箭头移动 | 材质替换 | 模型拖拽移动 1.Runtime 3D Gizmo, 支持模型拖拽移动、旋转功能 2.材质替换功能 3.模型管理:创建家具、家具库...
  • Finans
  • Finans
  • 2016年09月12日 10:05
  • 2518

前端移动端页面开发

一. viewport 什么是viewport 简单来讲,viewport就是浏览器上,用来显示网页的那一部分区域了,也就是说,浏览器的实际宽度,是和我们手机的宽度不一样的,无论你...

UE4 渲染基础概念

UE4 渲染基础概念本文总结于ue4 4.9官方文档转载请注明文章出处,作者信息,原文链接场景基本对象 UWorld : 世界,相当于一个包含了所有角色和组件的容器,世界中的关卡可以动态载入载出,游戏...

(145)光线追踪距离场柔和阴影

光线追踪距离场阴影利用场景距离场展示的属性用于计算动态网格体的有效区域阴影。这使用的数据和 距离场环境遮挡 相同,因此许多限制也相同。 为计算阴影,从场景定向距离场被遮挡的点到每个光源进行光线追...

UE4 Shadow Casting

Lighting the Environment On this page: Static LightsDirectional Light Cascadin...

UE4 Light Shafts

Unreal Engine 4.9 Lighting the Environment On this page: PropertiesOccl...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UE4移动端渲染简介
举报原因:
原因补充:

(最多只允许输入30个字)