CSS3 GPU硬件加速

1、代码(未添加GPU加速代码)

 1 <!DOCTYPE html>
 2 <html lang="zh-CN">
 3
 4     <head>
 5         <meta charset="UTF-8">
 6         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 7         <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 8         <title></title>
 9         <meta name="keywords" content="##,##,##,##,##,##">
10         <meta name="description" content="###....">
11         <meta name="format-detection" content="telephone=no,email=no">
12         <meta name="apple-mobile-web-app-status-bar-style" content="black">
13         <meta name="apple-mobile-web-app-capable" content="yes">
14         <meta name="apple-touch-fullscreen" content="yes">
15
16         <style>
17             .animation {
18                 -webkit-animation: rotateIn 1s .2s ease both infinite;
19                 -moz-animation: rotateIn 1s .2s ease both infinite;
20             }
21
22             @-webkit-keyframes rotateIn {
23                 0% {
24                     -webkit-transform-origin: center center;
25                     -webkit-transform: rotate(-200deg);
26                     opacity: 0
27                 }
28                 100% {
29                     -webkit-transform-origin: center center;
30                     -webkit-transform: rotate(0);
31                     opacity: 1
32                 }
33             }
34
35             @-moz-keyframes rotateIn {
36                 0% {
37                     -moz-transform-origin: center center;
38                     -moz-transform: rotate(-200deg);
39                     opacity: 0
40                 }
41                 100% {
42                     -moz-transform-origin: center center;
43                     -moz-transform: rotate(0);
44                     opacity: 1
45                 }
46             }
47         </style>
48     </head>
49
50     <body>
51
52         <img src="img/aaa.jpg" class="animation" />
53     </body>
54
55 </html>

F12控制台Timeline记录:

2、代码(添加GPU加速代码)

 -webkit-transform: translateZ(0)
 1 <!DOCTYPE html>
 2 <html lang="zh-CN">
 3
 4     <head>
 5         <meta charset="UTF-8">
 6         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 7         <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 8         <title></title>
 9         <meta name="keywords" content="##,##,##,##,##,##">
10         <meta name="description" content="###....">
11         <meta name="format-detection" content="telephone=no,email=no">
12         <meta name="apple-mobile-web-app-status-bar-style" content="black">
13         <meta name="apple-mobile-web-app-capable" content="yes">
14         <meta name="apple-touch-fullscreen" content="yes">
15
16         <style>
17             .animation {
18                 -webkit-animation: rotateIn 1s .2s ease both infinite;
19                 -moz-animation: rotateIn 1s .2s ease both infinite;
20             }
21
22             @-webkit-keyframes rotateIn {
23                 0% {
24                     -webkit-transform-origin: center center;
25                     -webkit-transform: rotate(-200deg) translateZ(0);
26                     opacity: 0;
27
28                 }
29                 100% {
30                     -webkit-transform-origin: center center;
31                     -webkit-transform: rotate(0);
32                     opacity: 1
33                 }
34             }
35
36             @-moz-keyframes rotateIn {
37                 0% {
38                     -moz-transform-origin: center center;
39                     -moz-transform: rotate(-200deg) translateZ(0);
40                     opacity: 0;
41                 }
42                 100% {
43                     -moz-transform-origin: center center;
44                     -moz-transform: rotate(0);
45                     opacity: 1
46                 }
47             }
48         </style>
49     </head>
50
51     <body>
52
53         <img src="img/aaa.jpg" class="animation" />
54     </body>
55
56 </html>

F12控制台Timeline记录:

3、代码(添加GPU加速代码)

-webkit-backface-visibility: hidden;
-webkit-perspective: 1000;
 1 <!DOCTYPE html>
 2 <html lang="zh-CN">
 3
 4     <head>
 5         <meta charset="UTF-8">
 6         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 7         <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 8         <title></title>
 9         <meta name="keywords" content="##,##,##,##,##,##">
10         <meta name="description" content="###....">
11         <meta name="format-detection" content="telephone=no,email=no">
12         <meta name="apple-mobile-web-app-status-bar-style" content="black">
13         <meta name="apple-mobile-web-app-capable" content="yes">
14         <meta name="apple-touch-fullscreen" content="yes">
15
16         <style>
17             .animation {
18                 -webkit-animation: rotateIn 1s .2s ease both infinite;
19                 -moz-animation: rotateIn 1s .2s ease both infinite;
20             }
21
22             @-webkit-keyframes rotateIn {
23                 0% {
24                     -webkit-transform-origin: center center;
25                     -webkit-transform: rotate(-200deg) translateZ(0);
26                     opacity: 0;
27                     -webkit-backface-visibility: hidden;
28                     -webkit-perspective: 1000;
29                 }
30                 100% {
31                     -webkit-transform-origin: center center;
32                     -webkit-transform: rotate(0);
33                     opacity: 1
34                 }
35             }
36         </style>
37     </head>
38
39     <body>
40
41         <img src="img/aaa.jpg" class="animation" />
42     </body>
43
44 </html>

F12控制台Timeline记录:

总结:好像没有什么大的优化,渲染和绘制时间差的不多。

附:timeline用法

时间: 2024-11-08 20:38:28

CSS3 GPU硬件加速的相关文章

GPU硬件加速

现代浏览器大都可以利用GPU来加速页面渲染.每个人都痴迷于60桢每秒的顺滑动画.在GPU的众多特性之中,它可以存储一定数量的纹理(一个矩形的像素点集合)并且高效地操作这些纹理(比如进行特定的移动.缩放和旋转操作).这些特性在实现一个流畅的动画时特别有用.浏览器不会在动画的每一帧都绘制一次,而是生成DOM元素的快照,并作为GPU纹理(也被叫做层)存储起来.之后浏览器只需要告诉GPU去转换指定的纹理来实现DOM元素的动画效果.这就叫做GPU合成,也经常被称这种借助于显卡的优势改变渲染操作:通常被笼统

GPU硬件加速的那些优秀的资源总结

问题1:transform动画为什么没有经过大量的重绘? 解答:为什么 transform 没有触发 repaint 呢?(1)简而言之,transform 动画由GPU控制,支持硬件加速,并不需要软件方面的渲染.(2)浏览器接收到页面文档后,会将文档中的标记语言解析为DOM树.DOM树和CSS结合后形成浏览器构建页面的渲染树.渲染树中包含了大量的渲染元素,每一个渲染元素会被分到一个图层中,每个图层又会被加载到GPU形成渲染纹理,而图层在GPU中transform 是不会触发 repaint 的

Android中GPU硬件加速控制及其在2D图形绘制上的局限

图形的渲染可分为两种:软件渲染和硬件渲染.软件渲染是靠CPU计算各种坐标并绘制,主要是占用内存:硬件渲染是靠GPU,主要占用显存,一般的3D图形程序(OpenGL.DirectX)都是GPU加速的. 在Android3.0之前,2D绘图API只支持软件渲染模式,从Android3.0开始,2D绘图API开始支持GPU硬件渲染,即View中的Canvas的绘图操作会使用GPU,所以从Android 3.0(API Level 11)开始,View中就多了一些和硬件相关的方法.如果App的Andro

Chrome 浏览器 用GPU硬件加速 让你的web 网页飞起来

摘要:Chrome 浏览器 用GPU硬件加速 让你的web 网页飞起来 安迪儿日前看到这篇介绍,好奇的试了一下 Google Chrome 8.X 版号三级跳,硬件加速再等等 就把原来的chrome 由原来的Stable稳定版本又再更新成Dev开发版本(直接点下去安装就换了) PS:10/21因为安迪儿的好朋友阿舍谈到关于Ubuntu Chrome Dev的事,安迪儿找了一下 用Ubuntu.Linux的朋友们,请到这边捉自已要的Chrome dev版本Subscribing to a chan

Chromium硬件加速渲染的GPU数据上传机制分析

在Chromium中,WebGL端.Render端和Browser端通过命令缓冲区将GPU命令发送给GPU进程执行.GPU命令携带的简单参数也通过命令缓冲区发送给GPU进程,但是复杂参数,例如纹理数据,有可能太大以致命令缓冲区无法容纳,因此需要通过其它机制传递给GPU进程.本文接下来就主要以纹理数据上传为例,分析WebGL端.Render端和Browser端将GPU命令数据传递给GPU进程的机制. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! WebGL

关于硬件加速哪些优秀的资源总结

问题1:transform动画为什么没有经过大量的重绘? 解答:为什么 transform 没有触发 repaint 呢?(1)简而言之,transform 动画由GPU控制,支持硬件加速,并不需要软件方面的渲染.(2)浏览器接收到页面文档后,会将文档中的标记语言解析为DOM树.DOM树和CSS结合后形成浏览器构建页面的渲染树.渲染树中包含了大量的渲染元素,每一个渲染元素会被分到一个图层中,每个图层又会被加载到GPU形成渲染纹理,而图层在GPU中transform 是不会触发 repaint 的

硬件加速

前言 谈起浏览器的硬件加速,想必大家都知道的一个技巧就是在用CSS3做动画时,给元素添加transform: translateZ(0)或者transform: translate3d(0, 0, 0)就会开启GPU的硬件加速,将本来应该是浏览器处理的动画效果转交给GPU处理,从而使得动画看起来更加顺畅,在移动端体验更好.本文将进一步探索其中的奥秘,例如哪些条件可以触发GPU硬件加速?硬件加速背后的工作原理是什么?是不是开启GPU硬件加速的动画应该越多越好?首先让我们来看一个动画效果,通过CSS

Android应用程序UI硬件加速渲染技术简要介绍和学习计划

Android系统的流畅性一直被拿来与iOS比较,并且认为不如后者.这一方面与Android设备硬件质量参差不齐有关,另一方面也与Android系统的实现有关.例如在3.0前,Android应用程序UI绘制不支持硬件加速.不过从4.0开始,Android系统一直以"run fast, smooth, and responsively"为目标对UI进行优化.本文对这些优化进行简要介绍和制定学习计划. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注!

4.1.Android的硬件加速官方文档

参考 https://developer.android.com/guide/topics/graphics/hardware-accel.html 硬件加速背景知识 在手机客户端尤其是Android应用的开发过程中,我们经常会接触到"硬件加速"这个词.由于操作系统对底层软硬件封装非常完善,上层软件开发者往往对硬件加速的底层原理了解很少,也不清楚了解底层原理的意义,因此常会有一些误解,如硬件加速是不是通过特殊算法实现页面渲染加速,或是通过硬件提高CPU/GPU运算速率实现渲染加速. 本