Hey all !
This is an as3 version of an haxe library I've been working on. Current version is 1.0.0-alpha.3 : I'm still working on it but the core classes should not change much now aside from new features
You can think of it as some kind of TileMap for Starling, primarily aimed at games. It can render a virtually unlimited amount of quads/images with only one draw call per 16383 quads. It comes with efficient multitexturing out of the box : you can add up to 16 textures (typically atlases) to a single MassiveDisplay instance.
It also comes with a pretty advanced particle system
Github : https://github.com/MatseFR/massive-starling-as3
For anyone interested the haxe version is here : https://github.com/MatseFR/massive-starling
and the original post on the OpenFL forum is here : https://community.openfl.org/t/lib-massive-high-performance-quad-rendering-and-texture-animation-for-starling-through-custom-displayobject/14440
(These demos are from the haxe version)
Benchmark https://matse.skwatt.com/haxe/starling/massive/demo/
This demo lets you test and compare Massive's performance versus classic Starling. It also lets you test the new MultiTextureStyle although it is worth noting that the one I use here is modified to handle up to 16 textures and has better performance (I opened a PR for this about a week ago).
about renderMode : the Float32Array option is specific to the haxe version and non-flash/air targets. For flash/air target it is replaced with DomainMemoryByteArray which has the best performance and is the default setting.
Vector renderMode is pretty fast too, and ByteArray is slow and should be avoided
about colorMode :
extended is the default, it stores color and alpha as 4 separate Number values and offers interesting effects when going with values > 1.0 or < 0.0
regular is well, regular. It should offer slightly better performance because of the reduced amount of vertex data
none will still display textures as they look when you open them in an image viewer but colorization and alpha will have no effect at all. This mode offers increased performance.
Having only one atlas selected turns off multitexturing. Multitexturing has a (relatively small) cost and will trigger GPU bottleneck more easily (= with a lesser amount of objects displayed)
Note that I ported this demo to as3 : it's available on Massive's github
MassiveHexGrid : https://matse.skwatt.com/haxe/starling/massive/hexgrid/
This one uses my hexagon lib, which I will make available for as3 as an SWC (and then I'll port this demo to AS3)
It shows how easy it is to use Massive to only render the visible portion of a huge grid. Also the grid wraps around on both X and Y axis
ParticleEditor (WIP) : https://matse.skwatt.com/haxe/starling/massive/particles/editor/
This is a work in progress : it can already import and export configurations but won't let you import your own textures for now.
It uses my ValEditor lib, which I will make available for as3 as an SWC (and then I'll port this demo to AS3)
I'm highly interested in feedback from people trying this lib : what is it missing, feature requests, bugs etc