24 #include <flw/flf/models/base/IEmiterPoint.h> 25 #include <flw/flc/extended/pipeline/Fence.h> 26 #include <flw/flc/extended/buffers/VertexBufferParticlesGPU.h> 41 GLfloat emitingSourceRate,
44 glm::vec3 acceleration,
45 glm::vec3 startVelocity,
46 glm::vec3 robustnessVelocity,
47 glm::vec3 startPosition,
48 glm::vec3 robustnessPosition,
52 GLenum blendingSource,
53 GLenum blendingDestination,
54 GLboolean depthTesting,
55 GLfloat alphaCutOffLevel = 0.0f);
60 void update(GLfloat timeElapsedSec)
override;
63 void drawFR(
ICamera &camera)
override;
64 void drawPBRP(
ICamera &camera)
override;
71 static const GLint mPingPongBuffers = 2;
73 GLuint mNoiseTextureHandle;
74 GLfloat mEmmisingSourceRate;
75 glm::vec3 mAcceleration;
76 glm::vec3 mStartVelocity;
77 glm::vec3 mRobustnessVelocity;
78 glm::vec3 mStartPosition;
79 glm::vec3 mRobustnessPosition;
80 glm::vec3 mCameraPosition;
81 GLfloat mTimeDeltaEmiter;
83 pu<flc::Fence> mFence;
87 GLint mULCTimeEmiter, mULCEmissionRateEmiter, mULCModelMatrixEmiter, mULCCameraPositionEmiter, mULCHowManyEmiter, mULCAccelerationEmiter, mULCStartVelocityEmiter, mULCStartPositionEmiter, mULCLifeTimeEmiter, mULCRobustnessVelocityEmiter, mULCRobustnessPositionEmiter, mULCNoiseSamplerEmiter;
89 GLint mULCModelMatrix, mULCViewProjectionMatrix, mULCCameraPosition, mULCTextureUnit, mULCTime, mULCAcceleration, mULCColor, mULCAlphaCutOff, mULCStartSize;
91 void initBuffers()
override;
93 void initPipeline()
override;
95 void initVBO()
override;
97 void initVAO()
override;
99 void initUniformsCache()
override;
103 void sort(glm::vec3 cameraPosition);
Encapsulates reloadable objects.
Definition: IReloadable.h:35
Drawable Entity which emits particles.
Definition: IEmiterPoint.h:40
Base for all renderers.
Definition: IRenderer.h:42
Single GLSL 2D Texture object.
Definition: Texture2D.h:36
Fillwave engine core.
Definition: Engine.h:85
Base for all Scene nodes.
Definition: Entity.h:48
Vertex buffer specialized with VertexParticleGPU data structure.
Definition: VertexBufferParticlesGPU.h:49
Single GLSL program object.
Definition: Program.h:37
Polynomial particle Emiter entirely computed on GPU. Can generate a particles with velocity...
Definition: EmiterPointGPU.h:38
Single draw item structure.
Definition: RenderItem.h:33
Stores camera view parameters.
Definition: ICamera.h:32