RenderDoc塞尔达荒野之息抓帧分析
RenderDoc是一种抓帧工具,主要用来分析游戏开发中渲染流程,官网:
https://renderdoc.org/
我是用的版本是RenderDoc_1.14_64.zip
塞尔达荒野之息使用Cemu模拟器运行,图形API设置为Vulkan
使用RenderDoc直接启动程序Cemu.exe
在游戏内通过F12抓帧
抓帧后退出模拟器,就能在RenderDoc中看到当前帧,菜单Save Capture可以保存当前帧为rdc文件,我演示的抓帧文件:
https://download.csdn.net/download/tangyin025/81354657
单帧内render pipeline分析
总共24636次Vulkan调用
1~2038帧
都是一些奇怪的输出,应该是一些准备工作,其中207帧输出player、npc在草地上行走痕迹,后续用来进行草地倾斜采样
然后526~555,居然有一次近距离地形Depth输出,但不填充颜色
2043~2839帧
较远物体的Depth输出,山体、树木
2842~5109帧
这里开始输出带有颜色Color Pass,同时也包括Depth
从其他Output来看,输出的应该是延迟渲染所用的GBuffer
而且可以看出渲染时并不清理原来的buff,直接画上去
其中3436帧渲染草,可以在Mesh Viewer、VS Out看到顶点数据
同时可以在Pipeline State中看到VS(VertexShader)、FS(FragmentShader)
点击View进入Shader代码模式,可以转换成GLSL便于阅读,而且代码应该可实时修改
6101~9454帧
还是Color Pass,似乎是绘制岩壁包裹物(Terrain Cliff),也会有一些马车帐篷、广告牌
7599帧岩壁包裹物
12206~12486帧
绘制地形,比如12441帧(Mesh Viewer显示倒了)
14291 - 17312、18325 - 19026帧
应该是绘制Shadow Map,以及各个Cascade层级
19030~19053帧
好像是Screen Space Shapow Pass,以及其他信息、Depth
22476~23149帧
没看懂,好像是天空盒以及bloom输出?
23949~24579帧
应该是ui输出
24603~24623帧
模拟器调试信息
总结
- 不清楚原平台WiiU使用的图形api,估计应该是OpenGL
- 使用Deferred Rendering,并且不清理RenderTarget Color,初期渲染大片近距离地形,应该是用来清理zbuffer
- 大量vkCmdDrawIndexed调用,期间没有SetTexture、SetParameter等操作(可能被模拟器优化了?),所以虽然Draw Call达到4006,但实际开销很小
- 贴图被打包成一个大资源Multi Slice,所以不需要频繁SetTexture(可能是模拟器优化,也可能引擎优化)
RenderDoc塞尔达荒野之息抓帧分析相关推荐
- Unity Shader 卡通渲染 (三):仿塞尔达荒野之息 Shader(顶点色控制细节)
上一篇传送门: https://blog.csdn.net/qq_27534999/article/details/100925621 顶点色在卡通渲染中有挺多应用,本篇会在上一篇的基础上,运用模型顶 ...
- 塞尔达荒野之息vs艾尔登法环
玩了荒野之息(switch版本)再去玩艾尔登法环,感觉艾尔登法环完全没有外界宣扬的那么好.我是七彩虹3060显卡,特效全开了,一开始场景还比较精致的,后面也很多场景比较粗糙. 然后就是感觉这个人物很笨 ...
- 分享几张塞尔达荒野之息精彩壁纸
分享几张塞尔达荒野之息精彩壁纸 001-荒野之息经典封面.jpg 002-林克醒来看向海拉陆大陆经典场面.jpg 003-林克射箭特写.jpg 004-海拉鲁荒野之息.jpg 005-林克攀爬峭壁.j ...
- Unity Shader 卡通渲染 (一):仿塞尔达荒野之息 Shader(简易版)
温馨提示: 本系列文章面向那些 Shader 刚刚入门,想寻求进一步提升的群体,如果对 Shader 一无所知的话,建议自行搜索其他 Shader入门教程观看学习,再食用本系列文章. 前言: 说起卡通 ...
- 塞尔达amiibo_塞尔达荒野之息pC版(附带全Amiibo)安装教程,最无敌的游戏
点击上方「蓝字」关注我们 给你最好的 <塞尔达传说:荒野之息(The Legend of Zelda: Breath of the Wild)>是任天堂旗下经典角色扮演游戏系列<塞尔 ...
- Unity UI xlua 热更:还原塞尔达旷野之息 (持续更新:已补充箭头动效)
整了个小Demo仿照<塞尔达传说:旷野之息>,实现 鼠标悬停在Button上时,能够改变Button-Text颜色,并且在Button前显示一个小箭头 标题鼠标指针悬停和移走,改变标题颜色 ...
- Unity 程序化动画:还原塞尔达旷野之息 守护者 (六足)
又整了个小Demo,感觉程序化动画还挺好玩.先上效果图,使用到的所有模型均来源于网络. 程序化动画生成守护者移动 实现思路:守护者共6条腿,初始化先激活两条腿14可移动,每移动完一条腿顺序激活下一条腿 ...
- 塞尔达 amiibo数据_塞尔达传说:旷野之息Amiibo道具制作_碧海风云
本文出自微信公众号[碧海风云]之<塞尔达传说:旷野之息Amiibo道具制作_碧海风云> Amiibo介绍 Amiibo是任天堂发行的内置NFC芯片的产品,可以在特定游戏中与Switch机器 ...
- 塞尔达:旷野之息个人对比上古卷轴V:天际
上古卷轴5是我之前玩过最优秀的作品.玩塞尔达的时候就有跟上古卷轴5比对,真的都是神作.两个游戏的自由度都是真的高. 主线剧情上,老滚5印象不深了,当时就知道战斗,只记住了开头砍头现场,还有奥杜因这个龙 ...
最新文章
- java并发编程(2)——wait和notify解析
- ora29280 oracle,细节:utl_file_dir错误设置导致ORA-29280
- php年月日滚动选择,Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素...
- TypeError: 'NoneType' object is not subscriptable
- csv导入mysql_mysql导入超大csv指南
- 我的Go+语言初体验——(5)Go+ 基本语法之 Switch
- 【Python笔记】正则表达式
- Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test
- Matlab-中寻找峰值函数,波峰波谷
- 手机linux服务器控制,手机上如何远程控制Linux服务器?
- pgloader mysql_pgloader 学习(四)一些简单操作例子
- 【券后价16.80元】【海蓝蓝】夹心海苔脆芝麻海苔即食罐装海苔宝宝辅食儿童零食40克...
- 上海一本计算机工程应用大学排名,2019上海软科世界一流学科排名计算机科学与工程专业排名密歇根州立大学排名第51-75...
- 二分查找边界问题总结
- java编译(打包)完成,导致Excel文件损坏的问题
- elasticsearch 实现查询忽略大小写
- [XSY 3322][置换+dp]Dexterity
- 焦绪录:大数据如何推动数字中国建设
- 冯·诺依曼结构计算机的存储器和数据
- 技嘉B75-D3V主板BUG