Skip to content

Commit

Permalink
Merge pull request #223 from RainbowZerg/xd_dev
Browse files Browse the repository at this point in the history
Detail objects shadows.
  • Loading branch information
Xottab-DUTY committed Jul 7, 2018
2 parents c978c6b + e1e6db1 commit ce36942
Show file tree
Hide file tree
Showing 17 changed files with 30 additions and 19 deletions.
4 changes: 4 additions & 0 deletions src/Layers/xrRender/DetailManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,10 @@ extern ECORE_API float r_ssaDISCARD;

void CDetailManager::UpdateVisibleM()
{
for (int i = 0; i != 3; ++i)
for (auto& vis : m_visibles[i])
vis.clear();

Fvector EYE = Device.vCameraPositionSaved;

CFrustum View;
Expand Down
2 changes: 0 additions & 2 deletions src/Layers/xrRender/DetailManager_VS.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -334,8 +334,6 @@ void CDetailManager::hw_Render_dump(ref_constant x_array, u32 var_id, u32 lod_id
RCache.Render(D3DPT_TRIANGLELIST, vOffset, 0, dwCNT_verts, iOffset, dwCNT_prims);
RCache.stat.r.s_details.add(dwCNT_verts);
}
// Clean up
vis.clear();
}
vOffset += hw_BatchSize * Object.number_vertices;
iOffset += hw_BatchSize * Object.number_indices;
Expand Down
2 changes: 1 addition & 1 deletion src/Layers/xrRender/xrRender_console.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,7 @@ void xrRender_initconsole()

//CMD4(CCC_Float, "r__detail_density", &ps_r__Detail_density, .05f, 0.99f);
CMD4(CCC_Float, "r__detail_density", &ps_current_detail_density/*&ps_r__Detail_density*/, 0.04f, 0.6f); //AVO: extended from 0.2f to 0.04f and replaced variable
CMD3(CCC_Mask, "r2_detail_shadow", &ps_r2_ls_flags, R2FLAG_DETAIL_SHADOW);

#ifdef DEBUG
CMD4(CCC_Float, "r__detail_l_ambient", &ps_r__Detail_l_ambient, .5f, .95f);
Expand Down Expand Up @@ -786,7 +787,6 @@ void xrRender_initconsole()
#endif // DEBUG

CMD3(CCC_Mask, "r2_sun", &ps_r2_ls_flags, R2FLAG_SUN);
CMD3(CCC_Mask, "r2_sun_details", &ps_r2_ls_flags, R2FLAG_SUN_DETAILS);
CMD3(CCC_Mask, "r2_sun_focus", &ps_r2_ls_flags, R2FLAG_SUN_FOCUS);
//CMD3(CCC_Mask, "r2_sun_static", &ps_r2_ls_flags, R2FLAG_SUN_STATIC);
//CMD3(CCC_Mask, "r2_exp_splitscene", &ps_r2_ls_flags, R2FLAG_EXP_SPLIT_SCENE);
Expand Down
2 changes: 1 addition & 1 deletion src/Layers/xrRender/xrRender_console.h
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ enum
R2FLAG_SUN = (1 << 0),
R2FLAG_SUN_FOCUS = (1 << 1),
R2FLAG_SUN_TSM = (1 << 2),
R2FLAG_SUN_DETAILS = (1 << 3),
R2FLAG_DETAIL_SHADOW = (1 << 3),
R2FLAG_TONEMAP = (1 << 4),
R2FLAG_AA = (1 << 5),
R2FLAG_GI = (1 << 6),
Expand Down
2 changes: 0 additions & 2 deletions src/Layers/xrRenderDX10/dx10DetailManager_VS.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,6 @@ void CDetailManager::hw_Render_dump(
RCache.stat.r.s_details.add(dwCNT_verts);
}
}
// Clean up
vis.clear();
}
vOffset += hw_BatchSize * Object.number_vertices;
iOffset += hw_BatchSize * Object.number_indices;
Expand Down
2 changes: 0 additions & 2 deletions src/Layers/xrRenderGL/glDetailManager_VS.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -219,8 +219,6 @@ void CDetailManager::hw_Render_dump(const Fvector4& consts, const Fvector4& wave
RCache.stat.r.s_details.add(dwCNT_verts);
}
}
// Clean up
vis.clear();
}
vOffset += hw_BatchSize * Object.number_vertices;
iOffset += hw_BatchSize * Object.number_indices;
Expand Down
4 changes: 2 additions & 2 deletions src/Layers/xrRenderPC_GL/r2_R_sun.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1025,7 +1025,7 @@ void CRender::render_sun_near()
RCache.set_xform_view(Fidentity);
RCache.set_xform_project(fuckingsun->X.D.combine);
r_dsgraph_render_graph(0);
if (ps_r2_ls_flags.test(R2FLAG_SUN_DETAILS))
if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
Details->Render();
fuckingsun->X.D.transluent = FALSE;
if (bSpecial)
Expand Down Expand Up @@ -1369,7 +1369,7 @@ void CRender::render_sun_cascade(u32 cascade_ind)
RCache.set_xform_view(Fidentity);
RCache.set_xform_project(fuckingsun->X.D.combine);
r_dsgraph_render_graph(0);
if (ps_r2_ls_flags.test(R2FLAG_SUN_DETAILS))
if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
Details->Render();
fuckingsun->X.D.transluent = FALSE;
if (bSpecial)
Expand Down
2 changes: 1 addition & 1 deletion src/Layers/xrRenderPC_GL/r3_R_rain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ void CRender::render_rain()
RCache.set_xform_view(Fidentity);
RCache.set_xform_project(RainLight.X.D.combine);
r_dsgraph_render_graph(0);
//if (ps_r2_ls_flags.test(R2FLAG_SUN_DETAILS))
//if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
// Details->Render () ;
}
}
Expand Down
7 changes: 7 additions & 0 deletions src/Layers/xrRenderPC_R1/FStaticRender.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,13 @@ void CRender::reset_end()
if (L_Projector)
L_Projector->invalidate();

// let's reload details while changed details options on vid_restart
if (b_loaded && (dm_current_size != dm_size || ps_r__Detail_density != ps_current_detail_density))
{
Details = new CDetailManager();
Details->Load();
}

// Set this flag true to skip the first render frame,
// that some data is not ready in the first frame (for example device camera position)
m_bFirstFrameAfterReset = true;
Expand Down
2 changes: 2 additions & 0 deletions src/Layers/xrRenderPC_R2/r2_R_lights.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ void CRender::render_lights(light_Package& LP)
RCache.set_xform_view(L->X.S.view);
RCache.set_xform_project(L->X.S.project);
r_dsgraph_render_graph(0);
if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
Details->Render();
L->X.S.transluent = FALSE;
if (bSpecial)
{
Expand Down
4 changes: 2 additions & 2 deletions src/Layers/xrRenderPC_R2/r2_R_sun.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1434,7 +1434,7 @@ void CRender::render_sun_near()
RCache.set_xform_view(Fidentity);
RCache.set_xform_project(fuckingsun->X.D.combine);
r_dsgraph_render_graph(0);
if (ps_r2_ls_flags.test(R2FLAG_SUN_DETAILS))
if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
Details->Render();
fuckingsun->X.D.transluent = FALSE;
if (bSpecial)
Expand Down Expand Up @@ -1754,7 +1754,7 @@ void CRender::render_sun_cascade(u32 cascade_ind)
RCache.set_xform_view(Fidentity);
RCache.set_xform_project(fuckingsun->X.D.combine);
r_dsgraph_render_graph(0);
if (ps_r2_ls_flags.test(R2FLAG_SUN_DETAILS))
if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
Details->Render();
fuckingsun->X.D.transluent = FALSE;
if (bSpecial)
Expand Down
2 changes: 2 additions & 0 deletions src/Layers/xrRenderPC_R3/r2_R_lights.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ void CRender::render_lights(light_Package& LP)
RCache.set_xform_view(L->X.S.view);
RCache.set_xform_project(L->X.S.project);
r_dsgraph_render_graph(0);
if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
Details->Render();
L->X.S.transluent = FALSE;
if (bSpecial)
{
Expand Down
2 changes: 1 addition & 1 deletion src/Layers/xrRenderPC_R3/r3_R_rain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ void CRender::render_rain()
RCache.set_xform_view(Fidentity);
RCache.set_xform_project(RainLight.X.D.combine);
r_dsgraph_render_graph(0);
// if (ps_r2_ls_flags.test(R2FLAG_SUN_DETAILS))
// if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
// Details->Render () ;
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/Layers/xrRenderPC_R3/r3_R_sun.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1006,7 +1006,7 @@ void CRender::render_sun_near()
RCache.set_xform_view(Fidentity);
RCache.set_xform_project(fuckingsun->X.D.combine);
r_dsgraph_render_graph(0);
if (ps_r2_ls_flags.test(R2FLAG_SUN_DETAILS))
if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
Details->Render();
fuckingsun->X.D.transluent = FALSE;
if (bSpecial)
Expand Down Expand Up @@ -1345,7 +1345,7 @@ void CRender::render_sun_cascade(u32 cascade_ind)
RCache.set_xform_view(Fidentity);
RCache.set_xform_project(fuckingsun->X.D.combine);
r_dsgraph_render_graph(0);
if (ps_r2_ls_flags.test(R2FLAG_SUN_DETAILS))
if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
Details->Render();
fuckingsun->X.D.transluent = FALSE;
if (bSpecial)
Expand Down
2 changes: 2 additions & 0 deletions src/Layers/xrRenderPC_R4/r2_R_lights.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ void CRender::render_lights(light_Package& LP)
RCache.set_xform_view(L->X.S.view);
RCache.set_xform_project(L->X.S.project);
r_dsgraph_render_graph(0);
if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
Details->Render();
L->X.S.transluent = FALSE;
if (bSpecial)
{
Expand Down
2 changes: 1 addition & 1 deletion src/Layers/xrRenderPC_R4/r4_R_rain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ void CRender::render_rain()
RCache.set_xform_view(Fidentity);
RCache.set_xform_project(RainLight.X.D.combine);
r_dsgraph_render_graph(0);
// if (ps_r2_ls_flags.test(R2FLAG_SUN_DETAILS))
// if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
// Details->Render () ;
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/Layers/xrRenderPC_R4/r4_R_sun.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1004,7 +1004,7 @@ void CRender::render_sun_near()
RCache.set_xform_view(Fidentity);
RCache.set_xform_project(fuckingsun->X.D.combine);
r_dsgraph_render_graph(0);
if (ps_r2_ls_flags.test(R2FLAG_SUN_DETAILS))
if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
Details->Render();
fuckingsun->X.D.transluent = FALSE;
if (bSpecial)
Expand Down Expand Up @@ -1343,7 +1343,7 @@ void CRender::render_sun_cascade(u32 cascade_ind)
RCache.set_xform_view(Fidentity);
RCache.set_xform_project(fuckingsun->X.D.combine);
r_dsgraph_render_graph(0);
if (ps_r2_ls_flags.test(R2FLAG_SUN_DETAILS))
if (ps_r2_ls_flags.test(R2FLAG_DETAIL_SHADOW))
Details->Render();
fuckingsun->X.D.transluent = FALSE;
if (bSpecial)
Expand Down

0 comments on commit ce36942

Please sign in to comment.