技术分享连载(五)

简介:

UI

Q1:能否在NGUI多分辨率适应方面提供一些解决方案或者思路?

多分辨率适应涉及到以下几个方面:

  1. 布局。通常可以通过 NGUI 中的 Anchor 组件来实现,能够保证 UI 到屏幕上指定锚点的距离;
  2. UI 背景图比例。通常我们建议将背景图的长宽比放大,以适配不同长宽比的屏幕,但要注意两边需要留空,或者保留可被裁掉的元素;
  3. UI 的整体缩放。可以通过 UIRoot 组件的 Scaling Style 来统一配置。

需要提醒的是,不同类型的游戏对布局的需求通常也不同,因此还是需要结合实际开发情况来做调整。


图形渲染

Q2:请问Unity引擎中使用什么贴图压缩格式,可以保证在占用内存相对较小的情况下True Color效果和原图相当?同时在iOS和Android平台上图片的压缩格式分别用什么比较合适?有什么需要注意的地方吗?

目前来讲,并不存在一个所有GPU平台都支持硬件解压的压缩格式。 ETC1 和 PVRTC 分别是Android和iOS上我们最推荐的格式。 但对于透明纹理,ETC1不支持,而 PVRTC 则可能有较大失真,因此更推荐使用 RGBA 16。

一般来说建议直接使用 Unity 默认的压缩格式(即选择 Compressed 即可,不需要做特殊设置),Unity 会做如下处理:

  1. Android 上不带Alpha通道的图片采用 ETC1,带Alpha通道的图片采用True Color中的RGB16,TrueColor中的 RGBA16 会>比 RGBA32 更节省空间,但图像的显示质量会差一些;
  2. iOS 上使用 PVRTC,但PVRTC格式要求纹理的长宽相等,且都是2的幂次(即POT,在ImportSettings中可以将NPOT的纹理自动转换成POT)。
    另外,针对Android 上的带Alpha通道的图片,还有一种常见的做法,即把Alpha通道独立出来作为另一张纹理,从而将 RGB 部分和 Alpha 部分分别采用 ETC1来压缩,但渲染时就需要自定义的 Shader来处理。

同时,我们不建议直接使用 RGBA32 格式的纹理,因为它占用了很大的内存。一般建议使用 RGBA16 和 ETC 格式的纹理来进行加载。 如果转换到 RGBA16 格式时出现了类似“色阶”的颜色问题,则建议尽可能避免大量的过渡色使用。


内存管理

Q3:在UWA的帮助下,我们追踪到了一个Reserved GFX的内存占用,并且显示比较高。我们应当如何降低该内存占用呢?

一般来说,Reserved GFX 中的内存,主要是纹理和网格资源,可以尝试对纹理格式进行检测,尽可能使用硬件支持的压缩纹理;而对于网格资源,则可以从减少顶点或者顶点属性入手。 具体信息也可以查看UWA文档。

另外,更重要的是检测纹理和网格资源是否存在冗余(多份一样的资源)或者泄露(比如,主城中的大纹理出现在战斗场景中),这是需要极力避免的。关于资源冗余、内存泄露,开发者可以参考我们之前的文章《 性能优化,进无止境---内存篇(下)》。


资源管理

Q4:请问游戏中特效使用的很多贴图, 一般有什么好的方式去管理吗 ? 不合并图集的话会有上千张小的透明贴图, 合并图集又会有占用内存过多的问题。

可以合并成Atlas,一般将尽可能同时出现频率较高的Texture合成Atlas,这样并不会造成内存过大。在这方面也可以参考我们前不久推荐的插件Mesh Baker。


图形渲染

Q5: 在Unity开发中,大规模使用粒子特效会有什么问题 ?如何去针对性的优化?

普遍来说,会造成Draw call高、渲染开销大、CPU高等问题。下图就是UWA性能诊断系统对粒子系统检测的几个注意点。

UWA Tech Doc





原文出处:侑虎科技
转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

目录
相关文章
|
8月前
|
设计模式 前端开发 JavaScript
前端周刊-2018年9月第三期
前端周刊-2018年9月第三期
53 0
|
前端开发 JavaScript Shell
前端周刊第三期
前端周刊第三期
|
监控 前端开发 架构师
文初技术分享【转】
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。
418 1
|
移动开发 Rust 前端开发
前端周刊第二期
前端周刊第二期
|
资源调度 前端开发 JavaScript
前端周刊第五期
前端周刊第五期
|
机器学习/深度学习 人工智能 运维
开发者社区精选直播合集 | 架构师成长秘籍
架构师是一个十八般武艺都会的岗位,本专栏我们从思维方式、方法论,实践案例、大咖成长经验等角度整理视频合集,给你带来架构师成长营养餐,为你披荆斩棘、教你如何升级打怪,避开弯路成为一名优秀的架构师,快来看看收藏~
451 0
开发者社区精选直播合集 | 架构师成长秘籍
|
JavaScript 前端开发
《阿里云前端技术周刊》第三期
作者:兆庆 校对:染陌 知乎:阿里云中台前端/全栈团队专栏 Github:阿里云前端技术周刊 给我们投稿:传送门 参与交流:传送门 前端速报 Electron 发布 v5.0.0。更多 阿里巴巴官方发布免费商用字体:阿里巴巴普惠体。
2167 0
|
Java 图形学 索引
|
atlas 图形学 Android开发
|
图形学 Java 异构计算