首页 > 其他分享 >(五)Unity性能优化-Texture导入设置检查与优化

(五)Unity性能优化-Texture导入设置检查与优化

时间:2023-09-22 11:16:05浏览次数:47  
标签:开启 Texture 纹理 2D Unity 过滤 默认 Alpha 优化

Texture Shape

- 2D 最常用的2D纹理,默认选项
- Cube 一般用于天空和与反射探针,默认支持Default、Normal、Single Channel几种类型纹理,可以通过Assets > Create > Legacy > Cubemap生成,也可以通过C#代码 Camera.RenderToCubemap在脚本中生成
- 2D Array 2D纹理数组,可以极大提高大量相同大小和格式的纹理访问效率,但需要特定平台支持,可以通过引擎SystemInfo.supports2DArrayTextures 接口运行时查看是否支持。
- 3D 通过纹理位图方式存储或传递一些3D结构话数据,一般用于体积仿真,如雾效、噪声、体积数据、距离场、动画数据等信息,可以外部导入,也可运行时程序化创建。

Alpha Source

默认选择Input Texture Alpha就好,如果确定不使用原图中的Alpha通道,可以选择None。另外From Gray Scale我们一般不会选用

Alpha Is Transparency

指定Alpha通道是否开启半透明,如果位图像素不关心是否要半透明可以不开启此选项。这样Alpha信息只需要占1bit。节省内存

Ignore Png file gamma

是否忽略png文件中的gamma属性,这个选项是否忽略取决于png文件中设置不同gamma属性导致的显示不正常,一般原图制作流程没有特殊设置,这个选项一般默认就好。

Read/Write

开启此选项会导致内存量增加一倍,默认我们都是不开启,除非你的脚本逻辑中需要动态读写该纹理时需要打开此选项。

Generate Mip Maps

什么时候不需要生成MipMaps?

1. 2D场景
2. 固定视角,摄像机无法缩放远近

- Border Mip Maps 默认不开启,只有当纹理的是Light Cookies类型时,开启此选项来避免colors bleeding现象导致颜色渗透到较低级别的Mip Level纹理边缘上
- MipMap Filtering
- Box 最简单,随尺寸减小,Mipmap纹理变得平滑模糊
- Kaiser,避免平滑模糊的锐化过滤算法。
- Mip Maps Preserve Coverage,只有需要纹理在开启mipmap后也需要做Alpha Coverage时开启。默认不开启。
- Fadeout MipMaps,纹理Mipmap随Mip层级淡化为灰色,一般不开启,只有在雾效较大时开启不影响视觉效果。

选择合适纹理过滤的最佳经验:

- 使用双线性过滤平衡性能和视觉质量。
- 有选择地使用三线性过滤,因为与双线性过滤相比,它需要更多的内存带宽。
- 使用双线性和 2x 各向异性过滤,而不是三线性和 1x 各向异性过滤,因为这样做不仅视觉效果更好,而且性能也更高。
- 保持较低的各向异性级别。仅对关键游戏资源使用高于 2 的级别。

其他可能有问题的纹理类型

- 纹理图集大小设置不合理,图集利用率低
- 大量只有颜色差异的图片
- UI背景贴图而不采用9宫格缩放的图
- 纯色图没有使用Single Channel
- 不合理的半透明UI,占据大量屏幕区域,造成Overdraw开销
- 大量2D序列帧动画,而且图片大,还不打图集
- 不合理的通道图利用方案
- 大量渐变色贴图,没有采用1像素过渡图,也不采用Single Channel, 粒子特效中较为常见。

优化前后对比:

纹理内存使用减少了170M左右, APK包体减少了140M左右

 

标签:开启,Texture,纹理,2D,Unity,过滤,默认,Alpha,优化
From: https://www.cnblogs.com/zerobeyond/p/17721825.html

相关文章

  • 支付宝小程序排名优化策略,产品经理们看过来
    随着移动支付的普及,支付宝小程序已成为连接用户与商户的重要平台。如何进行支付宝小程序排名优化,使更多用户可以搜索到小程序,对商家来说是非常关键的。下面本文将全面解析支付宝小程序排名优化的重要性、算法原理、以及具体的操作策略。更多支付宝小程序排名优化需求,可某薇找我......
  • 前端性能优化必杀技:骨架屏让你快人一步
    在现代前端开发中,用户体验和性能优化一直是小伙伴们追求的目标之一。骨架屏(SkeletonScreen)作为一种优化用户界面加载速度的方法,应用在各种(App/小程序/h5)应用里面。本文将深入探讨骨架屏的最佳实践,结合代码案例,介绍如何实现和优化骨架屏。什么是骨架屏?骨架屏是一种在页面加......
  • openGauss学习笔记-76 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT简介
    openGauss学习笔记-76openGauss数据库管理-内存优化表MOT管理-内存表特性-MOT简介本节介绍了openGauss内存优化表(Memory-OptimizedTable,MOT)的简介。76MOT简介openGauss引入了MOT存储引擎,它是一种事务性行存储,针对多核和大内存服务器进行了优化。MOT是openGauss数据库最先进......
  • 如何优化和开源定制知识付费系统源码
    众所周知,要成功运营一个知识付费平台,需要不断优化和定制系统源码,以满足用户需求并提供出色的用户体验。本文将介绍如何优化和开源定制知识付费系统源码,以便更好地适应市场和用户需求。 第一步:选择合适的知识付费系统源码选择合适的知识付费系统源码是成功的第一步。第二步:定制化用......
  • [Unity] 基于 ParadoxNotion FlowCanvas 插件实现技能
    游戏中的技能总是有各种各样的逻辑比如持续性范围技能,魔兽争霸的暴雪风链式技能,博德之门的闪电链持续技能,博德之门的昼明术等等,这些技能都有各自特殊的逻辑,如何让这些技能有一个通用的配置方法像是RPGBuilder会有一个技能编辑器,里面提供了尽可能多的选择来配置技能编辑器......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(6) -- 窗口控
    在我们窗口新增、编辑状态下的时候,我们往往会根据是否修改过的痕迹-也就是脏数据状态进行跟踪,如果用户发生了数据修改,我们在用户退出窗口的时候,提供用户是否丢弃修改还是继续编辑,这样在一些重要录入时的时候,可以避免用户不小心关掉窗口,导致窗口的数据要重新录入的尴尬场景。本篇随......
  • 工作流程优化 - 总结笔记
    一、一个忙碌的上午(现实中的工作流问题)小张已经忙了一个早上了,她觉得自己还是很有条理的,这种有条理的忙碌感让他觉得内心充实。她会把每件工作按照紧急程序进行一个大致的排序,一件件处理,但是判断依据呢?只是自己的一个感觉而已。(问题:没有对瓶颈环节设计紧急的分流方案)老王的......
  • MySQL 分页优化
    1.普通翻页limitSELECTidFROMpage_test_tORDERBYidLIMIT1000,10例如:limit1000,10,会从数据文件中查询1010行记录,只返回的10记录,前1000行记录会被抛弃掉。2.延迟关联作为子查询或视图自关联适合前后翻页、跳页可以先按照条件分页查询出主键,然后根据主键的再去关......
  • unity3d 清空控制台
    unity3d清空控制台usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;usingAssemblyCSharp;usingSystem;#ifUNITY_EDITORusingUnityEditor;#endifpublicclassVCClearConsole:MonoBehaviour{//......
  • 用 Webpack 优化网站的技术
    代码分割代码分割是一种将代码分成更小、更易于管理的块的技术,这些块可以按需加载。这可以通过减少用户访问您的网站时需要加载的代码量来帮助提高网站性能。要在Webpack中使用代码分割,可以使用splitChunks配置选项。此选项允许您指定应将哪些模块拆分为单独的块。您还可以......