深入浅出spark粒子特效连接:https://www.cnblogs.com/lyggqm/p/9956344.html

group添加emitter的方式:

eimtter:

上图是spark源码中发射器emitter的框架

我们开始逐个分析:

1.NormalEmitter

An emitter that emits particles following a Zone normals. 一个向另外一个zone(区域)方向发射粒子的喷射器。

The Zone used to derive the direction of emission can either be the emitter's zone or another zone that can be set with setNormalZone(Zone*).
If the normal zone is NULL the emitter's zone is used.

这里大家看到zone,如果有不理解,我在本文最后有大致介绍,这里就当成一个固定区域就行了

tank是此发射器包含多少粒子,发射完就不再发射,-1是无限多。

flow是每秒发射多少粒子

foreMin和foreMax是发射力度范围,也就是粒子初速度大小

normalZone是发射的方向区域

总的来说,这个发射器是从一个区域,往另外一个区域发射粒子的喷射器!

一个例子:

我用一个圆柱形区域设置为生成区域,高处一个点为终点,

就形成了一个往指定区域方向移动的圆柱形

2.RandomEmitter

An emitter that emits in a random direction 随机方向发射粒子

一个例子:

用一个长方体作为出生位置,没有终点方向,形成了一个无序的长方体

3.SphericEmitter

An Emitter that emits particles in a portion of sphere.可调节角度的球形发射器

This Emitter can emit particles in a spheric way. To do that 2 angles and a direction Vector3D can be parametered :

  • The direction Vector3D defines the direction of the emitter.
  • The angles defines the area in between which wil be emitted the particles velocities.

direction 球的0角度朝向

angleA和angleB 是从角度A到角度B之间都是喷射方向

一个例子:

建了一个喷射角度是0到180的半球形,喷射方向是可调节的球形角度

4.StaticEmitter

An Emitter that emits particles with no initial velocity.一个傻瓜喷射器

一个例子:

没有方向,没有力度,只有喷出多少

5.StaightEmitter

An Emitter that emits in a given direction.一个带方向的喷色器

一个例子:

就是往一个某一个方向直喷,可以调节喷射力度

关于zone:

这就各种形状的区域。

===============================================================================================================================================

以下为我自己代码设计:

SVRESPARK_EMITTER_STRUCT结构体:

变量名

类型

说明

iID

int

strZone

SVRESPARK_ZONE_STRUCT

eType

VRESPARK_EMITTER

种类

iFlow

int

流量

iTank

int

包含粒子总数

v3Direction

SVREVector3

方向

fForceMin

double

发射力度最小值

fForceMax

double

发射力度最大值

fParamMin

double

fParamMax

double

fParam

double

bParam

int

strNorZone

SVRESPARK_ZONE_STRUCT

[原][粒子特效][spark]发射器emitter的更多相关文章

  1. [原][粒子特效][spark]事件action

    深入浅出spark粒子特效连接:https://www.cnblogs.com/lyggqm/p/9956344.html group调用action的地方: 可以看到使用action的可以是出生一次 ...

  2. [原][粒子特效][spark]粒子系统system、主节点group、渲染器render

    深入浅出spark粒子特效连接:https://www.cnblogs.com/lyggqm/p/9956344.html system: A class defining a complete sy ...

  3. [原][粒子特效][spark]调节器modifier

    深入浅出spark粒子特效连接:https://www.cnblogs.com/lyggqm/p/9956344.html group添加modifier的方式: modifier An abstra ...

  4. [原][粒子特效][spark]插值器interpolator

    深入浅出spark粒子特效连接:https://www.cnblogs.com/lyggqm/p/9956344.html 插值器是体现粒子生命周期变化的功能 group使用到插值器的方式: 可以看到 ...

  5. [原][粒子特效][spark]深入浅出osgSpark

    背景: 目前我使用的spark粒子特效库是2.0 这个库好像是原来鬼火引擎的一部分,需要从github上找 现在我要将其使用到我自己开发的基于osgearth开的三维地图引擎中 步骤: 1.编译spa ...

  6. [原][osg][粒子特效]spark粒子特效生成流程

  7. [原][unreal][UE][spark]分析unreal engine 虚幻引擎的粒子编辑器:Cascade

    参考:https://www.raywenderlich.com/270-unreal-engine-4-particle-systems-tutorial (使用了一个飞机射击游戏的粒子来展示,全英 ...

  8. 【Unity 3D】学习笔记四十二:粒子特效

    粒子特效 粒子特效的原理是将若干粒子无规则的组合在一起.来模拟火焰,爆炸.水滴,雾气等效果. 要使用粒子特效首先要创建,在hierarchy视图中点击create--particle system就可 ...

  9. Qt移动应用开发(四):应用粒子特效

    Qt移动应用开发(四):应用粒子特效 上一篇文章介绍了Qt Quick是如何对帧动画进行支持的.帧动画的实现离不开状态机.而状态机.动画和状态切换(transitions)则是Qt框架的核心内容.也就 ...

随机推荐

  1. word2vec原理(一) CBOW与Skip-Gram模型基础——转载自刘建平Pinard

    转载来源:http://www.cnblogs.com/pinard/p/7160330.html word2vec是google在2013年推出的一个NLP工具,它的特点是将所有的词向量化,这样词与 ...

  2. pyenv安装

    petalinux-config出错 以为是pyenv的问题,后发现不是,把pyenv的安装卸载总结如下: 折腾了半天发觉是安装了pyenv导致的python版本混乱,卸载后问题解决了.(卸载过程见h ...

  3. Docker学习笔记之运行和管理容器

    0x00 概述 容器是基于容器技术所建立和运行的轻量级应用运行环境,它是 Docker 封装和管理应用程序或微服务的“集装箱”.在 Docker 中,容器算是最核心的部分了,掌握容器的操作也是 Doc ...

  4. socket - option编程:SO_REUSEADDR

    网友vmstat多次提出了这个问题:SO_REUSEADDR有什么用处和怎么使用.而且很多网友在编写网络程序时也会遇到这个问题.所以特意写了这么一篇文章,希望能够解答一些人的疑难. 其实这个问题在Ri ...

  5. The POM for XXX is invalid, transitive dependencies (if any) will not be available解决方案

    今天,某个开发的环境在编译的时候提示警告The POM for XXX is invalid, transitive dependencies (if any) will not be availab ...

  6. JAVA的内存模型及结构

    所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢? Java内存模型 Java内存模型在JVM ...

  7. 关于A left join B,A是否一定是主表?

    一般情况,我们作左连接 select * from A left join B  on A.id=B.a_id;一定认为A就是主表,其实还有另外的情况,我们若将sql改写成 select * from ...

  8. 神秘的.user.ini文件

    原文链接:https://segmentfault.com/a/1190000011552335

  9. ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98) [30-Jan-2018 16:12:27] ERROR: FPM initialization failed解决方法

    1.php启动之后发现访问nginx出现502错误,检查nginx.conf发现指定的php socket不存在 2.解决方法nginx修改陈这样,直接把绿色部门的socket写成本地地址+端口就可以 ...

  10. Xcode project 设置相关

    FauxPas 这是一款Mac平台的用于检查Xcode项目的辅助工具 ,可以帮助我们找出常见的错误.隐藏的bug.不良实践以及可维护性问题和风格问题. 一, $(SRCROOT)  :当前工程所在的目 ...