playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
3 lines (2 loc) • 1.18 kB
TypeScript
declare const _default: "\nvarying vUv0: vec2f;\n\nvar<storage, read> rasterizeTileList: array<u32>;\n\nuniform numTilesX: u32;\nuniform screenWidth: f32;\nuniform screenHeight: f32;\n\n@vertex\nfn vertexMain(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n\n let quadIdx = pcVertexIndex / 6u;\n let cornerIdx = pcVertexIndex % 6u;\n\n let tileIdx = rasterizeTileList[quadIdx];\n let tileX = tileIdx % uniform.numTilesX;\n let tileY = tileIdx / uniform.numTilesX;\n\n let corners = array<vec2f, 6>(\n vec2f(0.0, 0.0), vec2f(1.0, 0.0), vec2f(1.0, 1.0),\n vec2f(0.0, 0.0), vec2f(1.0, 1.0), vec2f(0.0, 1.0)\n );\n let corner = corners[cornerIdx];\n\n let x0 = f32(tileX * 16u);\n let y0 = f32(tileY * 16u);\n let pixelX = x0 + corner.x * 16.0;\n let pixelY = y0 + corner.y * 16.0;\n\n output.position = vec4f(\n pixelX / uniform.screenWidth * 2.0 - 1.0,\n pixelY / uniform.screenHeight * 2.0 - 1.0,\n 0.5, 1.0\n );\n\n output.vUv0 = vec2f(pixelX / uniform.screenWidth,\n pixelY / uniform.screenHeight);\n return output;\n}\n";
export default _default;