Skip to content

Commit

Permalink
More changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Xottab-DUTY committed Nov 1, 2023
1 parent c336681 commit bff6f77
Show file tree
Hide file tree
Showing 8 changed files with 63 additions and 80 deletions.
55 changes: 14 additions & 41 deletions src/Layers/xrRender/xrRender_console.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -291,33 +291,6 @@ float ps_r2_gloss_min = 0.0f;

//-----------------------------------------------------------------------

class CCC_ssfx_cascades : public CCC_Vector3
{
public:
void apply()
{
#if defined(USE_DX11)
RImplementation.r_sun.init_cascades();
#endif
}

CCC_ssfx_cascades(LPCSTR N, Fvector3* V, const Fvector3 _min, const Fvector3 _max) : CCC_Vector3(N, V, _min, _max)
{
};

virtual void Execute(LPCSTR args)
{
CCC_Vector3::Execute(args);
apply();
}

virtual void GetStatus(TStatus& S)
{
CCC_Vector3::GetStatus(S);
apply();
}
};

//AVO: detail draw radius
class CCC_detail_radius : public CCC_Integer
{
Expand Down Expand Up @@ -1055,8 +1028,8 @@ void xrRender_initconsole()
// Anomaly
Fvector4 tw2_min = { 0.f, 0.f, 0.f, 0.f };
Fvector4 tw2_max = { 10.f, 3.f, 1.f, 1.f };
tw_min.set(0, 0, 0);
tw_max.set(1, 2, 1);
tw_min.set(0.f, 0.f, 0.f);
tw_max.set(1.f, 2.f, 1.f);
CMD4(CCC_Integer, "r__nightvision", &ps_r2_nightvision, 0, 3); //For beef's nightvision shader or other stuff
CMD4(CCC_Vector4, "r2_mask_control", &ps_r2_mask_control, tw2_min, tw2_max);
CMD4(CCC_Vector3, "r2_drops_control", &ps_r2_drops_control, tw_min, tw_max);
Expand All @@ -1073,19 +1046,19 @@ void xrRender_initconsole()
CMD4(CCC_Vector4, "shader_param_8", &ps_dev_param_8, tw2_min, tw2_max);

// Ascii's Screen Space Shaders
CMD4(CCC_Vector4, "ssfx_hud_drops_1", &ps_ssfx_hud_drops_1, Fvector4().set(0, 0, 0, 0), Fvector4().set(100000, 100, 100, 100));
CMD4(CCC_Vector4, "ssfx_hud_drops_2", &ps_ssfx_hud_drops_2, Fvector4().set(0, 0, 0, 0), tw2_max);
CMD4(CCC_Vector4, "ssfx_blood_decals", &ps_ssfx_blood_decals, Fvector4().set(0, 0, 0, 0), Fvector4().set(5, 5, 0, 0));
CMD4(CCC_Vector4, "ssfx_rain_1", &ps_ssfx_rain_1, Fvector4().set(0, 0, 0, 0), Fvector4().set(10, 5, 5, 2));
CMD4(CCC_Vector4, "ssfx_rain_2", &ps_ssfx_rain_2, Fvector4().set(0, 0, 0, 0), Fvector4().set(1, 10, 10, 10));
CMD4(CCC_Vector4, "ssfx_rain_3", &ps_ssfx_rain_3, Fvector4().set(0, 0, 0, 0), Fvector4().set(1, 10, 10, 10));
CMD4(CCC_Vector4, "ssfx_grass_shadows", &ps_ssfx_grass_shadows, Fvector4().set(0, 0, 0, 0), Fvector4().set(3, 1, 100, 100));
CMD4(CCC_ssfx_cascades, "ssfx_shadow_cascades", &ps_ssfx_shadow_cascades, Fvector3().set(1.0f, 1.0f, 1.0f), Fvector3().set(300, 300, 300));
CMD4(CCC_Vector4, "ssfx_grass_interactive", &ps_ssfx_grass_interactive, Fvector4().set(0, 0, 0, 0), Fvector4().set(1, 15, 5000, 1));
CMD4(CCC_Vector4, "ssfx_int_grass_params_1", &ps_ssfx_int_grass_params_1, Fvector4().set(0, 0, 0, 0), Fvector4().set(5, 5, 5, 60));
CMD4(CCC_Vector4, "ssfx_int_grass_params_2", &ps_ssfx_int_grass_params_2, Fvector4().set(0, 0, 0, 0), Fvector4().set(5, 20, 1, 5));
CMD4(CCC_Vector4, "ssfx_hud_drops_1", &ps_ssfx_hud_drops_1, Fvector4{}, Fvector4({ 100000.f, 100.f, 100.f, 100.f }));
CMD4(CCC_Vector4, "ssfx_hud_drops_2", &ps_ssfx_hud_drops_2, Fvector4{}, tw2_max);
CMD4(CCC_Vector4, "ssfx_blood_decals", &ps_ssfx_blood_decals, Fvector4{}, Fvector4({ 5.f, 5.f, 0.f, 0.f }));
CMD4(CCC_Vector4, "ssfx_rain_1", &ps_ssfx_rain_1, Fvector4{}, Fvector4({ 10.f, 5.f, 5.f, 2.f }));
CMD4(CCC_Vector4, "ssfx_rain_2", &ps_ssfx_rain_2, Fvector4{}, Fvector4({ 1.f, 10.f, 10.f, 10.f }));
CMD4(CCC_Vector4, "ssfx_rain_3", &ps_ssfx_rain_3, Fvector4{}, Fvector4({ 1.f, 10.f, 10.f, 10.f }));
CMD4(CCC_Vector4, "ssfx_grass_shadows", &ps_ssfx_grass_shadows, Fvector4{}, Fvector4({ 3.f, 1.f, 100.f, 100.f }));
CMD4(CCC_Vector3, "ssfx_shadow_cascades", &ps_ssfx_shadow_cascades, Fvector3({ 1.0f, 1.0f, 1.0f }), Fvector3({ 300.f, 300.f, 300.f }));
CMD4(CCC_Vector4, "ssfx_grass_interactive", &ps_ssfx_grass_interactive, Fvector4{}, Fvector4({ 1.f, 15.f, 5000.f, 1.f }));
CMD4(CCC_Vector4, "ssfx_int_grass_params_1", &ps_ssfx_int_grass_params_1, Fvector4{}, Fvector4({ 5.f, 5.f, 5.f, 60.f }));
CMD4(CCC_Vector4, "ssfx_int_grass_params_2", &ps_ssfx_int_grass_params_2, Fvector4{}, Fvector4({ 5.f, 20.f, 1.f, 5.f }));
CMD4(CCC_Vector4, "ssfx_wpn_dof_1", &ps_ssfx_wpn_dof_1, tw2_min, tw2_max);
CMD4(CCC_Float, "ssfx_wpn_dof_2", &ps_ssfx_wpn_dof_2, 0, 1);
CMD4(CCC_Float, "ssfx_wpn_dof_2", &ps_ssfx_wpn_dof_2, 0.f, 1.f);

tw_min.set(0, 0, 0);
tw_max.set(1, 1, 1);
Expand Down
4 changes: 2 additions & 2 deletions src/Layers/xrRenderPC_R2/r2_shaders.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ HRESULT CRender::shader_compile(

if (ps_ssfx_rain_1.w > 0)
{
xr_sprintf(c_rain_quality, "%d", u8(ps_ssfx_rain_1.w));
xr_sprintf(c_rain_quality, "%d", ps_ssfx_rain_1.w);
defines[def_it].Name = "SSFX_RAIN_QUALITY";
defines[def_it].Definition = c_rain_quality;
def_it++;
Expand All @@ -424,7 +424,7 @@ HRESULT CRender::shader_compile(

if (ps_ssfx_grass_interactive.y > 0)
{
xr_sprintf(c_inter_grass, "%d", u8(ps_ssfx_grass_interactive.y));
xr_sprintf(c_inter_grass, "%d", ps_ssfx_grass_interactive.y);
defines[def_it].Name = "SSFX_INT_GRASS";
defines[def_it].Definition = c_inter_grass;
def_it++;
Expand Down
20 changes: 18 additions & 2 deletions src/Layers/xrRenderPC_R4/r4_shaders.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@ HRESULT CRender::shader_compile(pcstr name, IReader* fs, pcstr pFunctionName,
string32 c_sun_quality;
char c_msaa_samples[2];
char c_msaa_current_sample[2];
char c_rain_quality[32];
char c_inter_grass[32];

// options:
Expand Down Expand Up @@ -417,11 +418,26 @@ HRESULT CRender::shader_compile(pcstr name, IReader* fs, pcstr pFunctionName,
// Minmax SM
appendShaderOption(o.minmax_sm, "USE_MINMAX_SM", "1");

// Ascii's Screen Space Shaders - SSS preprocessor stuff
if (ps_ssfx_rain_1.w > 0)
{
xr_sprintf(c_rain_quality, "%d", ps_ssfx_rain_1.w);
options.add("SSFX_RAIN_QUALITY", c_rain_quality);
sh_name.append(c_rain_quality);
}
else
sh_name.append(static_cast<u32>(0));

if (ps_ssfx_grass_interactive.y > 0)
{
xr_sprintf(c_inter_grass, "%d", u8(ps_ssfx_grass_interactive.y));
appendShaderOption((u8)ps_ssfx_grass_interactive.y, "SSFX_INT_GRASS", c_inter_grass);
xr_sprintf(c_inter_grass, "%d", ps_ssfx_grass_interactive.y);
options.add("SSFX_INT_GRASS", c_inter_grass);
sh_name.append(c_inter_grass);
}
else
sh_name.append(static_cast<u32>(0));

appendShaderOption(1, "SSFX_MODEXE", "1");

// Be carefull!!!!! this should be at the end to correctly generate
// compiled shader name;
Expand Down
1 change: 0 additions & 1 deletion src/Layers/xrRender_R2/r2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -932,7 +932,6 @@ void CRender::rmNormal(CBackend& cmd_list)
CRender::CRender()
: Sectors_xrc("render")
{
r_sun.init_cascades();
}

CRender::~CRender() {}
Expand Down
2 changes: 0 additions & 2 deletions src/Layers/xrRender_R2/r2.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,6 @@ struct render_sun : public i_render_phase

void accumulate_cascade(u32 cascade_ind);

void init_cascades();

sun::cascade m_sun_cascades[R__NUM_SUN_CASCADES];
light* sun{ nullptr };
bool need_to_render_sunshafts{ false };
Expand Down
1 change: 1 addition & 0 deletions src/Layers/xrRender_R2/r2_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ const u32 LUMINANCE_size = 16;

extern float ps_r2_gloss_factor;
extern float ps_r2_gloss_min;

IC float u_diffuse2s(float x, float y, float z)
{
float v = (x + y + z) / 3.f;
Expand Down
58 changes: 27 additions & 31 deletions src/Layers/xrRender_R2/render_phase_sun.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,33 @@

void render_sun::init()
{
float fBias = -0.0000025f;

if (ps_r2_ls_flags_ext.test(R4FLAGEXT_NEW_SHADER_SUPPORT))
{
m_sun_cascades[0].reset_chain = true;
m_sun_cascades[0].size = ps_ssfx_shadow_cascades.x;
m_sun_cascades[0].bias = m_sun_cascades[0].size * fBias;

m_sun_cascades[1].size = ps_ssfx_shadow_cascades.y;
m_sun_cascades[1].bias = m_sun_cascades[1].size * fBias;

m_sun_cascades[2].size = ps_ssfx_shadow_cascades.z;
m_sun_cascades[2].bias = m_sun_cascades[2].size * fBias;
}
else
{
m_sun_cascades[0].reset_chain = true;
m_sun_cascades[0].size = 20;
m_sun_cascades[0].bias = m_sun_cascades[0].size * fBias;

m_sun_cascades[1].size = 40;
m_sun_cascades[1].bias = m_sun_cascades[1].size * fBias;

m_sun_cascades[2].size = 160;
m_sun_cascades[2].bias = m_sun_cascades[2].size * fBias;
}

// for( u32 i = 0; i < cascade_count; ++i )
// {
// m_sun_cascades[i].size = size;
Expand Down Expand Up @@ -407,34 +434,3 @@ void render_sun::accumulate_cascade(u32 cascade_ind)
dsgraph.cmd_list.submit(); // TODO: move into release (rename to submit?)
RImplementation.release_context(dsgraph.context_id);
}

void render_sun::init_cascades()
{
u32 cascade_count = 3;
float fBias = -0.0000025f;

if (ps_r2_ls_flags_ext.test(R4FLAGEXT_NEW_SHADER_SUPPORT))
{
m_sun_cascades[0].reset_chain = true;
m_sun_cascades[0].size = ps_ssfx_shadow_cascades.x; //20
m_sun_cascades[0].bias = m_sun_cascades[0].size * fBias;

m_sun_cascades[1].size = ps_ssfx_shadow_cascades.y; //40
m_sun_cascades[1].bias = m_sun_cascades[1].size * fBias;

m_sun_cascades[2].size = ps_ssfx_shadow_cascades.z; //160
m_sun_cascades[2].bias = m_sun_cascades[2].size * fBias;
}
else
{
m_sun_cascades[0].reset_chain = true;
m_sun_cascades[0].size = 20;
m_sun_cascades[0].bias = m_sun_cascades[0].size * fBias;

m_sun_cascades[1].size = 40;
m_sun_cascades[1].bias = m_sun_cascades[1].size * fBias;

m_sun_cascades[2].size = 160;
m_sun_cascades[2].bias = m_sun_cascades[2].size * fBias;
}
}
2 changes: 1 addition & 1 deletion src/xrEngine/xr_ioc_cmd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -962,5 +962,5 @@ void CCC_Register()
CMD4(CCC_Integer, "debug_show_red_text", &g_bShowRedText, 0, 1);
#endif

CMD4(CCC_Vector3, "ssfx_wetness_multiplier", &ssfx_wetness_multiplier, Fvector3().set(0.1f, 0.1f, 0.0f), Fvector3().set(20.0f, 20.0f, 0.0f));
CMD4(CCC_Vector3, "ssfx_wetness_multiplier", &ssfx_wetness_multiplier, Fvector3({ 0.1f, 0.1f, 0.0f} ), Fvector3({ 20.0f, 20.0f, 0.0f }));
};

0 comments on commit bff6f77

Please sign in to comment.