范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

前端油画设计师双缓存绘制与油画分层机制

  背景
  Canvas在图像处理、绘制渲染上有一些得天独厚的优势。但是当我们当前展示的内容中在主题内容变化不大的情况下,会有一些小部分内容的变化,在页面刷新或者滚动的时候,一帧中会有很多复杂内容元素的图画运算,重新对页面元素绘制会导致CPU使用率飙升。
  而重新绘制的过程,实质上是一个不断刮白-重画的过程。但在屏幕上完成这一系列操作是需要一定时间的,而且屏幕上的图形越复杂,所花的时间就越长,我们肉眼可见的刮白-重画操作,在使用过程中就会让就会直接感觉到屏幕的闪烁。
  重绘带来的性能负担和闪烁的问题,会给使用者带来较差的使用体验。为了更好的优化这个两个问题,出现了双缓存画布和油画分层的绘制方法。而本节内容我们也将从电子表格技术出发,为大家揭秘在电子表格技术中双缓存与优化技术的具体应用。双缓存画布
  现在我们有一幅图需要放在Canvas中,使用drawImage()方法,有三种写法:// 将image放到目标canvas指定位置 void ctx.drawImage(image, dx, dy);  // 将image放到目标canvas指定位置,指定宽高渲染 void ctx.drawImage(image, dx, dy, dWidth, dHeight); // 将image裁剪之后放到目标canvas指定位置,指定宽高渲染 void ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
  第一种方法只是把图片原样放到Canvas中,第二种方法指定宽高就意味着放大或者缩小图片后再放进去,第三种是将图片裁剪后再放大或者缩小放到canvas中,这三种写法操复杂度作依次增加,性能开销也随之增大。
  而如果使用离屏渲染(即我们所说的双缓存画布),我们可以预先把图片裁剪成想要的尺寸,然后将该内容保存起来,绘制的时候直接使用第一种写法直接将图片放入Canvas中。 // 在离屏 canvas 上绘制 var offscreencanvas = document.createElement("canvas"); // 宽高赋值为想要的图片尺寸 offscreencanvas.width = dWidth; offscreencanvas.height = dHeight; // 裁剪 offscreencanvas.getContext("2d").drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight); // 在视图canvas中绘制 viewcontext.drawImage(canvas, x, y);
  双缓存画布技术的核心在于系统需要在内存中开辟一块与当前画面等大的"逻辑屏幕"。我们的画图和动画操作都会先作用于这块"逻辑屏幕"中,当一个操作在这块"逻辑屏幕"上完成之后,再把整块"逻辑屏幕"投放到我们的屏幕上。
  (离屏渲染原理示意图)
  在这样的过程之下,我们是无法看到整个图形在屏幕上的重绘过程,从而解决了闪烁问题。就好像看动漫一样,不用双缓存技术,就是画一帧看一帧,肯定会卡顿。而用了双缓存技术,会事先把每一帧画好,不断翻动展示出来。
  (逐帧动画)
  Canvas为此提供了OffscreenCanvas方法,用来构建一个可以脱离屏幕渲染的canvas对象,它在窗口环境和web worker环境均有效。对于一些渲染,如果创建 Image 再进行渲染,会消耗大量 CPU,但用离屏渲染,实测在高频事件中 CPU 使用率减少了一倍之多。油画分层绘制
  分层渲染来处理画面动画的思路并不是现在才有的,从非物质文化遗产皮影戏、套色印刷技术,到现在的音影工业等众多领域都有频繁出现, 而这种思想在Canvas中也处在基石的地位。
  (分层渲染原理示意图)
  Canvas分层的思想是,动画中每种元素,对渲染和动画的要求是不一样的。
  用下图举个例子,在这张图片中除了猫本身在运动外,背景以及下方的文字都是静止重复的。
  (油画分层机制示意图)
  按照分层的逻辑,我们需要频繁更新绘制的只有最上方的猫咪。这个方法类似油画的绘制,所以也被称为油画分层机制。使用这个方法结合双缓冲技术可以有效的将重复绘制的内容分流到屏幕外的画布上,然后再根据我们的需求将屏幕外图像渲染到主画布上,省去了频繁生成重复部分的步骤。技术应用落地
  在实际应用中需要在前端对复杂内容进行渲染或者处理大量数据时,为了更好地对性能进行优化,现在已经有很多项目实际采用了Canvas的双缓存画布和油画分层技术。我们在做电子表格技术选型时也考虑到了这些问题,在电子表格应用项目中,我们动辄需要处理百万数量级数据内容,这种情况下浏览器对表格内容渲染和数据处理的性能就显得无比重要。
  上图是纯前端电子表格中50000*20=100000个数据,处理只需要0.038s。在该纯前端电子表格中,整个绘制引擎根据油画绘制原理,分为主体图层和装饰图层,主题图层将会渲染持久的,不会轻易改变的元素,例如背景,单元格,表格线等。而装饰图层则会渲染常变性元素,例如选择框,拖拽框,悬浮效果等。在下图中第一层到第四层都是主体图层的内容,第五层是装饰图层。
  除此之外整个的绘制过程并不是从数据层(Model)直接到视图层(View)的。而是根据表格内容的特殊性,实现了根据视图层形状,从数据层组合出一层专属视图层的视图数据(ViewModel),再配合前文提到的双缓存画布绘制机制,完成整个表格按需绘制的需求,并缓存绘制结果,进一步提升绘制性能。
  主体图层不是直接绘制在用户能看到的主画布上,而是绘制在一个看不见的缓存画布上。在需要渲染时,只需要讲缓存画布的内容克隆到主画布上,再附加上装饰图层元素
  这样,当表格需要更新时候,比如单元格背景改变,只需要在克隆缓存画布后重绘对应单元格内容即可。
  而当表格向下滚动时,表格滚动结束,需要重绘,主画布会被清空,然后从缓存画布中根据行为上下文进行画布偏移,将偏移后的图层直接绘制在主画布上,随后在主画布上绘制偏移后的剩余部分,最后更新缓存。
  使用缓存画布和油画分层机制,大大提升了绘制性能,使整个滚动过程更加流畅、顺滑。
  觉得不错给点个关注吧~后续还会为大家带来更多技术揭秘和有趣内容。MDN Web Docs:Canvas离屏渲染Wiki 百科:Canvas介绍从软件架构谈论双缓存画布与油画绘制技术公开课
  更多精彩内容,欢迎关注微信公众号:"葡萄城社区"。

盘点亚马逊速卖通Ebay跨境电商平台优点缺点一亚马逊专注于产品及品牌推广,在目前来看亚马逊跨境电商平台可以说是数一数二的。造就了国内一大部分互联网创业人员。选品较为重要,一个产品特别有优势,并且质量也能满足客户需求,基本可以网红郭老师全网封禁,直播行业是否在改革?2021年9月2日成名于某著名短视频平台的郭老师受到平台封禁,信息内容为不符合社区规范。所谓的郭老师生于1994年妹子,并非偶像派,而是她个人的作风让广大网友认为真性情。直播粗言的直播带货取代传统线下电商的核心点是什么?随着时代的进步,科技的发展,商业由传统线下交易演变成线上交易,成就国内电商的爆发,再由传统电商演变成短视频带货模式。可以说是每个模式都是根据消费者追求决定,说白了就是人的欲望未得到三千元以下性价比新机怎么选?realme真我GTNeo2突破重围近期发布的新手机比较多,有华为荣耀iQOOrealme真我小米等,对于想换新手机的朋友可能看上去有些眼花缭乱,尤其是对手机不太了解的人,根本不知道怎么选。我表哥就是一个例子,上网一出道即巅峰,realmeBook性价比吊打众生,米粉纷纷倒戈realme真我发布的首款笔记本电脑realmeBook如期而至,这款笔电笔记本从颜值到内在,从厚度到性能,从屏幕到生产力,无不吸引着大多数打算入手笔记本电脑的消费者。01轻薄与性火药味十足,realme真我GTNeo2确定发布时间,欲超越RedmiK40周末回来第一天,realme真我GTNeo2就确定了发布会的时间,并且打出以强大,回敬热爱的口号。不知道大家有没有发现这个口号有点熟悉,反正我看到的第一眼就在想强大这个词肯定是说r荣耀路由3SE体验(一)颜值网速性价比三高信息时代互联网高速发展,不管是电脑还是手机,或者是电视,都离不开网络,而网络最重要的设备就是路由器。现在几乎家家户户都安装了路由器,但是并不是家家都装上了好的路由器。当前视频分享高回忆2013年三亚到海口每一张火车票都有一个故事!曾经拥有过,美好的时光。享受那天不上班的快乐!2013年正在初八。过完年之后上班第一天。大家都去上班了!可我和我的夫人却坐飞机去了三亚!下午1630从上海评测中端复出,荣耀X20实力自证,角逐两千元档位最佳之选手机市场里,中端产品一直是不可忽略的存在,刚发布没多久的荣耀X20就是这样一款手机,荣耀中端手机还是回来了。作为荣耀X10的迭代产品,荣耀X20不同于以往,最大的特点就是芯片不再是随着欧加系笔电的到来,这个市场真正热闹起来了我们一般说的欧加系,就是包OPPO一加和realme这三个品牌的一个代称,其中OPPO最早成立,也是目前最有名的,但是另外的一加和realme却以不同的定位赢得属于自己的消费者。这小米iQOO纷纷承让,realme真我GTNeo2打造顶级直屏,参数全拉满在手机圈里,小米iQOO是十分注重手机屏幕素质的厂商,但是这一次看到realme真我GTNeo2的屏幕参数,才发现小米iQOO在屏幕素质方面却输给了realme真我。realme真
想不到的LGV40还会有惊喜嘛?LG翻盖手机LG翻盖手机是否成为2021年的手机新趋势呢?随着OLED屏技术的成熟,翻盖手机进入了新纪元,从传统的机械方式转变可折叠式的新设计风格。但直板全屏LG是否能给你带些性价诺基亚再出新品,T20会给你不一样的惊喜?诺基亚再出新品,是否会让你吃惊呢?是的,没错。在手机市场竞争不断白热化的当下,诺基亚也在不断的突破自我,从雄霸一时的手机霸主到默默无闻的手机品牌,其中心酸自知,但诺基亚从来没有放弃护眼台灯也有真假来看看达伦自然光台灯,真护眼真舒服台灯作为日常的照明工具之一它有着举足轻重的地位。一款好的台灯不仅可以为用户进行照明,还能够在使用者照明的同时保护他们的眼睛不受损伤。就以我手上的这款达伦自然光护眼台灯DL31W为例程序员如何提高自己的工作效率如何高效地工作是每个优秀程序员必须要做到的,如果你不想总是加班,总是最后一个下班,那么你就应该高效地进行每天的工作,只有这样,你才能够有更多的时间去提升自己,从而让自己的工作效率更2021性价比笔记本电脑盘点笔记本电脑的核心是什么相比于台式机,笔记本的最大的优点应该就是它的便捷性,之所以叫它笔记本,就是因为它可以像书本一样转入包里面,可以随身携带,因此,便捷应该是笔记本最核心的价值体现一耳朵的舒适COZOYTAKTC解码耳放线ampampamp森韵黑胶升级耳机评测自苹果宣布取消3。5mm接孔以来已历经多年,伴随而来的则是手机市场的风潮变化,传统的有线耳机依然有着大量拥趸,无线耳机却已然成大势所趋,其中真无线耳机更是一时风头无两。当然,耳机接冷艳与鲜明,是进阶发烧的惊喜发现老人家水黄鹂HIFI版评测鸟塞推出新品的速度总是把握的恰到好处,就像曾经的灰黄鹂和银黄鹂出现一样,不会让人觉得太紧凑而又急功近利的趋势和现象,更不会让烧友觉得出新品类似挤牙膏这样的想法。讲真,鸟塞系列的几款2019神舟电脑U45系列发布会芯动精盾,全面升级十代处理器10月31日上午1030,神舟电脑新品发布会在深圳神舟电脑大厦隆重召开,新品发布会以神舟精盾,开启芯十代为主题共发布6款精盾系列笔记本电脑。神舟电脑的重要合作伙伴英特尔英伟达微软等低碳节能,智慧办公,企业上云更轻松世界地球日(TheWorldEarthDay)即每年的4月22日,是一个专为世界环境保护而设立的节日,旨在提高民众对于现有环境问题的意识,并动员民众参与到环保运动中,通过绿色低碳生算网融合,鹏博士云网亮相首届算网融合产品发展论坛荣获多项认可3月17日,2021年首届算网融合产品发展论坛暨CCSATC610WG4技术年会论坛在北京成功举办,参加本次论坛的有中华人民共和国工业和信息化部相关部门主管领导电信运营商设备制造商德国又设5G测试项,或将不采用华为?运营商我们太难了近日德国外交部长表态,将对5G供应商进行一项安全测试,并表示华为可能会被排除在德国5G网络的部分项目之外,而情况可能还会更糟。要知道此前德国算是比较早就说力挺了华为5G的,不过态度