From e6800effbc162f675da6df6c47479b8a7b4be6ae Mon Sep 17 00:00:00 2001 From: Ilion Beyst Date: Wed, 16 Nov 2022 14:19:38 +0100 Subject: [PATCH] diversify planet textures --- .../assets/res/planet_atlas.json | 44 +++++++++++++++ web/pw-visualizer/assets/res/planet_atlas.png | Bin 0 -> 67106 bytes web/pw-visualizer/src/assets.ts | 9 ++- web/pw-visualizer/src/index.ts | 52 ++++++++++++++---- 4 files changed, 89 insertions(+), 16 deletions(-) create mode 100644 web/pw-visualizer/assets/res/planet_atlas.json create mode 100644 web/pw-visualizer/assets/res/planet_atlas.png diff --git a/web/pw-visualizer/assets/res/planet_atlas.json b/web/pw-visualizer/assets/res/planet_atlas.json new file mode 100644 index 0000000..3c1523a --- /dev/null +++ b/web/pw-visualizer/assets/res/planet_atlas.json @@ -0,0 +1,44 @@ +[ + { + "name": "earth", + "x": 0, + "y": 0, + "w": 256, + "h": 256 + }, + { + "name": "jupiter", + "x": 256, + "y": 0, + "w": 256, + "h": 256 + }, + { + "name": "mars", + "x": 0, + "y": 256, + "w": 256, + "h": 256 + }, + { + "name": "nepture", + "x": 256, + "y": 256, + "w": 256, + "h": 256 + }, + { + "name": "uranus", + "x": 0, + "y": 512, + "w": 256, + "h": 256 + }, + { + "name": "venus", + "x": 256, + "y": 512, + "w": 256, + "h": 256 + } +] \ No newline at end of file diff --git a/web/pw-visualizer/assets/res/planet_atlas.png b/web/pw-visualizer/assets/res/planet_atlas.png new file mode 100644 index 0000000000000000000000000000000000000000..0172ba3e8036fed4d44c368f48997e9952de9c6c GIT binary patch literal 67106 zcmV(?K-a&CP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 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]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, 2246822507) ^ Math.imul(h2 ^ (h2>>>13), 3266489909); + h2 = Math.imul(h2 ^ (h2>>>16), 2246822507) ^ Math.imul(h1 ^ (h1>>>13), 3266489909); + return 4294967296 * (2097151 & h2) + (h1>>>0); +}; + + const ELEMENTS: any = {}; var CANVAS: any; var RESOLUTION: any; @@ -161,7 +181,7 @@ export class GameInstance { constructor( game: Game, - planets_textures: Texture[], + planet_atlas: Texture, ship_texture: Texture, robotoMsdfTexture: Texture, shaders: Dictionary @@ -200,7 +220,7 @@ export class GameInstance { // List of [(x, y, r)] for all planets this._create_voronoi(planets); - this._create_planets(planets, planets_textures); + this._create_planets(planets, planet_atlas); this.max_num_ships = 0; @@ -238,7 +258,7 @@ export class GameInstance { this.renderer.addRenderable(this.vor_builder.getRenderable(), LAYERS.vor); } - _create_planets(planets: Float32Array, planets_textures: Texture[]) { + _create_planets(planets: Float32Array, planet_atlas: Texture) { for (let i = 0; i < this.planet_count; i++) { { const transform = new UniformMatrix3fv([ @@ -258,11 +278,21 @@ export class GameInstance { -1, -1, 1, -1 ]); + + const textureData = planetAtlasJson[cyrb53(this.planet_names[i]) % planetAtlasJson.length]; + // apply half-pixel correction to prevent texture bleeding + // we should address the center of each texel, not the border + // https://gamedev.stackexchange.com/questions/46963/how-to-avoid-texture-bleeding-in-a-texture-atlas + const x0 = (textureData.x + 0.5) / planet_atlas.getWidth(); + const x1 = (textureData.x + textureData.w - 0.5) / planet_atlas.getWidth(); + const y0 = (textureData.y + 0.5) / planet_atlas.getHeight(); + const y1 = (textureData.y + textureData.h - 0.5) / planet_atlas.getHeight(); + const vb_tex = new VertexBuffer(gl, [ - 0, 0, - 1, 0, - 0, 1, - 1, 1]); + x0, y0, + x1, y0, + x0, y1, + x1, y1]); const layout_pos = new VertexBufferLayout(); // 2? @@ -280,7 +310,7 @@ export class GameInstance { u_trans_next: transform, }; - const renderable = new DefaultRenderable(ib, vao, this.masked_image_shader, [planets_textures[0]], uniforms); + const renderable = new DefaultRenderable(ib, vao, this.masked_image_shader, [planet_atlas], uniforms); this.renderer.addRenderable(renderable, LAYERS.planet); @@ -603,7 +633,7 @@ export async function set_instance(source: string): Promise { if (!texture_images || !shaders) { const image_promises = [ loadImage(assets.shipPng), - loadImage(assets.earthPng), + loadImage(assets.planetAtlasPng), loadImage(assets.robotoMsdfPng), ]; @@ -661,13 +691,13 @@ export async function set_instance(source: string): Promise { resizeCanvasToDisplaySize(CANVAS); const shipTexture = Texture.fromImage(GL, texture_images[0], "ship"); - const earthTexture = Texture.fromImage(GL, texture_images[1], "earth"); + const planetTexture = Texture.fromImage(GL, texture_images[1], "planetAtlas"); const robotoMsdfTexture = Texture.fromImage(GL, texture_images[2], "robotoMsdf"); game_instance = new GameInstance( Game.new(source), - [earthTexture], + planetTexture, shipTexture, robotoMsdfTexture, shaders