From 89c9b1e569586887f71d49ded7f76761f75cc9e2 Mon Sep 17 00:00:00 2001 From: nullprop Date: Sat, 11 Nov 2023 17:37:48 +0200 Subject: [PATCH] Cleaning up pbr shader --- res/shaders/globals.wgsl | 2 +- res/shaders/pbr.wgsl | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/res/shaders/globals.wgsl b/res/shaders/globals.wgsl index 70eaf6b..540d392 100644 --- a/res/shaders/globals.wgsl +++ b/res/shaders/globals.wgsl @@ -29,7 +29,7 @@ var global_uniforms: GlobalUniforms; struct MaterialUniform { metallic_factor: f32, - rougness_factor: f32, + roughness_factor: f32, _padding1: f32, _padding2: f32, } diff --git a/res/shaders/pbr.wgsl b/res/shaders/pbr.wgsl index 85677f1..56cb5d7 100644 --- a/res/shaders/pbr.wgsl +++ b/res/shaders/pbr.wgsl @@ -73,21 +73,21 @@ var material_uniform: MaterialUniform; @fragment fn fs_main(vert: VertexOutput) -> @location(0) vec4 { // textures - let object_color: vec4 = textureSample(t_diffuse, s_diffuse, vert.tex_coords); - let object_normal: vec4 = textureSample(t_normal, s_normal, vert.tex_coords); - let object_roughness_metalness: vec4 = textureSample( + let tex_diffuse: vec4 = textureSample(t_diffuse, s_diffuse, vert.tex_coords); + let tex_normal: vec4 = textureSample(t_normal, s_normal, vert.tex_coords); + let tex_rm: vec4 = textureSample( t_roughness_metalness, s_roughness_metalness, vert.tex_coords); - let albedo = object_color.xyz; - let roughness = object_roughness_metalness.y * material_uniform.rougness_factor; - let metalness = object_roughness_metalness.z * material_uniform.metallic_factor; + let albedo = tex_diffuse.rgb; + let roughness = tex_rm.g * material_uniform.roughness_factor; + let metalness = tex_rm.b * material_uniform.metallic_factor; var total_radiance: vec3; let in_light = sample_direct_light(vert.world_position); if (in_light > 0.0) { // lighting vecs - let normal_dir = object_normal.xyz * 2.0 - 1.0; + let normal_dir = tex_normal.xyz * 2.0 - 1.0; var light_dir = normalize(vert.tangent_light_position - vert.tangent_position); let view_dir = normalize(vert.tangent_view_position - vert.tangent_position); let half_dir = normalize(view_dir + light_dir); @@ -122,5 +122,5 @@ fn fs_main(vert: VertexOutput) -> @location(0) vec4 { // tonemap result = result / (result + vec3(1.0)); - return vec4(result, object_color.a); + return vec4(result, tex_diffuse.a); }