From 8f9022827c95d754c09cf44075385a3b69d10fcf Mon Sep 17 00:00:00 2001 From: minjaesong Date: Tue, 3 Jul 2018 22:17:34 +0900 Subject: [PATCH] removing branching on tiling shader, improving performance Now tga export needs extra care, but boy that 5 FPS improvement --- ...le must have black transparent tile, NOT white.txt | 1 + assets/mods/basegame/blocks/terrain.tga.gz | 4 ++-- assets/tiling.frag | 11 +++++------ .../terrarum/modulebasegame/gameactors/AVKey.kt | 4 ++++ work_files/graphics/terrain/terrain.psd.gz | 4 ++-- 5 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 assets/mods/basegame/blocks/Terrain - Air tile must have black transparent tile, NOT white.txt diff --git a/assets/mods/basegame/blocks/Terrain - Air tile must have black transparent tile, NOT white.txt b/assets/mods/basegame/blocks/Terrain - Air tile must have black transparent tile, NOT white.txt new file mode 100644 index 000000000..d12a7d694 --- /dev/null +++ b/assets/mods/basegame/blocks/Terrain - Air tile must have black transparent tile, NOT white.txt @@ -0,0 +1 @@ +Air tile (tile 0,0) must have colour of 0x00000000, NOT 0xFFFFFF00. You can modify the tga file directly to correct bad exporter behaviour. \ No newline at end of file diff --git a/assets/mods/basegame/blocks/terrain.tga.gz b/assets/mods/basegame/blocks/terrain.tga.gz index eb27800d5..22504b2d4 100644 --- a/assets/mods/basegame/blocks/terrain.tga.gz +++ b/assets/mods/basegame/blocks/terrain.tga.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:15ac4437fc478300464577b4975a11a013975350b5b95939452c96bfc6b299c6 -size 2693320 +oid sha256:f998457e17cb0a834e8cb838939e4e0b4ec31aafab7ec264c415d4e6e77e8daa +size 2693123 diff --git a/assets/tiling.frag b/assets/tiling.frag index 08fe5fbdd..b8887400c 100644 --- a/assets/tiling.frag +++ b/assets/tiling.frag @@ -23,14 +23,11 @@ uniform sampler2D backgroundTexture; uniform ivec2 tilesInAtlas = ivec2(256, 256); uniform ivec2 atlasTexSize = ivec2(4096, 4096); +ivec2 tileSizeInPx = atlasTexSize / tilesInAtlas; uniform vec4 colourFilter = vec4(1, 1, 1, 1); uniform ivec2 cameraTranslation = ivec2(0, 0); -uniform int tileSizeInPx = 16; - - -vec4 nocolour = vec4(0,0,0,0); ivec2 getTileXY(int tileNumber) { @@ -75,8 +72,10 @@ void main() { // TODO blend a breakage (0xrrggbb where 0xr0 -- upper 4 bits of int_red component) - if (tileXY.x == 0 && tileXY.y == 0) + // if statements considered harmful + // --definitely not Dijkstra + /*if (tileXY.x == 0 && tileXY.y == 0) gl_FragColor = nocolour; - else + else*/ gl_FragColor = colourFilter * texture2D(tilesAtlas, finalUVCoordForTile); } diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/AVKey.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/AVKey.kt index 98b0527ff..ee16ce2b8 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/AVKey.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/AVKey.kt @@ -108,4 +108,8 @@ object AVKey { const val HEALTH = "health" const val MAGIC = "magic" + + + const val __HISTORICAL_BORNTIME = "__borntime" // time_t + const val __HISTORICAL_DEADTIME = "__deadtime" // time_t } \ No newline at end of file diff --git a/work_files/graphics/terrain/terrain.psd.gz b/work_files/graphics/terrain/terrain.psd.gz index 9f8ef408f..cd617fff4 100644 --- a/work_files/graphics/terrain/terrain.psd.gz +++ b/work_files/graphics/terrain/terrain.psd.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e2f654b59d5fc27ccfa549bde9e259819307ad331101c52dc238c17c410525d2 -size 510387 +oid sha256:a2bd3eb3b413af8e7b657440831297801c464354df77f955446afad41033bcb4 +size 509697