Single surface VS CopyEntity - the big fight live

Blitz3D Forums/Blitz3D Programming/Single surface VS CopyEntity - the big fight live

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

There's also another thing involved in the concept of single surface particle systems vs. sprite particle systems.

In single surface particle systems, you never really have to call any functions beyond those needed to draw the polygons, in the case of sprite based particle systems you have to use Position/Move/Translate/RotateEntity (and such) functions in order to move the entity about. Now, this is the part that might get most people, but that's one of the really big hits on speed. Imagine calling those functions about 8000 times per frame- it's a real hit on the FPS. In Lotus R2 I removed the use of those functions where I could without writing hideously long math functions to get values, and thanks to that it runs very fast. Prior to removing those functions, it capped out at Lotus R1's previous particle 'max' (it's not really a max, it's just a way of describing this concept)- 2000 particles.

The graphics side of R2 is also completely optimized compared to R1. No more surface-per-emitter stuff, now everything is in, at minimum, zero surfaces per texture. Now, each texture can contain one or more tiles which are also particle textures, or it can be an animated particle texture wherein you can animate the particles over their lifespan.

So, it really can be worth the hassle of writing all the math and such, because in the end you can result in having quadruple the particles in existence and being updated (you can freeze emitters and their particles in Lotus R1 and R2, which means if you're far enough away from an emitter or it's in another world zone you can freeze it and it won't be updated at all, but the particles will still exist) at any time.