diff --git a/res/ft_shaders.farc b/res/ft_shaders.farc index 7264361..c7459f1 100644 Binary files a/res/ft_shaders.farc and b/res/ft_shaders.farc differ diff --git a/src/DivaGL/mdl/draw_object.cpp b/src/DivaGL/mdl/draw_object.cpp index 6cfc281..105d631 100644 --- a/src/DivaGL/mdl/draw_object.cpp +++ b/src/DivaGL/mdl/draw_object.cpp @@ -314,37 +314,37 @@ namespace mdl { || args->sub_mesh->attrib.m.transparent) || attrib.punch_through) ? 1 : 0; - uniform->arr[U26] = 1; - bool aniso = false; + uniform->arr[U_NPR_NORMAL] = 1; + bool chara = false; const obj_material_data* material = args->material; switch (material->material.shader.index) { case SHADER_FT_CLOTH: if (!render_manager->npr_param && material->material.color.ambient.w < 1.0f && material->material.shader_info.m.aniso_direction == OBJ_MATERIAL_ANISO_DIRECTION_NORMAL) - aniso = true; + chara = true; break; case SHADER_FT_TIGHTS: if (!render_manager->npr_param) - aniso = true; + chara = true; break; //case SHADER_FT_EYEBALL: case SHADER_FT_GLASEYE: - uniform->arr[U26] = 0; - aniso = true; + uniform->arr[U_NPR_NORMAL] = 0; + chara = true; break; case SHADER_FT_SKIN: - aniso = true; + chara = true; break; } - if (aniso) { + if (chara) { rctx->obj_batch.g_sss_param = { 0.0f, 0.0f, 0.0f, 0.5f }; - uniform->arr[U37] = 1; + uniform->arr[U_SSS_CHARA] = 1; } else { const vec4& sss_param = sss_data_get()->param; rctx->obj_batch.g_sss_param = { sss_param.x, sss_param.y, sss_param.z, 0.5f }; - uniform->arr[U37] = 0; + uniform->arr[U_SSS_CHARA] = 0; } draw_sub_mesh_default(args); } diff --git a/src/DivaGL/shader_ft.cpp b/src/DivaGL/shader_ft.cpp index 68896af..ed9d865 100644 --- a/src/DivaGL/shader_ft.cpp +++ b/src/DivaGL/shader_ft.cpp @@ -1966,7 +1966,7 @@ static const std::pair ITEM_uniform[] = { { U_NORMAL , false }, { U_TEXTURE_COUNT, false }, { U_ENV_MAP , false }, - { U_SELF_SHADOW , false }, + { U_SELF_SHADOW , true }, { U_FOG , false }, { U_ALPHA_TEST , true }, { U_SHADOW , false }, @@ -1993,7 +1993,7 @@ static const std::pair SKIN_uniform[] = { //{ U16 , true }, // 0th removed { U_SKINNING , true }, { U_NORMAL , false }, - { U_SELF_SHADOW , false }, + { U_SELF_SHADOW , true }, { U_FOG , false }, { U_ALPHA_TEST , true }, { U_SHADOW , false }, @@ -2005,12 +2005,12 @@ static const std::pair SKIN_uniform[] = { static const std::pair SSS_SKIN_uniform[] = { //{ U16 , true }, // 0th removed { U_SKINNING , true }, - { U37 , false }, + { U_SSS_CHARA , true }, { U_ALPHA_TEST , true }, - { U_SELF_SHADOW , false }, + { U_SELF_SHADOW , true }, { U_SHADOW , false }, { U_NPR , true }, - { U26 , false }, + { U_NPR_NORMAL , false }, }; static const std::pair SSS_FILT_uniform[] = { @@ -2028,7 +2028,7 @@ static const std::pair HAIR_uniform[] = { { U_TRANSPARENCY , false }, { U_TRANSLUCENCY , false }, { U_ANISO , false }, - { U_SELF_SHADOW , false }, + { U_SELF_SHADOW , true }, { U_FOG , false }, { U_SHADOW , false }, { U_NPR , false }, @@ -2045,7 +2045,7 @@ static const std::pair CLOTH_uniform[] = { { U_NORMAL , false }, { U_TRANSPARENCY , false }, { U_ENV_MAP , false }, - { U_SELF_SHADOW , false }, + { U_SELF_SHADOW , true }, { U_FOG , false }, { U_ALPHA_TEST , true }, { U_ANISO , false }, @@ -2060,7 +2060,7 @@ static const std::pair TIGHTS_uniform[] = { { U_SKINNING , true }, { U_SPECULAR , false }, { U_ENV_MAP , false }, - { U_SELF_SHADOW , false }, + { U_SELF_SHADOW , true }, { U_FOG , false }, { U_ALPHA_TEST , true }, { U_SHADOW , false }, @@ -2093,9 +2093,9 @@ static const std::pair SKY_uniform[] = { static const std::pair GLASEYE_uniform[] = { //{ U16 , true }, // 0th removed { U_SKINNING , true }, - { U_SELF_SHADOW , false }, + { U_SELF_SHADOW , true }, { U_FOG , false }, - { U18 , false }, + { U_EYEBALL , false }, { U_SHADOW , false }, { U_CHARA_COLOR , false }, { U_TONE_CURVE , false }, @@ -2743,7 +2743,7 @@ static void shader_bind_hair(shader_set_data* set, shader* shad) { } static void shader_bind_eye_ball(shader_set_data* set, shader* shad) { - uniform->arr[U18] = 0; + uniform->arr[U_EYEBALL] = 0; if (set->shaders[SHADER_FT_GLASEYE].bind(set, SHADER_FT_SUB_GLASS_EYE) >= 0) { glass_eye_calc(&glass_eye); glass_eye_set(&glass_eye); diff --git a/src/DivaGL/uniform.hpp b/src/DivaGL/uniform.hpp index 034aafe..5b1ccae 100644 --- a/src/DivaGL/uniform.hpp +++ b/src/DivaGL/uniform.hpp @@ -32,7 +32,7 @@ enum uniform_name { U_FOG = 0x15, U16 = 0x16, U_GAUSS = 0x17, - U18 = 0x18, + U_EYEBALL = 0x18, U_IMAGE_FILTER = 0x19, U_INSTANCE = 0x1A, U_TONE_CURVE = 0x1B, @@ -46,7 +46,7 @@ enum uniform_name { U_MOVIE = 0x23, U24 = 0x24, U25 = 0x25, - U26 = 0x26, + U_NPR_NORMAL = 0x26, U_NPR = 0x27, U_LIGHT_1 = 0x28, U_REFLECT = 0x29, @@ -63,7 +63,7 @@ enum uniform_name { U_TEX_0_TYPE = 0x34, U_TEX_1_TYPE = 0x35, U_SSS_FILTER = 0x36, - U37 = 0x37, + U_SSS_CHARA = 0x37, U_STAR = 0x38, U_TEXTURE_COUNT = 0x39, U_ENV_MAP = 0x3A,