Fixed NPR not applying properly
This commit is contained in:
@@ -612,6 +612,12 @@ void render_data_context::set_glitter_render_data_state() {
|
||||
state.bind_uniform_buffer_base(1, data.buffer_scene);
|
||||
}
|
||||
|
||||
void render_data_context::set_npr(rndr::RenderManager* render_manager) {
|
||||
shader_flags.arr[U_NPR] = 0;
|
||||
if (render_manager->npr_param == 1)
|
||||
shader_flags.arr[U_NPR] = 1;
|
||||
}
|
||||
|
||||
void render_data_context::set_render_data_state() {
|
||||
data.set_state(state);
|
||||
}
|
||||
|
||||
@@ -452,6 +452,7 @@ struct render_data_context {
|
||||
void set_batch_texcoord_transforms(const mat4 mats[2]);
|
||||
void set_batch_worlds(const mat4& mat);
|
||||
void set_glitter_render_data_state();
|
||||
void set_npr(rndr::RenderManager* render_manager);
|
||||
void set_render_data_state();
|
||||
void set_scene_fog_params(const render_data_context::fog_params& value);
|
||||
void set_scene_framebuffer_size(const int32_t width, const int32_t height,
|
||||
|
||||
@@ -583,6 +583,7 @@ namespace rndr {
|
||||
}
|
||||
|
||||
draw_pass_sss_filter(rend_data_ctx, sss);
|
||||
rend_data_ctx.set_npr(this);
|
||||
reflect_draw = false;
|
||||
rend_data_ctx.state.end_event();
|
||||
}
|
||||
@@ -669,6 +670,7 @@ namespace rndr {
|
||||
}
|
||||
|
||||
draw_pass_sss_filter(rend_data_ctx, sss);
|
||||
rend_data_ctx.set_npr(this);
|
||||
rend_data_ctx.state.bind_framebuffer(0);
|
||||
rend_data_ctx.state.end_event();
|
||||
}
|
||||
@@ -918,6 +920,8 @@ namespace rndr {
|
||||
|
||||
sss_data_get()->set_texture(rend_data_ctx.state, 1);
|
||||
|
||||
rend_data_ctx.set_npr(this);
|
||||
|
||||
rend_data_ctx.state.bind_sampler(14, rctx->render_samplers[0]);
|
||||
rend_data_ctx.state.bind_sampler(15, rctx->render_samplers[0]);
|
||||
rend_data_ctx.state.bind_sampler(16, rctx->render_samplers[0]);
|
||||
@@ -2437,7 +2441,7 @@ static void lighting_set(render_data_context& rend_data_ctx, light_set_id set_id
|
||||
|
||||
float_t* (FASTCALL * face_data_get)() = (float_t * (FASTCALL*)())0x00000001403D8310;
|
||||
float_t v27 = face_data_get()[0];
|
||||
float_t v28 = (float_t)(1.0 - exp(v27 * -0.44999999)) * 2.0f;
|
||||
float_t v28 = (1.0f - expf(v27 * -0.45f)) * 2.0f;
|
||||
v27 = max_def(v27, 0.0f);
|
||||
vec4 light_face_diff = { v28 * 0.1f, v27 * 0.06f, 1.0f, 1.0f };
|
||||
|
||||
|
||||
Reference in New Issue
Block a user