Unity项目的优化思路和实践经验在此总结一下。

1.性能检测

要优化首先需要分析现有的性能瓶颈,获取性能数据,根据情况决定优化什么,如何优化。
性能分析的工具和方法:

-检测工具:Profiler、SnapdragonProfiler、IntelGPA、XCode

检测工具帮助我们实时分析游戏运行时候的资源,CPU、内存、GPU等使用情况,来定位当前项目的瓶颈和优化点。

//todo shader复杂度计算

-抓帧工具:FrameDebug、SnapdragonProfiler、RenderDoc、IntelGPA、XCode

这类工具的作用主要是分析GPU渲染的过程,分析DrawCall是否正常、绘制是否多余、RT是否冗余等问题。

值得一提的是,有些抓帧工具是可以统计每个DC的GPU耗时的,有时候对于性能分析有较大的参考意义,但个人实践过程中感觉RenderDoc的不准确,SnapdragonProfiler的还可以。

SnapdragonProfiler耗时的计算方法为:
DrawCall耗时 = DrawCall耗费的GPUBlocks数量 * GPU频率

//todo 贴一些实例图片

本文对URP使用的这段时间的一些理解和总结。从知乎转移:URP管线架构学习总结

1.URP渲染管线的架构图

理解一个系统设计比较重要的就是类图了。

2.各个类的一些作用和使用

(1)UniversalRenderPipelineAsset

本质是一个ScriptableObject类型,用于序列化URP的一些设置,General、Quality、Lights、Shadows等。

搬运知乎之前写的文章链接:(知乎把GIF转换成了MP4,不知道怎么显示在这里,就先这样吧) https://zhuanlan.zhihu.com/p/143261544

其实渲染里没有真正的透明物体,透明效果是通过颜色的Blend模仿到的。 正常的透明渲染需要一个一个前后混合,所以半透明是通过前向渲染。 透明的渲染混合指令Blend 原因子 目标因子 Blend 原RGB因子 目标RGB因子 原A因子 目标A因子 通过不同的混合组合,就可以达到各种效果。 如常见的: Blend ScrAlpha OneMinusSrcAlpha //Transparent Blend One One //Aditive Blend ScrAlpha One...

渲染梳理目录。 一个游戏的整个渲染都有哪些部分? Lighting直接光照ForwardRender前向渲染Forward+ClusterForward+DeferredRender延迟渲染TileBaseDeferredClusterDeferredVisibilityBufferDeferredShadingModel光照模型PBRKajiya各种CustomShadingModelShadow直接光阴影CascadeShadowMap级联阴影PerObjectShadow高精度阴影DistanceFieldShadow距离场阴影ContactShadow接触阴影VSM虚拟阴影Volume...

个人网站的开始

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing