SlideShare a Scribd company logo
将桌面级VR通过Vulkan和
UE4移植到移动平台
总概
• 项目目的
• 平台差距
• 测试Vulkan
• 介绍Vulkan
• 准备工作
• 执行优化
• 遇到的困难
项目目的
• 探索移动平台VR效果的极限
• 探索UE4下移动端,Vulkan+VR流程/当前问题
THE “SHOWDOWN” DEMO
平台的差距
3840 x 2160? (1920 x 1080)
60 fps
Adreno 530
Multi-view?
Mobile Forward Renderer
Vulkan?
2160 x 1200
90 fps
GTX 970
Instanced Stereo
Deferred Renderer
DX11
关于Vulkan
• Vulkan是用来替代OpenGL和OpenGL ES的下一代图形API
• 由Khronos领头,整个行业共同参与打造
• 开放,跨平台,支持PC、主机和移动设备
• 提供更底层轻度的,更高效的接口
• 考虑了现代图形硬件而设计
• 以SPIR-V格式作为shader预编译的中间格式
ES2/3.2 vs Vulkan
OpenGL:
如果compile出错,在运行时会crash
做绘制调用的时候会有hitch,驱动只在第一次绘制时才真的编译
Vulkan:
可离线编译shader
在开发时可编译成SPIR-V二进制数据
所有shader的验证都在离线时完成
所有上层的shader优化都在离线时完成
ES2/3.2 vs Vulkan
OpenGL:
Set vertex and pixel shaders
Shader uniform parameters
Bound textures
Set blending states
Set depth states
Set rasterizer states
Etc…
Vulkan:
把这些属性和状态都封装在一个对象中
切换不同的状态相当高效!
ES2/3.2 vs Vulkan
Vulkan有显式的RenderPass
vkBeginRenderPass(...)
vkEndRenderPass(...)
每个render pass可以指定哪些数据需要load到tile
memory里,哪些数据需要存回framebuffer
准备工作
硬件:Galaxy S7(latest rom), Nexus 6P(Android N)?
SDK:Vulkan, ndk
UE4: 4.13
当前数据:
800+ drawcall
120w+ triangles
准备工作
简单定位瓶颈:
1. stat unit – gpu
降低渲染分辨率:MobileContentScaleFactor = 1.0 (1080p) / 0.8 (720p)
快速用工具减面做测试
用mip setting降低贴图尺寸,降低gpu带宽占用
2. stat dumpave –ms=1 || stat startfile/stop file
发现game线程时间过长,profile确定render thread没开
3. RenderThread瓶颈
合并和简化场景mesh
执行优化
内容优化
• 面数太多;
• 物件太多;
• 材质太多;
• 材质太复杂;
• 贴图太大,
• 渲染品质参数太高
Statistics
烘培合并材质
烘培合并材质
烘培合并材质
减面Simplygon
Instancing Staticmeshes(Batch Staticmeshes)
选择需要合并的Actors
优化材质/大范围
优化材质/复杂
材质优化/透明
材质优化/粒子特效
优化材质/删除不必要的视觉元素
减少贴图sampler
去除后期材质和灯光function
使用简单方式替代
检查清理地图警告
设置合理目标平台Profile,记得保存!
• 调整合理的渲染品质参数
• 合理的贴图大小
• 分辨率
三角面
Drawcall
Q&A
Showdown vulkan

More Related Content

Similar to Showdown vulkan

GDC Taipei Summit review 2012
GDC Taipei Summit review 2012GDC Taipei Summit review 2012
GDC Taipei Summit review 2012
Victor Lee
 
20130823 優網通產品發表會-hisb介紹
20130823 優網通產品發表會-hisb介紹20130823 優網通產品發表會-hisb介紹
20130823 優網通產品發表會-hisb介紹HermesDDS
 
Windows Azure Virtual Machine Services for Developers
Windows Azure Virtual Machine Services for DevelopersWindows Azure Virtual Machine Services for Developers
Windows Azure Virtual Machine Services for DevelopersJeff Chu
 
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術
Yu Lung Shao
 
Gentek应用介绍20111123
Gentek应用介绍20111123Gentek应用介绍20111123
Gentek应用介绍20111123oemgame
 
什么手机适配 Mobile application adaptation
什么手机适配   Mobile application adaptation 什么手机适配   Mobile application adaptation
什么手机适配 Mobile application adaptation xj8848
 
docker intro
docker introdocker intro
docker introkoji lin
 
ZTE Video conferconce Product introduction
ZTE  Video conferconce Product introductionZTE  Video conferconce Product introduction
ZTE Video conferconce Product introduction
ssuser220dc6
 
LinkIt 7697 IoT tutorial
LinkIt 7697 IoT tutorialLinkIt 7697 IoT tutorial
LinkIt 7697 IoT tutorial
CAVEDU Education
 
Build desktop app_by_xulrunner
Build desktop app_by_xulrunnerBuild desktop app_by_xulrunner
Build desktop app_by_xulrunnerRack Lin
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
Perry Tsai
 
Intel® Media Server Studio 2016 開發企業級媒體解決方案,提供高效能和高品質
Intel® Media Server Studio 2016 開發企業級媒體解決方案,提供高效能和高品質Intel® Media Server Studio 2016 開發企業級媒體解決方案,提供高效能和高品質
Intel® Media Server Studio 2016 開發企業級媒體解決方案,提供高效能和高品質
Cheer Chain Enterprise Co., Ltd.
 
Ezilla
EzillaEzilla
Ezilla
hs1250
 
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
NVIDIA Taiwan
 
Windows Phone 7 in azure
Windows Phone 7 in azureWindows Phone 7 in azure
Windows Phone 7 in azureTao Wang
 
初探 Windows 市集 App 開發
初探 Windows 市集 App 開發初探 Windows 市集 App 開發
初探 Windows 市集 App 開發
Ouch Liu
 
HoloLens 2的 MR(Mixed Reality)開發入門
HoloLens 2的 MR(Mixed Reality)開發入門HoloLens 2的 MR(Mixed Reality)開發入門
HoloLens 2的 MR(Mixed Reality)開發入門
Chen Yu Pao
 
DRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLCDRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLC
Yu-Chin Tsai
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩Wen-Tien Chang
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swttka
 

Similar to Showdown vulkan (20)

GDC Taipei Summit review 2012
GDC Taipei Summit review 2012GDC Taipei Summit review 2012
GDC Taipei Summit review 2012
 
20130823 優網通產品發表會-hisb介紹
20130823 優網通產品發表會-hisb介紹20130823 優網通產品發表會-hisb介紹
20130823 優網通產品發表會-hisb介紹
 
Windows Azure Virtual Machine Services for Developers
Windows Azure Virtual Machine Services for DevelopersWindows Azure Virtual Machine Services for Developers
Windows Azure Virtual Machine Services for Developers
 
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術
 
Gentek应用介绍20111123
Gentek应用介绍20111123Gentek应用介绍20111123
Gentek应用介绍20111123
 
什么手机适配 Mobile application adaptation
什么手机适配   Mobile application adaptation 什么手机适配   Mobile application adaptation
什么手机适配 Mobile application adaptation
 
docker intro
docker introdocker intro
docker intro
 
ZTE Video conferconce Product introduction
ZTE  Video conferconce Product introductionZTE  Video conferconce Product introduction
ZTE Video conferconce Product introduction
 
LinkIt 7697 IoT tutorial
LinkIt 7697 IoT tutorialLinkIt 7697 IoT tutorial
LinkIt 7697 IoT tutorial
 
Build desktop app_by_xulrunner
Build desktop app_by_xulrunnerBuild desktop app_by_xulrunner
Build desktop app_by_xulrunner
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
 
Intel® Media Server Studio 2016 開發企業級媒體解決方案,提供高效能和高品質
Intel® Media Server Studio 2016 開發企業級媒體解決方案,提供高效能和高品質Intel® Media Server Studio 2016 開發企業級媒體解決方案,提供高效能和高品質
Intel® Media Server Studio 2016 開發企業級媒體解決方案,提供高效能和高品質
 
Ezilla
EzillaEzilla
Ezilla
 
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
GTC Taiwan 2017 NVIDIA Holodeck 與 Isaac VR 技術分享
 
Windows Phone 7 in azure
Windows Phone 7 in azureWindows Phone 7 in azure
Windows Phone 7 in azure
 
初探 Windows 市集 App 開發
初探 Windows 市集 App 開發初探 Windows 市集 App 開發
初探 Windows 市集 App 開發
 
HoloLens 2的 MR(Mixed Reality)開發入門
HoloLens 2的 MR(Mixed Reality)開發入門HoloLens 2的 MR(Mixed Reality)開發入門
HoloLens 2的 MR(Mixed Reality)開發入門
 
DRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLCDRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLC
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt
 

More from Wen Lei Li

开发者遇到的典型美术相关问题回顾
开发者遇到的典型美术相关问题回顾开发者遇到的典型美术相关问题回顾
开发者遇到的典型美术相关问题回顾
Wen Lei Li
 
VR_VisualDesign
VR_VisualDesignVR_VisualDesign
VR_VisualDesign
Wen Lei Li
 
VR CONTENT OPTIMIZING UE4
VR CONTENT OPTIMIZING UE4VR CONTENT OPTIMIZING UE4
VR CONTENT OPTIMIZING UE4
Wen Lei Li
 
PBR:应用于虚幻引擎4贴图 和材质创建的启示
PBR:应用于虚幻引擎4贴图和材质创建的启示PBR:应用于虚幻引擎4贴图和材质创建的启示
PBR:应用于虚幻引擎4贴图 和材质创建的启示
Wen Lei Li
 
实时渲染动画时代的来临
实时渲染动画时代的来临实时渲染动画时代的来临
实时渲染动画时代的来临
Wen Lei Li
 
UE4灯光应用最佳实践
UE4灯光应用最佳实践UE4灯光应用最佳实践
UE4灯光应用最佳实践
Wen Lei Li
 

More from Wen Lei Li (6)

开发者遇到的典型美术相关问题回顾
开发者遇到的典型美术相关问题回顾开发者遇到的典型美术相关问题回顾
开发者遇到的典型美术相关问题回顾
 
VR_VisualDesign
VR_VisualDesignVR_VisualDesign
VR_VisualDesign
 
VR CONTENT OPTIMIZING UE4
VR CONTENT OPTIMIZING UE4VR CONTENT OPTIMIZING UE4
VR CONTENT OPTIMIZING UE4
 
PBR:应用于虚幻引擎4贴图 和材质创建的启示
PBR:应用于虚幻引擎4贴图和材质创建的启示PBR:应用于虚幻引擎4贴图和材质创建的启示
PBR:应用于虚幻引擎4贴图 和材质创建的启示
 
实时渲染动画时代的来临
实时渲染动画时代的来临实时渲染动画时代的来临
实时渲染动画时代的来临
 
UE4灯光应用最佳实践
UE4灯光应用最佳实践UE4灯光应用最佳实践
UE4灯光应用最佳实践
 

Showdown vulkan