mirror of
https://github.com/mkxp-z/mkxp-z.git
synced 2025-04-21 21:52:04 +02:00
![]() Previously, we would just stuff the entire tilemap vertex data four times into the buffers, with only the autotile vertices offset according to the animation frame. This meant we could prepare the buffers once, and then just bind a different offset for each animation frame without any shader changes, but it also lead to a huge amount of data being duplicated (and blowing up the buffer sizes). The new method only requires one buffer, and instead animates by recognizing vertices belonging to autotiles in a custom vertex shader, which offsets them on the fly according to the animation index. With giant tilemaps, this method would turn out to be a little less efficient, but considering the Tilemap is planned to be rewritten to only hold the range of tiles visible on the screen in its buffers, the on the fly offsetting will become neglient, while at the same time the amount of data we have to send to the GPU everytime the tilemap is updated is greatly reduced; so a net win in the end. |
||
---|---|---|
.. | ||
bitmapBlit.frag | ||
blur.frag | ||
blurH.vert | ||
blurV.vert | ||
flashMap.frag | ||
hue.frag | ||
plane.frag | ||
simple.frag | ||
simple.vert | ||
simpleAlpha.frag | ||
simpleColor.frag | ||
simpleColor.vert | ||
simpleMatrix.vert | ||
sprite.frag | ||
sprite.vert | ||
tilemap.vert | ||
trans.frag | ||
transSimple.frag |