Rust gpu
This commit is contained in:
30
shaders_old/lighting.wgsl
Normal file
30
shaders_old/lighting.wgsl
Normal file
@ -0,0 +1,30 @@
|
||||
|
||||
@vertex
|
||||
fn vertex_main(@builtin(vertex_index) vertex_id: u32) -> @builtin(position) vec4<f32>
|
||||
{
|
||||
|
||||
let vertices = array<vec2<f32>, 3>(
|
||||
vec2(-1., -3.),
|
||||
vec2(-1., 1.),
|
||||
vec2(3., 1.),
|
||||
);
|
||||
|
||||
return vec4(vertices[vertex_id], 0., 1.);
|
||||
}
|
||||
|
||||
@group(0) @binding(0) var albedo_tex: texture_storage_2d<rgba32float, read>;
|
||||
@group(0) @binding(1) var position_tex: texture_storage_2d<rgba32float, read>;
|
||||
@group(0) @binding(2) var normal_tex: texture_storage_2d<rgba32float, read>;
|
||||
@group(0) @binding(3) var depth_tex: texture_depth_2d;
|
||||
|
||||
@fragment
|
||||
fn fragment_main(@builtin(position) screen_position: vec4<f32>) -> @location(0) vec4<f32>
|
||||
{
|
||||
let texel_position = vec2<u32>(screen_position.xy);
|
||||
|
||||
let albedo = textureLoad(albedo_tex, texel_position);
|
||||
let position = textureLoad(position_tex, texel_position);
|
||||
let normal = textureLoad(normal_tex, texel_position);
|
||||
let depth = textureLoad(depth_tex, texel_position, 0);
|
||||
return vec4(depth / 1000.);
|
||||
}
|
||||
Reference in New Issue
Block a user