一.粒子容器

粒子容器PIXI.particles.ParticleContainer是一个能容纳大量显示精灵的容器,其具有快速、高效的特点,支持容期内显示对象的位置变化、大小缩放和角度旋转;然而出于性能的考虑,同时也屏蔽了容器内显示对象如基色变化、遮罩层等特效功能。粒子容器继承于PIXI.Container。创建方法如下:

new PIXI.particles.ParticleContainer(maxSize, properties, batchSize);

该函数中,maxSize表示最大容纳量;properties表示设置粒子容器的属性;batchSize表示每批渲染对象的数量,默认值与maxSize一样。

创建粒子容器的完整参考代码如下:

//创建粒子容器
var sprites = new PIXI.particles.ParticleContainer(10000, {scale: true,position: true,rotation: true,uvs: true,alpha: true
});
app.stage.addChild(sprites);//创建粒子
var totalSprites = app.renderer instanceof PIXI.WebGLRenderer ? 10000 : 100;
for(var i = 0; i < totalSprites; i++) {var dude = PIXI.Sprite.fromImage('../img/bunny.png');//设置中心点dude.anchor.set(0.5);//设置不同缩放值dude.scale.set(0.8 + Math.random() * 0.3);// 随机出现位置dude.x = Math.random() * app.renderer.width;dude.y = Math.random() * app.renderer.height;// 设置不同的颜色dude.tint = Math.random() * 0x808080;//添加到粒子容器中sprites.addChild(dude);
}

效果图:

此案例中快速渲染了10000个显示精灵,然后完全不会感觉到卡顿情况的发生。

二.遮罩层

遮罩层,是指可以将与遮罩层相链接的图形中的图像遮盖起来。用户可以将多个层组合放在一个遮罩层下,以创建出多样的效果。在显示精灵中,遮罩层属性用mask表示,遮罩层mask的赋值参数类型为PIXI.Graphics和PIXI.Sprite,设置遮罩层的对象只有遮罩层区域会显示出来。

遮罩层应用的完整参考代码如下:

app.stage.interactive = true;
//建立显示精灵1
var bGrotate = PIXI.Sprite.fromImage('../img/BGrotate.jpg');
bGrotate.anchor.x = 0.5;
bGrotate.anchor.y = 0.5;
bGrotate.position.x = app.renderer.width / 2;
bGrotate.position.y = app.renderer.height / 2;
//建立显示精灵2
var bgFront = PIXI.Sprite.fromImage('../img/SceneRotate.jpg');
bgFront.anchor.x = 0.5;
bgFront.anchor.y = 0.5;
bgFront.position.x = app.renderer.width / 2;
bgFront.position.y = app.renderer.height / 2;
//建立显示容器
var container = new PIXI.Container();
container.addChild(bGrotate);
container.addChild(bgFront);
app.stage.addChild(container);//建立画笔
var thing = new PIXI.Graphics();
app.stage.addChild(thing);
thing.position.x = app.renderer.width / 2;
thing.position.y = app.renderer.height / 2;
thing.clear();
thing.beginFill(0x8bc5ff, 0.4);
thing.drawCircle(0, 0, 0);
thing.lineStyle(0);
//设置遮罩层属性后,将会隐藏,只有赋值该属性的对象区域能显示
bgFront.mask = thing;var r = 0;
app.ticker.add(function() {r += 10;thing.clear();thing.beginFill(0x8bc5ff, 0.4);thing.drawCircle(0, 0, r);thing.lineStyle(0);
});

效果图:图SceneRotate.jpg(绿色叶子)由圆心向外扩展。

三.滤镜

滤镜主要是用来实现图像的各种特殊效果。在显示对象中用属性filters表示,要移除滤镜只需把此属性设为null即可。系统提供的滤镜有:

BlurFilter
BlurXFilter
BlurYFilter
ColorMatrixFilter
DisplacementFilter
FXAAFilter
NoiseFilter
VoidFilter

详细用法可以查看pixi的api文档。

模糊滤镜应用的完整参考代码如下:

var bg = PIXI.Sprite.fromImage('../img/BGrotate.jpg');
bg.width = app.renderer.width;
bg.height = app.renderer.height;
app.stage.addChild(bg);
var littleDudes = PIXI.Sprite.fromImage('../img/panda.png');
littleDudes.position.x = 100;
littleDudes.position.y = 100;
app.stage.addChild(littleDudes);
var blurFilter1 = new PIXI.filters.BlurFilter();
littleDudes.filters = [blurFilter1];
var count = 0;app.ticker.add(function() {count += 0.01;var blurAmount = Math.cos(count);blurFilter1.blur = 20 * (blurAmount);
});

效果图:

前端动画渲染引擎pixi.js系列(7)粒子容器、遮罩层和滤镜的应用相关推荐

  1. 前端动画渲染引擎pixi.js系列(5)Text文本和Graphics画笔工具

    一.文本 文本对象PIXI.Text是指创建一行或多行文字,可以使用'\n'来实现换行,文本对象PIXI.Text的继承关系是: PIXI.Text->PIXI.Sprite 文本PIXI.Te ...

  2. H5 2D渲染引擎—Pixi.js 精灵的位置、大小、旋转、移动

    根据 H5 2D渲染引擎-Pixi.js 渲染器.舞台和精灵的创建,创建精灵(不做其他设置)并添加到渲染器后,精灵默认的位置是在渲染器的左上角(x=0,y=0),大小为原图片大小. 定位 可以通过改变 ...

  3. 风一样的HTML5 2D渲染引擎Pixi.js——真正意义的跨平台开发工具

    摘要:Pixi.js是一款超快的开源HTML5 2D渲染引擎,由于其使用了带有Canvas回调功能的WebGL,开发者不需要了解WebGL便可以感受到硬件加速的强大力量.Pixi.js作为JavaSc ...

  4. 【前端】浅谈浏览器内核:渲染引擎、JS引擎

    浏览器内核是什么? 简而言之,浏览器内核就是把我们编写的代码转换为页面的中控件. 虽然现在大家谈起浏览器内核时,多指代渲染引擎(Rendering engine 或 layout engineer). ...

  5. 浏览器内核-渲染引擎、js引擎

    一个完整的浏览器包含浏览器内核和浏览器的外壳(shell).浏览器核心--内核分成两部分:渲染引擎和js引擎.由于js引擎越来越独立,内核就倾向于只指渲染引擎. 1 浏览器组成结构 浏览器一般由七个模 ...

  6. 浏览器渲染引擎和JS引擎简介

    一.定义 浏览器内核分成两部分:渲染引擎和JS引擎. 由于JS引擎越来越独立,浏览器内核就倾向于单指渲染引擎. 渲染引擎:是一种对解析HTML.CSS等进行解析并将其显示在页面上的工具. JS引擎:读 ...

  7. webGL、webGPU、封装、渲染引擎 three.js、游戏引擎,定位是游戏开发,在前面的渲染引擎基础上,还提供了骨骼动画、物理引擎、AI、GUI 等功能,以及可视化编辑器来设计关卡,支撑大型游戏

    https://zhuanlan.zhihu.com/p/162878354 如何选择 WebGL 框架和引擎? ​ 知道得越多,不知道的就更多了 数据可视化Sugar-百度智能云 ​cloud.ba ...

  8. arcgis js 4 使用pixi.js 构建火焰粒子

    我们来用pixi.js 来构建火焰粒子 首先数据结构定义 let option = { renderer: { type: "simple", symbol: { startCol ...

  9. 前端渲染引擎doT.js解析

    背景 前端渲染有很多框架,而且形式和内容在不断发生变化.这些演变的背后是设计模式的变化,而归根到底是功能划分逻辑的演变:MVC->MVP->MVVM(忽略最早混在一起的写法,那不称为模式) ...

  10. HTML+CSS+JS实现 ❤️九宫格图片悬停遮罩层特效❤️

最新文章

  1. sklearn决策树模型机器学习参数解释很详细中文
  2. Java 8 - 收集器Collectors_分组groupingBy
  3. [ZZ88]送给即将毕业奔三的男人们的16条忠告
  4. NEO从源码分析看网络通信
  5. 日积月累-从细节做起
  6. 初级php工程师应该具备什么,一名合格的PHP工程师需要掌握的知识结构
  7. 如何更改mysql服务名_技术小百科 |【云小课】数据复制服务如何实现对象名映射...
  8. python 下载图片到内存卡_python - 获取图像大小而不将图像加载到内存中
  9. lane是什么意思_什么是Trunk?Trunk详解
  10. php 内部 邮件,php电子邮件形式内部服务器错误
  11. SQLServer:执行计划
  12. 4*4矩阵式键盘识别技术c语言程序,4×4矩阵式键盘识别技术
  13. 盘点14个因安全事故引咎辞职的高管领导
  14. DEDE网站安全设置防挂马教程
  15. python中、函数定义可以不包括以下一对圆括号_在python中,参数在函数定义的圆括号对内指定,用分号分割...
  16. 数据库规范设计说明书
  17. MATEBOOK E 2019 安装linux
  18. Android音乐播放器开发(2)—登录
  19. 我们该如何理解矩估计???
  20. 晚上11:45点 ,你进入睡眠状态了吗?

热门文章

  1. SO逆向入门实战教程三:V2-Sign
  2. 百度地图动态渲染windowinfo_【奇正游戏×史图馆】《兵法 战国篇》开发日志——地图制作(二)...
  3. Windows10环境下Poco库的编译
  4. 川普创财富第01讲:一种赢的态度
  5. 《转》用Ftype命令让病毒白白运行
  6. AMC数学竞赛报名时间、参赛对象、奖项等信息大全
  7. 基于MATLAB的DEM读取显示以及山顶点提取
  8. 获取时间差(类似微信朋友圈消息的时间显示)
  9. python中if的用法-讲解Python中if语句的嵌套用法
  10. docker -- 学习笔记