UGUI优化之路- Image的Sliced优化

Sliced 九宫格顶点优化

为了节约资源量,项目中必然会有大量图片使用sliced进行九宫格的拉伸,比如 背景,各种图标框,线条等。而原生的UGUI对sliced的实现有一些地方并不是最优的。
其中一个就是 sliced模式下在构建Mesh的时候,顶点数量存在浪费,没有共享顶点

问题

一个Image使用Sliced时,它需要36个顶点和18个三角形:
Image的Sliced(九宫格)顶点的过多会增加Graphic.Rebuild的时间,也会多占用内存。

分析

在UGUI的源码里面,构建Sliced的Mesh的函数 GenerateSlicedSprite(),它里面是直接调用 AddQuad 函数去添加九宫格的一块矩形的,总共会添加9次。
最终绘制一个九宫格 需要18个三角面和36个顶点,其实并不需要用到36个顶点,只需要16个顶点就足够了,因为很多顶点的位置是相同的,没有共享顶点。

解决方案

改法也很简单,弃用 AddQuad函数,直接自己手动添加顶点进去,并且顶点索引也都自己去设置。
最终的优化效果是从 36 个顶点优化到了 16个顶点,顶点数量下降了60%,并且是个无损的优化!
优化伪代码如下:

Vector2 vertPos[4]; //存放16个顶点的X轴和Y轴的信息
Vector2 uvPos[4]; // 16个顶点对应的UV的X和Y轴的信息
for(int i = 0; i < 4; ++i)
{for(int j=0; j < 4; ++j){toFill.AddVert(new Vector2(vertPos[i].x, vertPos[j].y), color, new Vector2(uvPos[i).x, uvPos[j].y));}
}

UGUI优化之路- Image的Sliced优化相关推荐

  1. 精细化容量管理的设备成本优化之路

    精细化容量管理的设备成本优化之路 作者:梁定安,腾讯社交网络运营部,负责社交平台.增值业务的运维负责人,开放运维联盟专家委员,腾讯云布道师. SNG社交网络运营部管理着近10万台的Linux服务器,以 ...

  2. sklearn逻辑回归 极大似然 损失_收藏!攻克目标检测难点秘籍二,非极大值抑制与回归损失优化之路...

    点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 前面的话 在前面的秘籍一中,我们主要关注了模型加速之轻量化网络,对目标检测模型的实时性难点 ...

  3. 《球球大作战》游戏优化之路(上)

    自从2015年<球球大作战>发布以来,现已拥有五亿多的玩家.如此庞大的玩家群体,对游戏的画面,性能要求是非常高的.在Unite Shanghai 2019大会中,<球球大作战> ...

  4. 深入理解缓存系统|单机QPS突破千万优化之路

    hi,大家好,今天给大家分享一篇,如何设计和优化缓存(类redis)系统,希望大家了解真正落地的架构设计方案,类别redis和memcached,了解架构是如何演进的,学习落地经验. CKV(也称为C ...

  5. 从 Wi-Fi 6 的到来,看家庭网络的优化之路!

    作者 | 赵昱,责编 | 郭芮 封图 | CSDN 下载于视觉中国 出品 | CSDN(ID:CSDNnews) 随着科技的不断发展,生活中使用的各种科技产品也在不断的更新换代.在如今,互联网给人们提 ...

  6. CSS代码重构与优化之路(转)

    CSS代码重构与优化之路 阅读目录 CSS代码重构的目的 CSS代码重构的基本方法 CSS方法论 我自己总结的方法 写CSS的同学们往往会体会到,随着项目规模的增加,项目中的CSS代码也会越来越多,如 ...

  7. 懂球帝Android客户端WebView优化之路

    导读 本文作者:涂晓龙 发布时间:2019-12-09 原文地址:https://mp.weixin.qq.com/s/MtEi6DgrNCO6HB2eQ0uBrw 这篇文章讲的是懂球帝Android ...

  8. 天弘基金移动App客户端架构优化之路

    天弘基金移动App客户端架构优化之路 随着移动互联网时代的到来,移动技术也随之飞速发展.如今,APP已成为绝大多数互联网企业用来获取用户的核心渠道.与此同时,伴随着业务量的增长,愈来愈多的APP也在不 ...

  9. 一次网站的性能优化之路 -- 天下武功,唯快不破

    一次网站的性能优化之路 -- 天下武功,唯快不破 首屏作为直面用户的第一屏,其重要性不言而喻,如何加快加载的速度是非常重要的一课. 本文讲解的是:笔者对自己搭建的个人博客网站的速度优化的经历. 效果体 ...

  10. 性能压力测试TPS优化之路---SYN__

    SYN Cookie的原理和实现 2014年01月06日 16:56:15 zhangskd 阅读数:28214 标签: TCPIPlinux内核 更多 个人分类: TCP/IPKernel 所属专栏 ...

最新文章

  1. HSSFWorkbook 与 XSSFWorkbook
  2. python调用dll时路径问题_IDEA 使用 JNA 时,DLL 文件路径问题
  3. 北大数学确实强!阿里数学竞赛决赛,入围人数加起来超过清华和南大之和;还有13位中学选手,最小14岁...
  4. 【AC Saber】双指针
  5. 工业以太网交换机选机攻略
  6. TP5:异常处理封装——3
  7. web前端入门指南:来看看这位大佬的学习之路吧!
  8. android 4 动画,[Android]开发App,你得知道这些4——动画
  9. C++读取字符串中的数字的方法
  10. 定了!百度运维工程师非法挖矿获利 10 万、被判 3 年,如何避免面向监狱编程?...
  11. Java 开发者希望未来使用 Python 和 Go
  12. Eclipse启动莫名报错处理
  13. StackOverflow 推出程序员身价计算器,看看自己值多少钱?
  14. C语言操作符详解(坑点+重难点+优先级结合性总结)
  15. 网络性能测试(系统层面、针对Linux、安卓)
  16. 军工研究所需要计算机专业吗,8大军工研究所之选择——一名毕业生求职的亲身感受...
  17. 美国Disqus、国内JiaThis、友言、评论啦、搜狐畅言 评论系统(第三方评论系统)
  18. 运用调用函数判断是否为素数
  19. html不刷新页面更新js和图片
  20. 《经典算法案例》:听英文神曲不误算法

热门文章

  1. GC基本原理学习(Garbage Collected)
  2. python罗盘时钟代码_jQuery css3创意的罗盘时钟代码
  3. STM8新建IAR工程
  4. 京东智联云能打破“强者恒强”的定律吗?
  5. php 正则 英文开头,php 正则表达式 匹配以“XXX”开头不能以“YYY”结尾
  6. QT中更改主窗体背景色和背景图片
  7. pycharm背景色和字体设置
  8. 华为HCNA实验学习
  9. catch小说内容-从gui到爬虫(2)
  10. 微信小程序中转义字符的处理