html css opengl,CSS3着色器

由Adobe、苹果、Opera提出的CSS着色器(CSS Shader)将为CSS技术带来3D图形的支持。

着色器在Flash、游戏和其他图形相关的应用中使用非常普遍,它本质上是一个小程序,提供了一种特殊效果(例如失真、模糊或者旋涡效果),其行为由输入参数(失真、模糊或旋涡的量)控制。

着色器有两种:一种是顶点着色器,常用来对场景中的几何图形坐标进行矩阵变换,它是完全可编程的,你可以以任何你想要的方式修改几何图形;另一种是片段着色器(也叫像素着色器),它决定每个三角形像素的最终颜色,现代3D游戏中的动态光源效果常常就是由它完成的。CSS着色器允许开发者同时使用顶点着色器和片段着色器。

CSS着色器对于生成动态效果非常有用,是CSS滤镜效果、转换和动画规范的有力补充,也为滤镜效果规范的feCustom元素提供了一种解决方案。

css3的滤镜效果为任意网页内容提供了一种应用一系列有限基本滤镜的方式,而CSS着色器提供了一种滤镜效果的可扩展机制,允许开发者自定义着色效果,以此来为HTML元素实现丰富的可视化动画效果。此外,CSS着色器为滤镜模型引入了顶点着色器的概念,它通过为元素盒子应用顶点着色器的方式带来了任意改变文档中元素形状的能力。

CSS着色器的另外一个强大之处还在于它能够应用在所有的HTML元素上,包括图片、Canvas、SVG、视频等。

这种波纹效果主要的CSS代码如下(请注意目前还未有浏览器支持):

.waving{

filter: custom(url('wave.vs'), 20 20, phase 0, amplitude 50);

transition-property: filter;

transition-duration: 0.2s;

}

在上面的代码里,滤镜效果规范中定义的filter属性通过custom()方法进行扩展,而custom()方法可以和现有的滤镜方法结合起来使用。而url('wave.vs')引用了一个用户定义的顶点着色器,用于生成波纹效果。20 20参数控制顶点的网格粒度,使波纹平滑。phase(相位)和amplitude(幅度)参数控制正弦波曲线的形状和强度。

W3C推荐采用GLSL(OpenGL Shading Language,OpenGL着色语言)来编写自定义CSS着色器。CSS着色器的加入提高了动画的可编程性,将会使CSS动画效果更为强大和灵活,让开发者有更多方式来创造出更有想象力的动态效果和网页。

需要注意的是,CSS着色器规范目前只是草案,还可能有结构和细节上的调整。它未来有可能集成在滤镜效果规范中,或者成为一个单独的模块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值