Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
particles [2019/03/22 08:22] – [Shader / Material] admin | particles [2020/11/06 13:51] – [Physics Particle Support] admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Using the ParticleSystem ====== | ====== Using the ParticleSystem ====== | ||
+ | |||
+ | {{:: | ||
Gorilla3D provides an integrated particle system for rendering complex and individual particle effects. | Gorilla3D provides an integrated particle system for rendering complex and individual particle effects. | ||
Line 7: | Line 9: | ||
Gorilla3D already supplies some of the most popular effects, like: fire, smoke, rain, snow, waterfall, eruption, explosion. | Gorilla3D already supplies some of the most popular effects, like: fire, smoke, rain, snow, waterfall, eruption, explosion. | ||
+ | {{:: | ||
It is possible to manipulate each particle by the so-called influencers. | It is possible to manipulate each particle by the so-called influencers. | ||
Line 20: | Line 23: | ||
* Endless or limited emmittance | * Endless or limited emmittance | ||
* Physically based particle collision detection with other scene objects (not with particles!) | * Physically based particle collision detection with other scene objects (not with particles!) | ||
+ | * Autosorting of particles depending on assigned camera | ||
===== Shader / Material ===== | ===== Shader / Material ===== | ||
Line 34: | Line 38: | ||
To allow extended particle functionality Gorilla3D changes the default values of some vertex attributes, because at the moment it is not possible to declare our own vertex attributes. | To allow extended particle functionality Gorilla3D changes the default values of some vertex attributes, because at the moment it is not possible to declare our own vertex attributes. | ||
+ | |||
+ | In the following table we show the attribute settings for each particle, when using a TGorillaParticleEmitter: | ||
^ Vertex-Attribute ^ Value ^ | ^ Vertex-Attribute ^ Value ^ | ||
- | | a_Position | particle | + | | a_Position | position | |
- | | a_Normal | particle | + | | a_Normal | velocity | |
- | | a_Color0 | current color of particle | + | | a_Color0 | current color| |
| a_TexCoord0 | current texture or texture atlas offset | | | a_TexCoord0 | current texture or texture atlas offset | | ||
| a_Binormal | X = size, Y = angle, Z = weight | | | a_Binormal | X = size, Y = angle, Z = weight | | ||
| a_Tangent | X = age, Y = life time, Z = delta time | | | a_Tangent | X = age, Y = life time, Z = delta time | | ||
+ | ===== Physics Particle Support ===== | ||
+ | |||
+ | {{:: | ||
===== Example ===== | ===== Example ===== | ||
Line 52: | Line 61: | ||
begin | begin | ||
LParticles := TGorillaFireParticleEmitter.Create(FGorilla); | LParticles := TGorillaFireParticleEmitter.Create(FGorilla); | ||
- | LParticles .Camera := FCamera; | + | |
+ | | ||
// a fire effect contains multiple parts: a front and back flame and smoke | // a fire effect contains multiple parts: a front and back flame and smoke | ||
Line 79: | Line 89: | ||
begin | begin | ||
LParticles := TGorillaSmokeParticleEmitter.Create(FGorilla); | LParticles := TGorillaSmokeParticleEmitter.Create(FGorilla); | ||
+ | LParticles.Parent := FGorilla; | ||
LParticles.Camera := FCamera; | LParticles.Camera := FCamera; | ||
Line 108: | Line 119: | ||
begin | begin | ||
LParticles := TGorillaEruptionParticleEmitter.Create(FGorilla); | LParticles := TGorillaEruptionParticleEmitter.Create(FGorilla); | ||
+ | LParticles.Parent := FGorilla; | ||
LParticles.Camera := FCamera; | LParticles.Camera := FCamera; | ||
Line 130: | Line 142: | ||
begin | begin | ||
LParticles := TGorillaRainParticleEmitter.Create(FGorilla); | LParticles := TGorillaRainParticleEmitter.Create(FGorilla); | ||
+ | LParticles.Parent := FGorilla; | ||
LParticles.Camera := FCamera; | LParticles.Camera := FCamera; | ||
end; | end; | ||
Line 147: | Line 160: | ||
begin | begin | ||
LParticles := TGorillaSnowParticleEmitter.Create(FGorilla); | LParticles := TGorillaSnowParticleEmitter.Create(FGorilla); | ||
+ | LParticles.Parent := FGorilla; | ||
LParticles.Camera := FCamera; | LParticles.Camera := FCamera; | ||
end; | end; | ||
Line 268: | Line 282: | ||
end; | end; | ||
</ | </ | ||
+ | |||
Next step: [[physics|Physics]] | Next step: [[physics|Physics]] |