I MADE A GRID USING WGSL

This commit is contained in:
RustyStriker 2022-08-24 19:37:07 +03:00
parent 5adc76505d
commit f43cf6728b
8 changed files with 264 additions and 163 deletions

34
assets/shaders/grid.wgsl Normal file
View file

@ -0,0 +1,34 @@
@group(1) @binding(0)
var<uniform> grid_width: f32;
@group(1) @binding(1)
var<uniform> grid_size: vec2<f32>;
@group(1) @binding(2)
var<uniform> visible: u32;
let grid_color: vec4<f32> = vec4<f32>(1.0, 1.0, 1.0, 0.3);
let x_color: vec4<f32> = vec4<f32>(1.0, 0.0, 0.0, 1.0);
let y_color :vec4<f32> = vec4<f32>(0.0, 1.0, 0.0, 1.0);
@fragment
fn fragment(
@builtin(position) position: vec4<f32>,
#import bevy_sprite::mesh2d_vertex_output
) -> @location(0) vec4<f32> {
if abs(world_position.y) < grid_width && abs(world_position.x) < grid_width {
return grid_color;
}
else if abs(world_position.y) < grid_width {
return x_color;
}
else if abs(world_position.x) < grid_width {
return y_color;
}
else if visible == u32(0) {
return vec4<f32>(0.0, 0.0, 0.0, 0.0);
}
else if abs(world_position.x) % grid_size.x <= grid_width || abs(world_position.y) % grid_size.y <= grid_width {
return grid_color;
}
else {
return vec4<f32>(0.0, 0.0, 0.0, 0.0);
}
}