QML官方教程——Using the Qt Quick Particle System

附网址:http://qt-project.org/doc/qt-5/qtquick-effects-particles.html

Using the Qt Quick Particle System—— 使用Qt Quick粒子系统

所有粒子系统的类型都可以在QtQuick.Particles模块文档中找到。

注意想要使用粒子模块中的类型,你需要使用下面这个代码进行引入:

import QtQuick.Particles 2.0

·

The ParticleSystem

粒子系统包含4个主要的QML类型:ParticleSystem,Painters,Emitters,和Affectors。

ParticleSystem类型需要与所有其他类型一起工作,并管理共享的时间线。Painters(绘制器)、Emitters(发射器)、Affectors(影响因子)必须在同一个ParticleSystem中相互作用。

你可能拥有多个ParticleSystems来实现复杂的效果,因此你应该将能够相互作用的类型放在一个ParticleSystem当中,或者当这些类型数量较少的时候只使用一个ParticleSystem。

Logical Particles —— 逻辑粒子

所有的粒子系统类型均基于“逻辑粒子”。每个粒子在粒子系统中都拥有一个逻辑表示形式,它决定了这些类型应该如何起作用。并不是每个逻辑粒子都需要被可视化,而某些逻辑粒子可以在屏幕上产生多颗可视化的粒子。

Particle Groups —— 粒子组

每个逻辑粒子都是粒子组的一个成员,且每个粒子都属于一个组。如果逻辑粒子所属群没被特别指明,它将被归于名为“”(空字符)的群。使用群组有两个用意,为了控制粒子,因为它们可以有随机的状态转换。

使用群组控制粒子的好处在于你不用使用任何粒子系统的类型来访问一个单独的粒子。群里的所有类型都像一个整体一样工作,因此任何需要与其他粒子表现不同(除了通常的随机参数变化)的粒子都应该被放在不同的粒子组中。

粒子也可以动态地更换组,并且粒子轨迹不会因此发生改变,不过这可以通过不同PatriclePainter或Affectors来实现。粒子也可以通过一个Affector改变其group,或者在ParticleGroup类型中定义随机的状态转换。

一般来讲,如果群组需要随机状态转换,它们可以仅仅定义在一个ParticleGroup中。否则,将有足够的群组被定义,使用particle/particles属性值作为组名。

Emitters —— 发送器

Emitters发送逻辑粒子到系统中。这些粒子有轨迹和寿命,但没有可视化。这些粒子从Emitter中定义的坐标位置发送出来。

TrailEmitters是一个特别的类型,其发射的粒子基于其他粒子的坐标。任何处在TrailEmitter范围内的下述的逻辑粒子都会引起TrailEmitter的发射,就像在那有一个与TrailEmitter属性相同的Emitter存在一样。

ParticlePainters —— 粒子绘制器

绘制器是一些用来可视化逻辑粒子的类型。对于分配给它的任意群组的粒子,在其定义的发射范围内(或者范围之外,如果你没有定义clip属性为真的话),粒子的可视化效果将依赖于这个ParticlePainter类型的定义。ParticlePainters基类不会绘制任何东西,ImageParticle会在粒子坐标上渲染一个图像,CustomParticle允许你基于顶点数据,使用自己的着色器来渲染粒子。ItemParticle允许你对任意的QML代理类型进行渲染。ModelParticle也是类似的,但它在代理中的坐标模型数据以类似视图类型中的方式进行处理。

既然ParticlePainter是用来在屏幕上绘制粒子的QML类型,那么对于其叠放层次我们应该设置它的Z值。

Stochastic Parameters —— 随机参数

粒子系统的随机行为得益于它多个用于产生随机参数的属性。如果你的这些参数不需要任何的随机性,那么你就不需要定义任何带有"variation"的属性。

Directions —— 方向

我们可以使用角度和强度来定义方向,或是采用x和y参数。不过呢,我们也可以对这几个参数采用随机参数,这样随机的x,y参数将定义一个矩形区域,而随机的角度将定义一个扇形。

Shapes —— 形状

粒子系统包含多个用来代表形状的类型。这些类型并不是用来可视化这个形状,而是用来产生在这个形状内的一系列随机点。如果你希望产生一个没有随机性的点,可以将这个形状的高度和宽度都设置为0(默认值)。否则你使用这些shape类型来指定一个区域,然后可以对这个区域中的随机点做你想要的操作。

QML官方教程——Using the Qt Quick Particle System,布布扣,bubuko.com

时间: 2024-10-29 19:07:39

QML官方教程——Using the Qt Quick Particle System的相关文章

Qt官方教程翻译——Using Qt Quick Designer

附网址:http://qt-project.org/doc/qtcreator-3.1/creator-using-qt-quick-designer.html Using Qt Quick Designer 你可以在Qt Quick Designer可视化编辑器或者代码编辑器中编辑.qml文件. 在工程中双击一个.qml文件可以在代码编辑器中打开它,然后选择设计模式在可视化编辑器中打开它. 使用可视化编辑窗格来管理你的工程: 导航面板(1):以树结构形式显示当前QML文件中的各个项目. 库面板

QML官方教程——Qt Quick Layouts Overview

附网址:http://qt-project.org/doc/qt-5/qtquicklayouts-overview.html Qt Quick Layouts Overview -- Qt Quick Layouts概述 Qt Quick Layouts是用来对用户界面中的组件进行布局的一套组件.由于Qt Quick Layouts会根据实际情况动态调整其内部组件的尺寸,因此它非常适合被用在尺寸可变的用户界面中. Getting Started 在.qml文件里使用如下声明将其引入到你的应用程

Qt5官方demo解析集10——Qt Quick Particles Examples - Emitters

本系列所有文章可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 前段时间去听了Qt在北京的开发者大会,感觉QML是大势所趋,所以回来后想好好补补QML方面的东西.无奈无论是书籍还是网络上,这方面的教材都太少了. 霍亚飞的<Qt Creator快速入门>第二版中做了一些介绍,但也只是基本的元素,布局,动画等.QML绚丽的粒子特效,传感器,多媒体模块,WebView,GPS,蓝牙等等...都没有提及. 所以这段时间也

Qt5官方demo分析集11——Qt Quick Particles Examples - Affectors

在这个系列中的所有文章都可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文Qt5官方demo解析集10--Qt Quick Particles Examples - Emitters Affectors是Qt官方粒子系统demo中的第二个例程,它是在Emitters上的进一步扩展.我们将看到.通过使用Affectors,我们可以创造更加灵活的粒子显示以及交互行为. 首先还是看下介绍:This is a col

Qt5官方demo解析集12——Qt Quick Particles Examples - CustomParticles

本系列所有文章可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文Qt5官方demo解析集11--Qt Quick Particles Examples - Affectors 使用Emitter和Affectors强大的功能,我们已经可以构造出丰富多彩的粒子特效,但当这些功能还不能满足我们的需要时,我们可以转而采用CustomParticle取代ImageParticle,在CustomParticle中我们

Qt5官方demo解析集11——Qt Quick Particles Examples - Affectors

本系列所有文章可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文Qt5官方demo解析集10--Qt Quick Particles Examples - Emitters Affectors是Qt官方粒子系统demo中的第二个例程,它是在Emitters上的进一步扩展.我们将看到,通过使用Affectors,我们能够创造更加灵活的粒子显示以及交互行为. 首先还是看下介绍:This is a collecti

Qt5官方demo解析集33——Qt Quick Examples - Window and Screen

本系列所有文章可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文Qt5官方demo解析集32--Qt Quick Examples - Threading 来到我们Qt Quick Examples的第二个例子了,之所以挑这个demo,主要是我们使用Qt开发界面(尤其是跨平台界面)时,本地屏幕信息与窗口调用是不可避免的课题. 这个例子便向我们展示了在QML中获取本地屏幕信息的方法. 项目树如图,其中share

Qt5官方demo解析集13——Qt Quick Particles Examples - Image Particles

本系列全部文章能够在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文 Qt5官方demo解析集12--Qt Quick Particles Examples - CustomParticles 先唠下嗑,在上文CustomParticles中我们接触了强大的ShaderEffect,笔者对其产生了极大的兴趣,于是去找了找有没有很多其它相关的例程,于是就发现了一个QML Video Shader Effects E

Qt5官方demo解析集14——Qt Quick Particles Examples - System

本系列所有文章可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文Qt5官方demo解析集13--Qt Quick Particles Examples - Image Particles 一转眼就到了我们粒子系列的最后一个demo了,既然是System,第一个小例子就给我们介绍了"模拟"一个粒子系统的方式,接着又向我们介绍了running属性的应用,然后是粒子群组等十分实用的技术. 来看看我们熟悉的