鸣潮基于虚幻引擎4的多平台效果和性能优化实践

《鸣潮》基于虚幻引擎4的多平台效果和性能优化实践 | 王宏波 库洛游戏

文章目录

  • 《鸣潮》基于虚幻引擎4的多平台效果和性能优化实践 | 王宏波 库洛游戏
    • Why Deferred Shading
    • 移动端高质量的TAAU
      • 渲染流程
      • Ghost和Flicker优化,一些图像空间算法的融入
      • 动静态像素的差异处理
      • TAAU之Upscale简介
    • 从One Pass Deferred Pipeline到One Pass Uber Pipeline
      • 渲染管线简介
      • OPDS在MALI上的指令异常(第一个坑)
      • From OPDS Pipeline to One Pass Uber Shading Pipeline
      • OPDS在Adreno GPU GLES 下的写带宽异常(第二个坑)
    • 树的双端方案
      • 整体方案
      • Billboard Tree
      • Imposter Tree
      • Dynamic Texture Array & Streaming
      • 其他优化

更多参考文章: UE TAAU详细解析 - 知乎 (zhihu.com)

Why Deferred Shading

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

选了Deferred Shading之后AA只能选后处理AA了

AA之前:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

移动端高质量的TAAU

渲染流程

增加了Velocity Pass,把TAA Pass变为了 TAAU Pass

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Ghost和Flicker优化,一些图像空间算法的融入

Ghost问题优化:

同时实现这三种模式。低配置上会选RGB颜色空间来做,而高配置会选YCocg来做

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第一部分是关于速度,速度编码到了24位的一个RGB里去了。第二部分是记录遮罩是不是角色的,这样更不容易产生鬼影和染色问题。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为没有把勾边Pass渲染Velocity Buffer,这样会导致角色上有很多黑边,在做TAA的时候Character Mask判断它不是角色的一个像素。对卡渲来说,渲染一个角色要五六遍。蒙皮更严重,每一次渲染都需要蒙皮两次,因为需要上一帧的位置和当前帧的位置才能得到它的速度。所以去掉了Velocity Buffer勾边渲染。去掉之后会导致角色边缘闪烁的比较厉害。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Flicker问题优化:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

动静态像素的差异处理

尝试一:使用运动速度插值动态静态两套权重

最终权重是根据Velocity的值的大小进行插值的。像素运动越快,当前帧的权重就越大。像素运动越慢,当前帧的权重就越小。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

尝试二:图像的锐化算法

主要是为了处理动态像素。例如Unsharp Masking Kernel。它也是十字星的采样,所有可以重用之前的采样数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

TAAU之Upscale简介

一般图像在做上采样的时候,考虑的是目标像素到原像素的距离来做一个权重的插值。但是FSR等除了考虑这个距离,还会考虑原像素本身的一些情况。Lanczos2用的是多项式的一个逼近。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

总结及其他的一些优化和结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

混合方案:实现了经典TAA算法,同时又融入了一些图像处理的方式与方法

从One Pass Deferred Pipeline到One Pass Uber Pipeline

渲染管线简介

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

GBuffer的结构:

第一版:三张GBuffer+一张SceneColor+一个DepthBuffer (Depth Fetch获取深度信息)

三种材质Scene Color存的都是自发光;GBufferA存的是法线、LightFunction(做云层投影用)和一个通道的卡渲信息;GBufferC存的是BaseColor和AO的信息;GBufferB每种都不太一样,存的是一些特化的信息

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

OPDS在MALI上的指令异常(第一个坑)

上面方案在arm的mali gpu的测试结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

发现三个灯光pass的指令数都非常高,FPK失效。进一步分析发现是Depth Fetch的问题会导致FPK失效(从1.2兆变为0.01兆)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

From OPDS Pipeline to One Pass Uber Shading Pipeline

上述问题的解决方案 - 混合方案:OPDS+Forward前向卡通渲染+Gbuffer重新编码(把原来的depth编码到GbufferB里面去)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最终放在了Lighting Passes之后

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

OPDS在Adreno GPU GLES 下的写带宽异常(第二个坑)

发现是引擎RHI实现有个小的Bug导致的(UE4才有的问题,UE5没有)

只对SceneColor和Depth生效,会把GBuffer三张都给Resolve出来

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

修改后:所有的RT和Depth都是可以Discard掉的

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

测试带宽结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

树的双端方案

多平台适配框架简介:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

整体方案

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Billboard Tree

把原来插片树的面向相机的每一丛树叶都变成一个billboard来替代

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

测试结果:Billboard树只要30%~40%的面片占用就可以达到插片树效果的还原,但是阴影会跟着相机转动。渲染的时候让阴影面向光源而不是面向相机就可以解决。

Imposter Tree

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Imposter树原理:围绕模型放一圈相机去拍这个树,记录树的一些基本渲染信息,渲染的时候通过相机的方向去采一些最接近当前相机方向的离线渲染出来的信息去做信息合成,最终生成当前相机下应该出现的样子。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Dynamic Texture Array & Streaming

扩展了UE默认的Texture Array做成了动态Texture Array,可以按需增加Slice进来

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Depth还原:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

光影效果对比:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

蓝色效果为Imposter树,其他为模型树

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

优化结果测试:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其他优化

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/739836.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在华为服务器上编译C++工程的若干错误以及排查方法和解决方法记录

目录 1 报错 2 查找错误原因 2.1 方法一:ldd命令 2.2 方法二:警告信息里面 3 解决错误 3.1 libpng16.so.16 和 libbrotlidec.so.1 问题 3.2 libdevmmap.so 和 libslog.so库问题 3.3 剩余错误 3.3.1 libacllite.so错误解决 3.3.2 libtaclstream…

怎么在大模型之上构建应用?构建人工智能上层应用的框架——langchain

“langchain,在大模型之上构建应用的脚手架” 在大模型之上构建应用需要很多的步骤,比如文档加载,数据库读取,大模型加载,以及各个环节的连接等。 因此,就有了langchain这个开发框架,它的功能…

CI部署流程简图

🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀 🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。 🌟🧭 在这里,每个错误都…

Java--Data类

1.Data类 java.util.Date.表示指定的时间信息,不支持国际化 构造方法 new Date():当前系统日期和时间 new Date(long):给定日期和时间 主要方法: after(Date):判断当前日期对象是否在给定日期对象之后 before(Date):判断当前日期…

海外短剧系统,开启你的国际视野

一、海外短剧系统是一个创新且富有吸引力的平台,它能够为用户提供来自世界各地的精彩短剧,从而开启用户的国际视野。 1、文化多样性:海外短剧系统汇集了来自不同国家和地区的短剧作品,这些作品反映了各自独特的文化背景和社会风貌…

行业原型:智能资产管理平台-个人资产服务

​行业原型预览链接:(请与班主任联系获取原型文档) 文件类型:.rp 支持版本:Axrure RP 8 文档名称:金融:智能资产管理平台(个人资产服务) 文件大小:1.75 MB 智…

【功能详解】银河麒麟操作系统“安全启动”是如何发挥作用的?

2023年12月,财政部、工信部发布了7项信息类产品《政府采购需求标准》,为包括操作系统在内多项产品的政府集中采购提供政策支撑。其中,安全、可信作为国产操作系统的基本要求备受关注。 安全体系的构建离不开操作系统本身的硬实力&#xff0c…

Springboot 共享电动单车管理系统-计算机毕业设计源码08401

目 录 摘要 1 绪论 1.1背景及意义 1.2国内外研究概况 1.3研究方法 1.4论文结构与章节安排 2 共享电动单车管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分…

License简介和Licensecc的使用

License简介和Licensecc的使用 License简介什么是LIcense简易License制作加密扫盲对称加密非对称加密 Licensecc使用构建和编译在linux上进行编译UbuntuCentOS 7CentOS 8下载并编译配置编译和测试cmake 后可以跟的参数在Linux上为Windows进行交叉编译 在windos上进行编译MSVC (…

(一)、配置服务器的多个网卡路由,访问多个不同网络段

一、现场网络关系说明 有这么一个需要,服务器有三个网口,网口一需要访问外网,网口二需要访问内网1,网口2需要访问内网2。需要配置路由来满足该网络访问需要。 图1 现场网络关系 二、配置教程 步骤1: a、命令行输入…

昇思25天学习打卡营第1天 | 快速入门

​ 今天开始学习Mindspore框架,首先需要引入数据集,以Mnist数据集为例: 处理数据集 # Download data from open datasets from download import downloadurl "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/" \&…

qt.qpa.xcb: could not connect to display问题解决

1、问题描述 以服务器pi5作为远程解释器,本地win11使用vscode远程调试视觉时报错如下: qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "xxxxx" even though it was …

EasyExcel 无法读取图片?用poi写了一个工具类

在平时的开发中,经常要开发 Excel 的导入导出功能。一般使用 poi 或者 EasyExcel 开发,使用 poi 做 excel 比较复杂,大部分开发都会使用 EasyExcel 因为一行代码就能实现导入和导出的功能。但是 EasyExcel 不支持图片的读的操作,本…

CRMEB 多商户Java版v1.6公测版发布,付费会员上线,立即体验

新版本来袭!CRMEB 多商户Java版v1.6正式发布! 在v1.6新版本中,我们带来了付费会员体系,这将让商业模式更加灵活多元,新增加的移动端商家管理,也让运营触手可及,更加便捷,还有商家端员…

(2011-2022年) 全国各省快递业务量与快递业务收入面板数据

中国快递业近年来随着电子商务的蓬勃发展而迅速壮大,成为现代生活中不可或缺的一部分。快递业务量与收入的面板数据为我们提供了一个观察中国快递市场繁荣与多元化的窗口。 数据来源 中国统计年鉴 参考文献 胡润哲, 魏君英, 陈银娥. 数字经济发展对农村居民服务…

sheng的学习笔记-聚类(Clustering)

ai目录 sheng的学习笔记-AI目录-CSDN博客 基础知识 什么是聚类 在“无监督学习”(unsupervised learning)中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。此类学…

智慧安防/边缘计算EasyCVR视频汇聚网关:EasySearch无法探测到服务器如何处理?

安防监控EasyCVR智能边缘网关/视频汇聚网关/视频网关属于软硬一体的边缘计算硬件,可提供多协议(RTSP/RTMP/国标GB28181/GAT1400/海康Ehome/大华/海康/宇视等SDK)的设备接入、音视频采集、视频转码、处理、分发等服务,系统具备实时…

都说HCIE“烂大街”了,说难考都是假的?

在网络技术领域,华为认证互联网专家(HCIE)长期以来被视为一项高端认证,代表着专业技能和知识水平。 然而,近几年来,考证的重视度直线上升,考HCIE的人越来越多了,考过的人好像也越来越…

桌面编辑器ONLYOFFICE 功能多样性快来试试吧!

目录 ONLYOFFICE 桌面编辑器 8.1 ONLYOFFICE介绍 主要功能和特点 使用场景 1.PDF编辑器 2.幻灯片版式 3.编辑,审阅和查看模式 4.隐藏连接到云版块 5.RTL语言支持和本地化选项 6.媒体播放器 7、其他新功能 8.下载 总结 ONLYOFFICE 桌面编辑器 8.1 官网地…

新火种AI|OpenAI CTO表示:未来将会有越来越多的人被AI所取代...

作者:小岩 编辑:彩云 对于“AI是否能最终取代人类进行工作”这件事儿,很多学者持有否定态度。大家普遍认为,即便如今诞生了ChatGPT,Claude等强大的AI工具,它们也只能够解决一些格式化,重复化的…