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:16] – [Features] 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 30: | Line 34: | ||
Of course you can write your own shader if those features do not suit your needs. | Of course you can write your own shader if those features do not suit your needs. | ||
+ | |||
+ | ===== Shader 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 ^ | ||
+ | | a_Position | position | | ||
+ | | a_Normal | velocity | | ||
+ | | a_Color0 | current color| | ||
+ | | a_TexCoord0 | current texture or texture atlas offset | | ||
+ | | a_Binormal | X = size, Y = angle, Z = weight | | ||
+ | | a_Tangent | X = age, Y = life time, Z = delta time | | ||
+ | ===== Physics Particle Support ===== | ||
+ | |||
+ | {{:: | ||
===== Example ===== | ===== Example ===== | ||
Line 40: | 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 67: | Line 89: | ||
begin | begin | ||
LParticles := TGorillaSmokeParticleEmitter.Create(FGorilla); | LParticles := TGorillaSmokeParticleEmitter.Create(FGorilla); | ||
+ | LParticles.Parent := FGorilla; | ||
LParticles.Camera := FCamera; | LParticles.Camera := FCamera; | ||
Line 96: | Line 119: | ||
begin | begin | ||
LParticles := TGorillaEruptionParticleEmitter.Create(FGorilla); | LParticles := TGorillaEruptionParticleEmitter.Create(FGorilla); | ||
+ | LParticles.Parent := FGorilla; | ||
LParticles.Camera := FCamera; | LParticles.Camera := FCamera; | ||
Line 118: | Line 142: | ||
begin | begin | ||
LParticles := TGorillaRainParticleEmitter.Create(FGorilla); | LParticles := TGorillaRainParticleEmitter.Create(FGorilla); | ||
+ | LParticles.Parent := FGorilla; | ||
LParticles.Camera := FCamera; | LParticles.Camera := FCamera; | ||
end; | end; | ||
Line 135: | Line 160: | ||
begin | begin | ||
LParticles := TGorillaSnowParticleEmitter.Create(FGorilla); | LParticles := TGorillaSnowParticleEmitter.Create(FGorilla); | ||
+ | LParticles.Parent := FGorilla; | ||
LParticles.Camera := FCamera; | LParticles.Camera := FCamera; | ||
end; | end; | ||
Line 256: | Line 282: | ||
end; | end; | ||
</ | </ | ||
+ | |||
Next step: [[physics|Physics]] | Next step: [[physics|Physics]] |