From b3b3ef9f6400ff27eae8ca2fa67b92b937846424 Mon Sep 17 00:00:00 2001 From: korenkonder Date: Mon, 25 Dec 2023 06:53:57 +0300 Subject: [PATCH] Exposure fix --- res/ft_shaders.farc | Bin 131312 -> 130704 bytes src/DivaGL/render.cpp | 39 +++++++++++++-------------------------- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/res/ft_shaders.farc b/res/ft_shaders.farc index 2b413f848f52978fa208f7a4d9be3df37225b956..90a85d95e17763b7bf745002d4222c516a5fcf83 100644 GIT binary patch delta 21603 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 U+tL4u#H2nS8vp>eAKC%YCbJ-300000 delta 22140 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 exposure_history = texture_load_tex_2d(texture_id(0x25, texture_counter++), - GL_R32F, 32, 1, 0, 0, 0); + GL_RGBA16F, 32, 2, 0, 0, 0); glGenTextures(1, &exposure_tex); gl_state_bind_texture_2d(exposure_tex); - glTexImage2DDLL(GL_TEXTURE_2D, 0, GL_R32F, 2, 2, 0, GL_RED, GL_FLOAT, 0); + glTexImage2DDLL(GL_TEXTURE_2D, 0, GL_RGBA32F, 2, 2, 0, GL_RGBA, GL_FLOAT, 0); glTexParameteriDLL(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteriDLL(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteriDLL(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); @@ -972,7 +972,7 @@ namespace rndr { for (int32_t i = 1; i < downsample_count - 1; i++) { rend_texture[i].Bind(); gl_state_active_bind_texture_2d(0, rend_texture[i - 1].GetColorTex()); - gl_state_bind_sampler(0, rctx->render_samplers[2]); + gl_state_bind_sampler(0, rctx->render_samplers[0]); glViewportDLL(0, 0, render_width[i], render_height[i]); draw_quad( render_post_width[i - 1], render_post_height[i - 1], @@ -987,7 +987,7 @@ namespace rndr { glViewportDLL(0, 0, reduce_width[0], reduce_height[0]); reduce_texture[0].Bind(); gl_state_active_bind_texture_2d(0, rend_texture[downsample].GetColorTex()); - gl_state_bind_sampler(0, rctx->render_samplers[2]); + gl_state_bind_sampler(0, rctx->render_samplers[0]); draw_quad( render_post_width[downsample], render_post_height[downsample], render_post_width_scale, render_post_height_scale, @@ -1326,12 +1326,10 @@ namespace rndr { exposure_chara_data[i].reset(); ExposureCharaData* chara_data = exposure_chara_data; - float_t v18 = (float_t)height / (float_t)width; - float_t v20 = powf(tanf(camera_data->fov * 0.5f * DEG_TO_RAD_FLOAT) * 3.4f, 2.0f); size_t rob_chara_smth = get_rob_chara_smth(); for (int32_t i = 0; i < ROB_CHARA_COUNT; i++, chara_data++) { size_t rob_chr = rob_chara_array_get(rob_chara_smth, i); - if (!rob_chr || !(*(uint8_t*)(rob_chara_smth + 0x440) & 1)) + if (!rob_chr || !(*(uint8_t*)(rob_chr + 0x440) & 1)) continue; vec4 v34 = { 0.05f, 0.0f, -0.04f, 1.0f }; @@ -1361,14 +1359,7 @@ namespace rndr { float_t v31 = 0.5f - (fabsf(v14) - 1.0f) * 2.5f; float_t v32 = 0.5f - (fabsf(v13) - 1.0f) * 2.5f; - float_t v16; - if (v32 <= v31) - v16 = v32; - else - v16 = v31; - - if (v16 > 1.0f) - v16 = 1.0f; + float_t v16 = min_def(min_def(v31, v32), 1.0f); vec4 v39; mat4_transform_vector(&v42, &v33, &v39); @@ -1379,18 +1370,14 @@ namespace rndr { else if (v17 < 0.2f) v17 = 0.0f; + float_t v18 = (float_t)height / (float_t)width; + float_t v20 = tanf(camera_data->fov * 0.5f * DEG_TO_RAD_FLOAT); float_t v21 = 0.25f / sqrtf(powf(v20 * 3.4f, 2.0f) * (v41.z * v41.z)); float_t v22; - if (v21 < 0.055f) { - v22 = (v21 - 0.035f) * 50.0f; - if (v22 < 0.0f) - v22 = 0.0f; - } - else if (v21 > 0.5f) { - v22 = 1.0f - (v21 - 0.5f) * 3.3333333f; - if (v22 < 0.0f) - v22 = 0.0f; - } + if (v21 < 0.055f) + v22 = max_def((v21 - 0.035f) * 50.0f, 0.0f); + else if (v21 > 0.5f) + v22 = max_def(1.0f - (v21 - 0.5f) * 3.3333333f, 0.0f); else v22 = 1.0f;