From 281b654c1fa29b53130f5a0bda38449e948223e8 Mon Sep 17 00:00:00 2001 From: korenkonder Date: Mon, 6 Mar 2023 17:41:34 +0300 Subject: [PATCH] Fix NPR --- src/CRE/render_context.cpp | 3 +-- src/CRE/render_manager.cpp | 11 ++++++++--- src/ReDIVA/render.cpp | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/CRE/render_context.cpp b/src/CRE/render_context.cpp index 5919bede..3988e3b5 100644 --- a/src/CRE/render_context.cpp +++ b/src/CRE/render_context.cpp @@ -99,6 +99,7 @@ void draw_state_stats::reset() { sss_data::sss_data() : init(), enable(), npr_contour(), param() { init = true; enable = true; + npr_contour = true; param = { 0.0f, 0.0f, 0.0f, 1.0f }; textures[0].init(640, 360, 0, GL_RGBA16F, GL_ZERO /*GL_DEPTH_COMPONENT32F*/); @@ -2173,7 +2174,6 @@ namespace rndr { GLuint sampler; glCreateSamplers(3, sprite_samplers); sampler = sprite_samplers[0]; - glSamplerParameterfv(sampler, GL_TEXTURE_BORDER_COLOR, (GLfloat*)&border_color); glSamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); glSamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glSamplerParameteri(sampler, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); @@ -2181,7 +2181,6 @@ namespace rndr { glSamplerParameterf(sampler, GL_TEXTURE_MAX_ANISOTROPY_EXT, 16.0f); sampler = sprite_samplers[1]; - glSamplerParameterfv(sampler, GL_TEXTURE_BORDER_COLOR, (GLfloat*)&border_color); glSamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); glSamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glSamplerParameteri(sampler, GL_TEXTURE_WRAP_S, GL_REPEAT); diff --git a/src/CRE/render_manager.cpp b/src/CRE/render_manager.cpp index 1bab0ce1..b2727823 100644 --- a/src/CRE/render_manager.cpp +++ b/src/CRE/render_manager.cpp @@ -819,9 +819,13 @@ namespace rndr { gl_state_set_blend_equation(GL_FUNC_ADD); gl_state_disable_depth_test(); - contour_params_shader_data shader_data = {}; - shader_data.g_near_far = rctx->g_near_far; - rctx->contour_params_ubo.WriteMapMemory(shader_data); + quad_shader_data quad_data = {}; + quad_data.g_texcoord_modifier = { 0.5f, 0.5f, 0.5f, 0.5f }; + rctx->quad_ubo.WriteMapMemory(quad_data); + + contour_params_shader_data contour_params_data = {}; + contour_params_data.g_near_far = rctx->g_near_far; + rctx->contour_params_ubo.WriteMapMemory(contour_params_data); shaders_ft.set(SHADER_FT_CONTOUR_NPR); gl_state_active_bind_texture_2d(16, contour_rt->color_texture->tex); @@ -833,6 +837,7 @@ namespace rndr { gl_state_active_bind_texture_2d(14, rt->depth_texture->tex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + rctx->quad_ubo.Bind(0); rctx->contour_params_ubo.Bind(2); render_texture::draw(&shaders_ft); diff --git a/src/ReDIVA/render.cpp b/src/ReDIVA/render.cpp index 9371d755..14d8ef7c 100644 --- a/src/ReDIVA/render.cpp +++ b/src/ReDIVA/render.cpp @@ -154,7 +154,7 @@ int32_t height; static const double_t aspect = 16.0 / 9.0; bool light_chara_ambient; -vec4 npr_cloth_spec_color; +vec4 npr_cloth_spec_color = 1.0f; uint32_t cmn_set_id; uint32_t dbg_set_id;