From ec9c7a55ce41df9ea5838683381e178f5b1f4e80 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Wed, 1 Jun 2022 19:07:28 -0400 Subject: [PATCH] hook up merc2 to fog intensity, flip some min/max fogs (#1403) * hook up merc2 to fog intensity, flip some min/max fogs * zero initialize let stats --- decompiler/ObjectFile/ObjectFileDB.h | 22 +++++++++---------- .../opengl_renderer/shaders/generic.vert | 2 +- .../opengl_renderer/shaders/merc2.frag | 2 +- .../opengl_renderer/shaders/merc2.vert | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/decompiler/ObjectFile/ObjectFileDB.h b/decompiler/ObjectFile/ObjectFileDB.h index 333000d786..7fdccfc0f8 100644 --- a/decompiler/ObjectFile/ObjectFileDB.h +++ b/decompiler/ObjectFile/ObjectFileDB.h @@ -51,17 +51,17 @@ struct ObjectFileData { * Stats structure for let rewriting. */ struct LetRewriteStats { - int dotimes; - int countdown; - int abs; - int abs2; - int unused; - int ja; - int case_no_else; - int case_with_else; - int set_vector; - int set_vector2; - int send_event; + int dotimes = 0; + int countdown = 0; + int abs = 0; + int abs2 = 0; + int unused = 0; + int ja = 0; + int case_no_else = 0; + int case_with_else = 0; + int set_vector = 0; + int set_vector2 = 0; + int send_event = 0; int total() const { return dotimes + countdown + abs + abs2 + unused + ja + case_no_else + case_with_else + diff --git a/game/graphics/opengl_renderer/shaders/generic.vert b/game/graphics/opengl_renderer/shaders/generic.vert index c6d6e30c92..e364b1f3af 100644 --- a/game/graphics/opengl_renderer/shaders/generic.vert +++ b/game/graphics/opengl_renderer/shaders/generic.vert @@ -46,7 +46,7 @@ void main() { // vu.Q = gen.fog.x() / gen.vtx_p0.w(); float Q = fog_constants.x / transformed.w; - fog = 255 - clamp(-transformed.w + hvdf_offset.w, fog_constants.z, fog_constants.y); + fog = 255 - clamp(-transformed.w + hvdf_offset.w, fog_constants.y, fog_constants.z); // itof12.xyz vf18, vf22 texture int to float // vu.vf18.itof12(Mask::xyz, vu.vf22); diff --git a/game/graphics/opengl_renderer/shaders/merc2.frag b/game/graphics/opengl_renderer/shaders/merc2.frag index 70bef8f549..ab461cbba2 100644 --- a/game/graphics/opengl_renderer/shaders/merc2.frag +++ b/game/graphics/opengl_renderer/shaders/merc2.frag @@ -30,5 +30,5 @@ void main() { discard; } - color.xyz = mix(color.xyz, fog_color.rgb, clamp(fog, 0, 1)); + color.xyz = mix(color.xyz, fog_color.rgb, clamp(fog_color.a * fog, 0, 1)); } diff --git a/game/graphics/opengl_renderer/shaders/merc2.vert b/game/graphics/opengl_renderer/shaders/merc2.vert index 91f2cea3ed..8b32b16ebc 100644 --- a/game/graphics/opengl_renderer/shaders/merc2.vert +++ b/game/graphics/opengl_renderer/shaders/merc2.vert @@ -96,7 +96,7 @@ void main() { float Q = fog_constants.x / transformed[3]; - fog = (255 - clamp(-transformed.w + hvdf_offset.w, fog_constants.z, fog_constants.y))/255.0; + fog = 255 - clamp(-transformed.w + hvdf_offset.w, fog_constants.y, fog_constants.z); transformed.xyz *= Q; transformed.xyz += hvdf_offset.xyz;