0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用shouldRasterize属性如何解决GPU视图的混合和过度绘制的概述

Dbwd_Imgtec 来源:未知 作者:易水寒 2018-05-13 11:36 次阅读

GPU每一帧可以绘制的像素有一个最大限制(就是所谓的fill rate),这个情况下可以轻易地绘制整个屏幕的所有像素。但是如果由于重叠图层的关系需要不停地重绘同一区域的话,掉帧就可能发生了。

GPU会放弃绘制那些完全被其他图层遮挡的像素,但是要计算出一个图层是否被遮挡也是相当复杂并且会消耗处理器资源。同样,合并不同图层的透明重叠像素(即混合)消耗的资源也是相当客观的。所以为了加速处理进程,不到必须时刻不要使用透明图层。

任何情况下,你应该这样做:

  • 给视图的backgroundColor属性设置一个固定的,不透明的颜色

  • 设置opaque属性为YES

这样做减少了混合行为(因为编译器知道在图层之后的东西都不会对最终的像素颜色产生影响)并且计算得到了加速,避免了过度绘制行为因为Core Animation可以舍弃所有被完全遮盖住的图层,而不用每个像素都去计算一遍。

如果用到了图像,尽量避免透明除非非常必要。如果图像要显示在一个固定的背景颜色或是固定的背景图之前,你没必要相对前景移动,你只需要预填充背景图片就可以避免运行时混色了。

如果是文本的话,一个白色背景的UILabel(或者其他颜色)会比透明背景要更高效。

最后,明智地使用shouldRasterize属性,可以将一个固定的图层体系折叠成单张图片,这样就不需要每一帧重新合成了,也就不会有因为子图层之间的混合和过度绘制的性能问题了。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4336

    浏览量

    126296
  • Core
    +关注

    关注

    0

    文章

    173

    浏览量

    42552
  • 编译器
    +关注

    关注

    1

    文章

    1563

    浏览量

    48527

原文标题:GPU绘图:如何应对混合和过度绘制?

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ***如何根据底视图绘制封装库

    今天遇到一个贴焊的芯片,只有底视图,按照底视图尺寸绘制了一个封装,可实际焊接(绘制PCB)的时候需要的是顶视图,要不然焊接就不对了,我怎么才
    发表于 03-12 15:08

    绘制PCB的3D视图和其他的一些特殊需求

    RT,楼主现在绘制了一块PCB,现在由于工作需要,要把这个PCB的3D视图导出到CAD,要求显示所有细节,楼主用的Altiun Desiger 15,目前做了以下的尝试:1.导出为DWG/DXF格式
    发表于 09-07 10:59

    单个GPU上不支持混合配置文件吗?

    有人可以确认单个GPU上不支持混合配置文件吗?我知道这在K1 / K2 GPU中不受支持,但听到有关M6 / M60 GPU的一些混合消息。
    发表于 10-08 14:07

    如何使用CAD来绘制轴测图和三视图

      很多设计师在绘制dwg三视图的过程中都会在图纸的下方绘制一个立体图形,这样能很直观的表现出图形的形状和结构,而在CAD软件中除了绘制三维图形表达外,还有一个方法就是用等轴测投影所
    发表于 04-15 16:20

    MATLAB高级图形绘制技术

    MATLAB高级图形绘制技术 5.1 其他二维图形绘制命令5.2 其他三维图形绘制命令5.3 句柄图形绘制技术5.4 图形可视编辑工具5.5 视角变换与三
    发表于 09-03 12:17 0次下载

    MATLAB高级图形绘制技术

    MATLAB高级图形绘制技术 5.1 其他二维图形绘制命令5.2 其他三维图形绘制命令5.3 句柄图形绘制技术5.4 图形可视编辑工具5.5 视角变换与三
    发表于 09-03 12:18 0次下载

    基于GPU的点模型实时绘制

    近几年随着GPU的可编程能力的增强,很多基于点的绘制算法都可以移植到GPU上来实现,这样既可以让CPU有时间来处理其他事,又可以通过GPU提高算法的运行速度。由于目前的
    发表于 03-01 14:49 7次下载

    C_与Matlab混合编程在BEAM绘制中的应用_范婵娇

    C_与Matlab混合编程在BEAM绘制中的应用_范婵娇
    发表于 03-19 11:26 0次下载

    医学层析图像实时体绘制

    层析图像到计算机内存,构造体素;然后,设置相应体素属性(如插值方式、着色处理、光照参数)等,设计显示不同组织器官的颜色及不透明度传输函数;最后,GPU加栽体素据并进行光线投射算法的计算。实验结果表明,在绘制速度上,GP
    发表于 02-05 15:23 1次下载

    OrCAD教程:如何添加footprint属性 如何生成netlist

    添加footprint属性 单个元件添加footprint属性 第一种方法:直接修改 1双击元件,弹出property editor对话框 2在左上角空白处右键-pivot,改变视图 改变后
    发表于 04-24 08:28 9207次阅读
    OrCAD教程:如何添加footprint<b class='flag-5'>属性</b> 如何生成netlist

    数据库教程之索引和视图的详细资料概述免费下载

    本文档的主要内容详细介绍的是数据库教程之索引和视图的详细资料概述免费下载包括了:索引基本概念,索引的存储结构及分类,创建和删除索引,视图概念 定义视图,通过
    发表于 10-19 10:41 9次下载
    数据库教程之索引和<b class='flag-5'>视图</b>的详细资料<b class='flag-5'>概述</b>免费下载

    何解决模拟混合信号设计的挑战

    这种按需网络研讨会演示了如何解决模拟混合信号设计挑战增加可靠性和速度与AMS垫专业产品开发。
    的头像 发表于 10-18 07:08 3301次阅读

    Orcad原理图属性隐藏与显示的方法

    Orcad绘制原理图时,对某些属性隐藏或者显示应该怎么处理呢?
    的头像 发表于 01-26 14:30 1.5w次阅读
    Orcad原理图<b class='flag-5'>属性</b>隐藏与显示的方法

    可在现有视图上布局和绘制分隔线的库文件

    该库可以帮助您轻松地在现有视图上布局和绘制分隔线。为了获得更好的性能,请不要再为绘图分隔线创建新视图,而应使用drawable。 安装 方式一: 添加har包到lib文件夹内 在entry
    发表于 03-22 10:09 0次下载

    openharmony第三方组件适配移植的自由绘制视图教程

    项目介绍 项目名称:自由绘制视图 所属系列:openharmony的第三方组件适配移植 功能:根据手势绘制图案,获取绘制的图片 项目移植状态:主功能完成 调用差异:无 开发版本:sdk
    发表于 04-01 10:42 1次下载