compute_mesh.wgsl
Constants
const
vertices:
AbstractFloat
=
array(
// xyz, normal.xyz, uv.xy
// Front
min.x, min.y, max.z, 0.0, 0.0, 1.0, 0.0, 0.0,
max.x, min.y, max.z, 0.0, 0.0, 1.0, 1.0, 0.0,
max.x, max.y, max.z, 0.0, 0.0, 1.0, 1.0, 1.0,
min.x, max.y, max.z, 0.0, 0.0, 1.0, 0.0, 1.0,
// Back
min.x, max.y, min.z, 0.0, 0.0, -1.0, 1.0, 0.0,
max.x, max.y, min.z, 0.0, 0.0, -1.0, 0.0, 0.0,
max.x, min.y, min.z, 0.0, 0.0, -1.0, 0.0, 1.0,
min.x, min.y, min.z, 0.0, 0.0, -1.0, 1.0, 1.0,
// Right
max.x, min.y, min.z, 1.0, 0.0, 0.0, 0.0, 0.0,
max.x, max.y, min.z, 1.0, 0.0, 0.0, 1.0, 0.0,
max.x, max.y, max.z, 1.0, 0.0, 0.0, 1.0, 1.0,
max.x, min.y, max.z, 1.0, 0.0, 0.0, 0.0, 1.0,
// Left
min.x, min.y, max.z, -1.0, 0.0, 0.0, 1.0, 0.0,
min.x, max.y, max.z, -1.0, 0.0, 0.0, 0.0, 0.0,
min.x, max.y, min.z, -1.0, 0.0, 0.0, 0.0, 1.0,
min.x, min.y, min.z, -1.0, 0.0, 0.0, 1.0, 1.0,
// Top
max.x, max.y, min.z, 0.0, 1.0, 0.0, 1.0, 0.0,
min.x, max.y, min.z, 0.0, 1.0, 0.0, 0.0, 0.0,
min.x, max.y, max.z, 0.0, 1.0, 0.0, 0.0, 1.0,
max.x, max.y, max.z, 0.0, 1.0, 0.0, 1.0, 1.0,
// Bottom
max.x, min.y, max.z, 0.0, -1.0, 0.0, 0.0, 0.0,
min.x, min.y, max.z, 0.0, -1.0, 0.0, 1.0, 0.0,
min.x, min.y, min.z, 0.0, -1.0, 0.0, 1.0, 1.0,
max.x, min.y, min.z, 0.0, -1.0, 0.0, 0.0, 1.0
)
const
indices:
AbstractInt
=
array(
0, 1, 2, 2, 3, 0, // front
4, 5, 6, 6, 7, 4, // back
8, 9, 10, 10, 11, 8, // right
12, 13, 14, 14, 15, 12, // left
16, 17, 18, 18, 19, 16, // top
20, 21, 22, 22, 23, 20, // bottom
)
Bindings
Structures
Functions
@compute
Runs custom parallel code on the GPU, not limited to graphics
@workgroup_size(1)
Defines the size of a thread group. One to three numbers: width (x), height (y), and depth (z). Missing values default to 1
vertex_startis the starting offset of the mesh data in the vertex_data storage bufferindex_startis the starting offset of the index data in the index_data storage buffer