Shader Explorer
Advanced search tips: use spaces to require multiple terms (AND), | for alternatives (OR), wrap phrases in quotes (="a b"), =term for exact match, 'term to include, !term to exclude, ^term to match prefix, !^term to exclude prefix, .ext$ to match suffix, and !.ext$ to exclude suffix.

vfx_update.wgsl

Bindings

sim_params

#
@group(0)
@binding(0)
var<uniform> sim_params: SimParams

draw_indirect_buffer

#
@group(0)
@binding(1)
var<storage, read_write> draw_indirect_buffer: array<DrawIndexedIndirectArgs>

particle_buffer

#
@group(1)
@binding(0)
var<storage, read_write> particle_buffer: ParticleBuffer

indirect_buffer

#
@group(1)
@binding(1)
var<storage, read_write> indirect_buffer: IndirectBuffer

parent_particle_buffer

#

Shader defs requirments:

🟢 READ_PARENT_PARTICLE

@group(1)
@binding(2)
var<storage, read> parent_particle_buffer: ParentParticleBuffer

spawner

#
@group(2)
@binding(0)
var<storage, read> spawner: Spawner

effect_metadata

#
@group(3)
@binding(0)
var<storage, read_write> effect_metadata: EffectMetadata

Structures

Particle

#
struct Particle {
particles: array<Particle> ,
}

ParentParticle

#
struct ParentParticle {
particles: array<ParentParticle> , 🟢 READ_PARENT_PARTICLE
}

Functions

main

#
@compute
Runs custom parallel code on the GPU, not limited to graphics
@workgroup_size(64)
Defines the size of a thread group. One to three numbers: width (x), height (y), and depth (z). Missing values default to 1
fn main (
@builtin(global_invocation_id)
global_invocation_id: vec3<u32>
)