Unity3D - 图形性能优化:帧调试器

21 篇文章 1 订阅
18 篇文章 8 订阅

Unity官方文档之“图形性能优化-帧调试器”翻译,E文链接

Frame Debugger 帧调试器

The Frame Debugger lets you freeze playback for a running game on a particular frame and view the individual draw calls that are used to render that frame. As well as listing the drawcalls, the debugger also lets you step through them one-by-one so you can see in great detail how the scene is constructed from its graphical elements.

帧调试器可以让你冻结回放运行中游戏的某一帧,然后看那一帧渲染的draw calls。和列出draw calls一样,帧调试器也允许你逐帧调试,所以你可以看到场景如何从它的图形元素构建的大量细节。

Using the Frame Debugger 使用帧调试器

The Frame Debugger window (menu: Window > Frame Debugger) shows the drawcall information and lets you control the “playback” of the frame under construction.

帧调试器窗口(菜单:窗口 > 帧调试器)显示drawcall信息,并且允许你控制构建过程帧的“回放”。

The main list shows the sequence of drawcalls (and other events like framebuffer clear) in the form of a hierarchy that identifies where they originated from. The panel to the right of the list gives further information about the drawcall such as the geometry details and the shader used for rendering.

主列表以资源最初的组织结构格式显示drawcalls序列(和其它事件比如帧缓冲清除),列表右侧的板面显示了关于drawcall更详细的信息,比如几何细节和渲染使用的着色器。

Clicking on an item from the list will show the scene (in the Game view) as it appears up to and including that drawcall. The left and right arrow buttons in the toolbar move forward and backward in the list by a single step and you can also use the arrow keys to the same effect. Additionally, the slider at the top of the window lets you “scrub” rapidly through the drawcalls to locate an item of interest quickly. Where a drawcall corresponds to the geometry of a GameObject, that object will be highlighted in the main Hierarchy panel to assist identification.

点击列表中的一个条目,会(在游戏视图中)随着它的出现显示场景和它的drawcall。工具栏中的左右箭头按钮可以前向或后向选中列表中的条目,使用键盘上的方向键也可以。此外,窗口顶部的滚动条可以让你快速的略过drawcalls定位感兴趣的条目。当一个drawcall对应于一个物体的几何元素时,这个物体在列表面板的资源标识符会高亮。

If rendering happens into a RenderTexture at the selected draw call, then contents of that render texture are displayed in the Game View. This is useful for inspecting how various off-screen render targets are built up, for example diffuse g-buffer in deferred shading:

如果选中的drawcall渲染到纹理(RenderTexture),游戏视图中会显示渲染纹理的图像。这对于检查各种离屏渲染目标如何创建有用,比如延迟着色的散射物体缓冲(g-buffer,Geometry Buffer)。

Or looking at how the shadow maps are rendered:或者看看如下,阴影是如何被渲染的:

Render target display options 渲染目标显示选项

At the top of the information panel is a toolbar which lets you isolate the red, green, blue and alpha channels for the current state of the Game view. Similarly, you can isolate areas of the view according to brightness levels using the Levels slider to the right of these channel buttons. These are only enabled when rendering into a RenderTexture.

信息面板的顶部是一个工具栏,允许你分离游戏视图当前状态的红、绿、蓝和透明通道。同样的,你可以使用通道按钮右边的等级滑动条来根据亮度等级分离视野区域。只有渲染到纹理时才能这样。

When rendering into multiple render targets at once you can select which one to display in the game view. Shown here are the diffuse, specular, normals and emission/indirect lighting buffers in 5.0 deferred shading mode, respectively:

当一次渲染到多个渲染目标时,你可以选择在游戏视图中显示哪一个。下面的视图分别是Unity 5.0延迟着色模式的散射、镜面反射、法线和发射或非直线光:

Additionally, you can see the depth buffer contents by picking “Depth” from the dropdown:

此外,你可以通过选择下拉菜单的“深度”看到深度缓存内容:

By isolating alpha channel of the render texture, you can see occlusion (stored in RT0 alpha) and smoothness (stored in RT1 alpha) of the deferred g-buffer:

通过分离渲染到纹理的透明通道,你可以看到延迟g-buffer的闭合(RT0透明通道中)和平滑(RT1透明通道中):

The emission and ambient/indirect lighting in this scene is very dark; we can make it more visible by changing the Levels slider:

这个场景中的发射光和环境光很暗,我们可以通过滑动等级滚动条让它更能被看清楚:

Alternative frame debugging techniques 其它可供选择的帧调试技术:

You could also use external tools to debug rendering. Build a standalone player, run it through Visual Studio graphics debuggerIntel GPARenderDocNVIDIA NSight orAMD GPU PerfStudio, then capture a frame of rendering, and step through the draw calls and other rendering events to see what’s going on.

你也可以使用外部的工具调试渲染。打一个独立播放包,用Visual Studio图形调试器Intel GPARenderDocNVIDIA NSightAMD GPU PerfStudio运行,然后抓取渲染的一帧,并且逐步调试draw calls和其它渲染事件看看发生了什么。

This is a very powerful approach, since these tools can provide you with a lot of information to really drill down.

因为这些工具提供了真正穿过每个draw call的很多信息,所以是很强大的。
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值