[原][osg][粒子特效]spark粒子特效生成流程(自定义类型说明)
enum DLL_SAMPLE_API SPARKTrackType { SPARK_TRACK_FOLLOW = 0, //!< 粒子发射出的粒子也会随着节点移动 SPARK_TRACK_STANDALONE = 1, //!< 粒子发射出的粒子不跟随节点移动 SPARK_TRACK_MAX }; enum DLL_SAMPLE_API SPARKState { SPARK_PREPARE = 0, SPARK_STOP = 1, //!< 粒子处于关闭状态 SPARK_START = 2, //!< 粒子处于开启状态 SPARK_REBUILD = 3, //!< 粒子即将重启 SPARK_STATE_MAX }; enum DLL_SAMPLE_API SPARKDataType { //这里全是控制系数,不是真实的值 SPARK_DATATYPE_SCALE = 0, //FLOAT 缩放系数 SPARK_DATATYPE_LIFETIME = 1, //FLOAT 生命时间 SPARK_DATATYPE_VELOCITY = 2, //FLOAT 初速度 SPARK_DATATYPE_MAX }; enum DLL_SAMPLE_API SPARK_MODIFIER { SPARKMODIFIER_GRAVITY = 0, SPARKMODIFIER_FRICTION = 1, SPARKMODIFIER_COLLIDER = 2, //SPARKMODIFIER_ROTATOR = 3, SPARKMODIFIER_EMITTERATTACHER = 3, SPARKMODIFIER_POINTMASS = 4, SPARKMODIFIER_RANDOMFORCE = 5, SPARKMODIFIER_VORTEX = 6, SPARKMODIFIER_ZONE_DOSTROY = 7, SPARKMODIFIER_ZONE_LINERFORCE = 8, SPARKMODIFIER_ZONE_OBSTACLE = 9, SPARKMODIFIER_MAX }; enum DLL_SAMPLE_API SPARK_EMITTER { SPARK_EMITTER_NORMAL =0, SPARK_EMITTER_RANDOM =1, SPARK_EMITTER_SPHERIC =2,//球面,常用 SPARK_EMITTER_STATIC =3, SPARK_EMITTER_STRAIGHT =4,//直喷 SPARK_EMITTER_MAX }; enum DLL_SAMPLE_API SPARK_INTERPOLATOR { SPARK_INTERPOLATOR_COLOR = 0, SPARK_INTERPOLATOR_SCALE =1, SPARK_INTERPOLATOR_TEXTUREINDEX =2, SPARK_INTERPOLATOR_ROTATESPEED =3, SPARK_INTERPOLATOR_ANGLE =4, SPARK_INTERPOLATOR_MASS =5, SPARK_INTERPOLATOR_MAX }; enum DLL_SAMPLE_API SPARK_INTERPOLATOR_MODE { SPARK_INTERPOLATOR_MODE_DefaultInitializer =0,//固定值 SPARK_INTERPOLATOR_MODE_GraphInterpolator =1,//不同时间片,按照时间片使用vector中的数据 SPARK_INTERPOLATOR_MODE_RandomInitializer =2,//随机一个固定插值 SPARK_INTERPOLATOR_MODE_RandomInterpolator =3,//初随机值变化到末随机值 SPARK_INTERPOLATOR_MODE_SimpleInterpolator =4,//初固定值变化到末固定值 SPARK_INTERPOLATOR_MODE_MAX }; enum DLL_SAMPLE_API SPARK_ZONE { SPARK_ZONE_BOX =0, SPARK_ZONE_CYLINDER =1, SPARK_ZONE_PLANE =2, SPARK_ZONE_POINT =3, SPARK_ZONE_RING =4, SPARK_ZONE_SPHERE =5, SPARK_ZONE_MAX }; enum DLL_SAMPLE_API SPARK_ZONETEST { SPARK_ZONETEST_INSIDE = 0, SPARK_ZONETEST_OUTSIDE = 1, SPARK_ZONETEST_INTERSECT =2,//横穿 SPARK_ZONETEST_ENTER =3,//进入 SPARK_ZONETEST_LEAVE =4,//离开 SPARK_ZONETEST_ALWAYS = 5,// SPARK_ZONETEST_MAX }; enum DLL_SAMPLE_API SPARK_RENDER { SPARK_RENDER_POINT = 0, SPARK_RENDER_QUAD = 1, SPARK_RENDER_LINE = 2, SPARK_RENDER_LINETRAIL = 3, SPARK_RENDER_MAX }; enum DLL_SAMPLE_API SPARK_TEXTURE_PIXELFORMAT { SPARK_TEXTURE_PIXELFORMAT_ALPHA = 0, SPARK_TEXTURE_PIXELFORMAT_RGB = 1, SPARK_TEXTURE_PIXELFORMAT_RGBA = 2, SPARK_TEXTURE_PIXELFORMAT_RED = 3, SPARK_TEXTURE_PIXELFORMAT_GREEN = 4, SPARK_TEXTURE_PIXELFORMAT_BLUE = 5, SPARK_TEXTURE_PIXELFORMAT_MAX }; enum DLL_SAMPLE_API SPARK_RENDER_BlendMode { SPARK_BLEND_MODE_ALPHA = 0, SPARK_BLEND_MODE_ADD = 1, SPARK_BLEND_MODE_MAX }; enum DLL_SAMPLE_API SPARK_RENDER_TextureMode { SPARK_TEXTURE_MODE_2D = 0, /**< Constant telling a 2D texture is used */ SPARK_TEXTURE_MODE_3D = 1, /**< Constant telling a 3D texture is used */ SPARK_TEXTURE_MODE_MAX }; enum DLL_SAMPLE_API SPARK_RENDER_Orientation { SPARK_ORIENTATION_CAMERA_PLANE = 0, //粒子朝向相机平面(最常见的) SPARK_ORIENTATION_CAMERA_POINT = 1, //粒子朝向相机点(更好的效果,但更浪费效率) SPARK_ORIENTATION_DIRECTION = 2, //粒子是朝向它们的方向的功能,并试图看向相机 SPARK_ORIENTATION_AROUND_AXIS = 3, //粒子只能围绕轴旋转并尝试查看相机 SPARK_ORIENTATION_TOWARDS_POINT = 4, //粒子朝向宇宙中的一个点 SPARK_ORIENTATION_FIXED_ORIENTATION = 5, //粒子在宇宙中具有固定的方向 SPARK_ORIENTATION_MAX };