Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The very first thing you can do is to start using some game engine which supports optimized particle system. I don't have a good overview of what's available for iOS, but there must be some free and open source engines. For example <a href="http://www.cocos2d-iphone.org/" rel="nofollow">Cocos2D</a> has particles.</p> <p>But if choose do that yourself, then normally reducing number of draw calls and state changes makes rendering faster. If you have different textures you can merge them into a <a href="http://blog.wolfire.com/2010/03/Using-texture-atlases" rel="nofollow">texture altas</a>. This would allow you to merge all the particles into one vertex buffer and render all of them at once. </p> <p>Your number (40 particles) seems very very low. Are you sure the particles are the bottleneck? Normally optimizing rendering performance is a very difficult and time consuming process. One needs to make many experiments, use different tools and try out various approaches before it's clear what the bottleneck is and how to make it faster. Problems could be of general nature and very much hardware specific. Something that works faster on one device is slower on another. </p> <p>Unless you do that for educational reasons, I would strongly advise to reuse existing solutions with man-years of work put into them to make them faster.</p> <p><strong>Update:</strong> Looking at your edit, I have to say, I'm struggling to offer any suggestions. Maybe the sprites are too big and you max out the fillrate. Or shader on them is too complex and it takes a long time to draw even a few of them.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload