Skip to content

Commit

Permalink
OpenGL: Fixed some blenders. And black fog is better than yellow I th…
Browse files Browse the repository at this point in the history
…ink :D
  • Loading branch information
SkyLoaderr committed Nov 9, 2018
1 parent 4ac5bb3 commit 59d9757
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 13 deletions.
3 changes: 3 additions & 0 deletions src/Layers/xrRender/dxEnvironmentRender.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ class CBlender_skybox : public IBlender
C.r_Sampler_clf("s_sky0", "$null");
C.r_Sampler_clf("s_sky1", "$null");
C.r_Sampler_rtf("s_tonemap", "$user$tonemap"); //. hack
#ifdef USE_OGL
C.PassSET_ZB(FALSE, FALSE);
#endif // USE_OGL
#endif // USE_DX10
C.r_End();
}
Expand Down
12 changes: 8 additions & 4 deletions src/Layers/xrRenderPC_GL/blender_combine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ void CBlender_combine::Compile(CBlender_Compile& C)
C.r_Sampler_clf("env_s1", r2_T_envs1);
C.r_Sampler_clf("sky_s0", r2_T_sky0);
C.r_Sampler_clf("sky_s1", r2_T_sky1);
C.r_Sampler_rtf("s_occ", r2_RT_ssao_temp);
C.r_Sampler_rtf("s_half_depth", r2_RT_half_depth);

jitter(C);

Expand Down Expand Up @@ -107,6 +109,8 @@ void CBlender_combine_msaa::Compile(CBlender_Compile& C)
C.r_Sampler_clf("env_s1", r2_T_envs1);
C.r_Sampler_clf("sky_s0", r2_T_sky0);
C.r_Sampler_clf("sky_s1", r2_T_sky1);
C.r_Sampler_rtf("s_occ", r2_RT_ssao_temp);
C.r_Sampler_rtf("s_half_depth", r2_RT_half_depth);

jitter(C);

Expand All @@ -118,7 +122,7 @@ void CBlender_combine_msaa::Compile(CBlender_Compile& C)
C.r_Sampler_rtf("s_normal", r2_RT_N);
C.r_Sampler_clf("s_image", r2_RT_generic0);
C.r_Sampler_clf("s_bloom", r2_RT_bloom1);
C.r_Sampler_clf("s_distort", r2_RT_generic1);
C.r_Sampler_clf("s_distort", r2_RT_generic1_r);
C.r_End();
break;
case 2: // non-AA
Expand All @@ -128,7 +132,7 @@ void CBlender_combine_msaa::Compile(CBlender_Compile& C)
C.r_Sampler_rtf("s_normal", r2_RT_N);
C.r_Sampler_clf("s_image", r2_RT_generic0);
C.r_Sampler_clf("s_bloom", r2_RT_bloom1);
C.r_Sampler_clf("s_distort", r2_RT_generic1);
C.r_Sampler_clf("s_distort", r2_RT_generic1_r);
C.r_End();
break;
case 3: // aa-edge-detection + AA :) + DISTORTION
Expand All @@ -137,7 +141,7 @@ void CBlender_combine_msaa::Compile(CBlender_Compile& C)
C.r_Sampler_rtf("s_normal", r2_RT_N);
C.r_Sampler_clf("s_image", r2_RT_generic0);
C.r_Sampler_clf("s_bloom", r2_RT_bloom1);
C.r_Sampler_clf("s_distort", r2_RT_generic1);
C.r_Sampler_clf("s_distort", r2_RT_generic1_r);
C.r_End();
break;
case 4: // non-AA + DISTORTION
Expand All @@ -147,7 +151,7 @@ void CBlender_combine_msaa::Compile(CBlender_Compile& C)
C.r_Sampler_rtf("s_normal", r2_RT_N);
C.r_Sampler_clf("s_image", r2_RT_generic0);
C.r_Sampler_clf("s_bloom", r2_RT_bloom1);
C.r_Sampler_clf("s_distort", r2_RT_generic1);
C.r_Sampler_clf("s_distort", r2_RT_generic1_r);
C.r_End();
break;
case 5: // post-processing
Expand Down
8 changes: 4 additions & 4 deletions src/Layers/xrRenderPC_GL/blender_deffer_flat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,16 @@ void CBlender_deffer_flat::Save(IWriter& fs)
xrPWRITE_PROP (fs,"Tessellation", xrPID_TOKEN, oTessellation);
I.ID = 0;
xr_strcpy(I.str, "NO_TESS");
fs.w(&I, sizeof I);
fs.w(&I, sizeof(I));
I.ID = 1;
xr_strcpy(I.str, "TESS_PN");
fs.w(&I, sizeof I);
fs.w(&I, sizeof(I));
I.ID = 2;
xr_strcpy(I.str, "TESS_HM");
fs.w(&I, sizeof I);
fs.w(&I, sizeof(I));
I.ID = 3;
xr_strcpy(I.str, "TESS_PN+HM");
fs.w(&I, sizeof I);
fs.w(&I, sizeof(I));
}

void CBlender_deffer_flat::Load(IReader& fs, u16 version)
Expand Down
8 changes: 4 additions & 4 deletions src/Layers/xrRenderPC_GL/blender_deffer_model.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,16 @@ void CBlender_deffer_model::Save(IWriter& fs)
xrPWRITE_PROP (fs,"Tessellation", xrPID_TOKEN, oTessellation);
I.ID = 0;
xr_strcpy(I.str, "NO_TESS");
fs.w(&I, sizeof I);
fs.w(&I, sizeof(I));
I.ID = 1;
xr_strcpy(I.str, "TESS_PN");
fs.w(&I, sizeof I);
fs.w(&I, sizeof(I));
I.ID = 2;
xr_strcpy(I.str, "TESS_HM");
fs.w(&I, sizeof I);
fs.w(&I, sizeof(I));
I.ID = 3;
xr_strcpy(I.str, "TESS_PN+HM");
fs.w(&I, sizeof I);
fs.w(&I, sizeof(I));
}

void CBlender_deffer_model::Load(IReader& fs, u16 version)
Expand Down
20 changes: 19 additions & 1 deletion src/Layers/xrRenderPC_GL/gl_rendertarget_phase_combine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,20 @@ void CRenderTarget::phase_combine()

//*** exposure-pipeline
u32 gpu_id = Device.dwFrame % HW.Caps.iGPUNum;
// TODO: Uncomment this and test in the game
/*
if (Device.m_SecondViewport.IsSVPActive()) //--#SM+#-- +SecondVP+
{
// clang-format off
gpu_id = (Device.dwFrame - 1) % HW.Caps.iGPUNum; // Ôèêñ "ìåðöàíèÿ" tonemapping (HDR) ïîñëå âûêëþ÷åíèÿ äâîéíîãî ðåíäåðà.
// Ïîáî÷íûé ýôôåêò - ïðè ðàáîòå äâîéíîãî ðåíäåðà ñêîðîñòü èçìåíåíèÿ tonemapping (HDR) ïàäàåò â äâà ðàçà
// Ìåðöàíèå ñâÿçàíî ñ òåì, ÷òî HDR äëÿ ñâîåé ðàáîòû õðàíèò óìåíüøåííèå êîïèè "ïðîøëûõ êàäðîâ"
// Ýòè êàäðû îòíîñèòåëüíî ïîõîæè äðóã íà äðóãà, îäíàêî ïðè âêëþ÷åííîì äâîéíîì ðåíäåðå
// â ïîëîâèíå êàäðîâ îêàçûâàåòñÿ êàðòèíêà èç âòîðîãî ðåíäåðà, è ïîñêîëüêó îíà ÷àñòî ìîæåò îòëè÷àòñÿ ïî öâåòó\ÿðêîñòè
// òî ïðè ïîïûòêå ñîçäàíèÿ "ïëàâíîãî" ïåðåõîäà ìåæäó íèìè ïîëó÷àåòñÿ ýôôåêò ìåðöàíèÿ
// clang-format on
}*/

{
t_LUM_src->surface_set(GL_TEXTURE_2D, rt_LUM_pool[gpu_id * 2 + 0]->pRT);
t_LUM_dest->surface_set(GL_TEXTURE_2D, rt_LUM_pool[gpu_id * 2 + 1]->pRT);
Expand All @@ -67,12 +81,16 @@ void CRenderTarget::phase_combine()
phase_ssao();
}

FLOAT ColorRGBA[4] = {0.0f, 0.0f, 0.0f, 0.0f};
// low/hi RTs
if (!RImplementation.o.dx10_msaa)
{
HW.pDevice->ClearRenderTargetView(rt_Generic_0->pRT, ColorRGBA);
HW.pDevice->ClearRenderTargetView(rt_Generic_1->pRT, ColorRGBA);
u_setrt(rt_Generic_0, rt_Generic_1, 0, HW.pBaseZB);
}
else
{
FLOAT ColorRGBA[4] = {0.0f, 0.0f, 0.0f, 0.0f};
HW.pDevice->ClearRenderTargetView(rt_Generic_0_r->pRT, ColorRGBA);
HW.pDevice->ClearRenderTargetView(rt_Generic_1_r->pRT, ColorRGBA);
u_setrt(rt_Generic_0_r, rt_Generic_1_r, 0, RImplementation.Target->rt_MSAADepth->pZRT);
Expand Down

0 comments on commit 59d9757

Please sign in to comment.