uwa资源使用

来源:互联网 发布:unity3d用什么语言 编辑:程序博客网 时间:2024/05/16 08:53

资源使用

【资源使用】页面主要展示项目运行过程中重点资源的使用情况,主要包括以下几个部分:

数据汇总

该项主要展示资源的具体使用情况,其展示数据根据资源种类的不同而不同,具体如下:

纹理


该项主要展示项目运行过程中纹理资源的 “内存峰值”、“大于1MB数量”、“RGBA32格式数量” 和 “RGB24格式数量”。其中,“内存峰值” 表示纹理资源在使用过程中的内存最大量;“大于1MB数量” 表示所检测到的纹理资源中,内存大于1MB的资源数量;“RGBA32格式数量” 表示所检测到的纹理资源中,格式为RGBA32的资源数量;“RGB24格式数量” 表示所检测到的纹理资源中,格式为RGB24的资源数量。

在纹理资源的优化方面,我们建议尽可能降低其内存上的占用,其主要影响因素包括纹理分辨率、纹理格式、Mipmap等。对于纹理分辨率,应采取 “尽可能小、够用就好” 的原则。在尽可能保证渲染效果的前提下,使用足够低的分辨率来降低纹理的内存占用;对于纹理格式,则尽可能采用适合于发布平台的硬件支持纹理格式,比如对于Android平台,建议使用ETC1格式,对于iOS平台,建议使用PVRTC格式,对于PC,建议使用DXT格式等等。

关于更为详细的资源分析,建议查看【具体资源信息】页面。

注意 :
  • 在Android平台上,ETC1格式不支持半透明纹理,所以半透明纹理可以直接转换成RGBA16格式进行渲染。当然,更为出色的办法是,将半透明纹理拆分成两张纹理,记录RGB通道信息的RGB24格式纹理和记录Alpha通道信息的Alpha8格式纹理,然后再分别转成ETC1格式进行保存。这种方法既可以最大限度地保证渲染质量,又可以极大降低纹理内存的占用。
  • 纹理从RGBA32转换成RGBA16、ETC1或PVRTC格式时,均会带来一定程度的质量损失,甚至出现难以接受的 “色阶” 效果。究其原因,是因为纹理图像中的过渡色所致。因此,建议您在显示效果和性能效率方面进行权衡,尽可能降低过渡色的跨度范围。

网格


该项主要展示项目运行过程中的网格资源的 “内存峰值”、“资源数量峰值”、“含有Color属性的资源数” 和 “含有Tangent属性的资源数”。其中,“内存峰值” 表示网格资源在运行过程中的内存最大量;“资源数量峰值” 表示网格资源的数量最大值;“含有Color属性的资源数” 和 “含有Tangent属性的资源数” 分别表示网格数据中含有Color 信息Tangent 信息 的网格资源数量。

在网格资源的优化方面,大多数研发团队遇到的主要问题还是其内存上的占用量过大,即资源的数据量过大。网格的资源数据主要包括 顶点 & 面片数据Normal(法线)数据Color(颜色)数据Tangent(切向量)数据 等。

通过大量项目的深度检测,我们发现大多数项目的网格资源均存在一定的 “多余” 数据。所谓 “多余” 数据,是指在网格数据中存在但却从未被使用的数据。比如,在移动设备上,网格模型在渲染时基本上只使用VertexUVNormal 等数据,而 TangentColor 数据则很少被使用。但是,这些数据却经常在3D MaxMaya 等工具导出时被附带上,从而造成了网格资源的 “多余” 数据。

同时,“多余” 数据的危害还体现在网格拼合上。Unity 引擎的 Draw Call Batching 功能或您自己调用的 StaticBatchingUtility API 均可以将场景中的网格数据进行拼合,从而形成一个或几个较大的 VBO(Combined Mesh)。这种做法是渲染优化时的常见方法,主要用于降低渲染模块的Draw Call数量,从而提升渲染效率。这本身是一个非常棒的功能,但您需要注意的是,网格合并时一定要保证网格数据结构的统一性,否则会大大增加拼合网格(Combined Mesh)的数据量!举个例子,当拼合100个网格模型时,如果99个模型网格数据中仅含有Vertex、UV等数据,而仅有1个模型网格数据中含有Vertex、UV、Normal、Color和Tangent数据,则拼合后,拼合网格中的所有顶点均会添加上 Normal、Color 和 Tangent 数据,大量的 “多余” 数据也就由此产生了...

因此,我们建议您针对网格数据进行详细检测,避免 “多余” 数据的产生。关于更为详细的资源分析,建议查看【具体资源信息】页面。

动画资源


该项主要展示项目运行过程中动画片段资源的 “内存峰值”、“资源数量峰值”、“常驻内存资源数量” 和 “疑似冗余资源数量”。其中,“内存峰值” 表示动画片段资源在运行过程中的内存最大量;“资源数量峰值” 表示动画片段资源的数量最大值;“常驻内存资源数量” 表示常驻内存的资源数量;“疑似冗余资源数量” 表示项目运行过程中,同一帧中 “同一资源存在多份” 的资源数量。

关于更为详细的资源分析,建议您查看【具体资源信息】页面。

注意: 所谓 “疑似冗余资源”,是指在检测过程中,我们尝试搜索项目运行时的冗余资源并将其反馈给用户。但是,我们并无法保证该项检测的100%正确性。这是因为,我们判断的标准是根据资源的名称和内存占用而定,当两个资源的名称和内存占用均一致时,我们认为这两个资源可能为同一资源,即其中一个为 “冗余” 资源。但项目中确实也存在资源不同但名称和内存占用相同的情况。因此,我们将通过以上规则提取出的资源归为 “疑似冗余资源”。

音频资源


该项主要展示项目运行过程中音频资源的 “内存峰值”、“资源数量峰值”、“常驻内存资源数量” 和 “疑似冗余资源数量”。其中,“内存峰值” 表示音频资源在使用过程中的内存最大量;“资源数量峰值” 表示音频资源的数量最大值;“常驻内存资源数量” 表示常驻内存中的资源数量;“疑似冗余资源数量” 表示项目运行过程中,同一帧中 “同一资源存在多份” 的资源数量。

关于更为详细的资源分析,建议您查看【具体资源信息】页面。

注意: “疑似冗余资源”,是指在检测过程中,我们尝试搜索项目运行时的冗余资源并将其反馈给用户。但是,我们并无法保证该项检测的100%正确性。这是因为,我们判断的标准是根据资源的名称和内存占用而定,当两个资源的名称和内存占用均一致时,我们认为这两个资源可能为同一资源,即其中一个为 “冗余” 资源。但项目中确实也存在资源不同但名称和内存占用相同的情况。因此,我们将通过以上规则提取出的资源归为 “疑似冗余资源”。

材质资源


该项主要展示项目运行过程中材质资源的 “内存峰值”、“资源数量峰值”、“常驻内存资源数量” 和 “疑似冗余资源数量”。其中,“内存峰值” 表示材质资源在使用过程中的内存最大量;“资源数量峰值” 表示材质资源的数量最大值;“常驻内存资源数量” 表示常驻内存中的资源数量;“疑似冗余资源数量” 表示项目运行过程中,同一帧中 “同一资源存在多份” 的资源数量。

关于更为详细的资源分析,建议查看【具体资源信息】页面。

注意: “疑似冗余资源”,是指在检测过程中,我们尝试搜索项目运行时的冗余资源并将其反馈给用户。但是,我们并无法保证该项检测的100%正确性。这是因为,我们判断的标准是根据资源的名称和内存占用而定,当两个资源的名称和内存占用均一致时,我们认为这两个资源可能为同一资源,即其中一个为 “冗余” 资源。但项目中确实也存在资源不同但名称和内存占用相同的情况。因此,我们将通过以上规则提取出的资源归为 “疑似冗余资源”。

数量&内存 使用趋势


该项主要展示各种资源的数量使用情况和内存占用情况,重点反馈内存占用量是否合理,是否存在内存泄露等问题。

同时,您可以通过与图表进行交互来查看具体一帧的资源数量和内存使用情况。

原文地址:https://www.uwa4d.com/doc-main.html?page=pa-asset

0 0
原创粉丝点击