I MADE A GRID USING WGSL
This commit is contained in:
parent
5adc76505d
commit
f43cf6728b
8 changed files with 264 additions and 163 deletions
34
assets/shaders/grid.wgsl
Normal file
34
assets/shaders/grid.wgsl
Normal 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);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue