Skip to content

Commit 59d9757

Browse files
committed
OpenGL: Fixed some blenders. And black fog is better than yellow I think :D
1 parent 4ac5bb3 commit 59d9757

File tree

5 files changed

+38
-13
lines changed

5 files changed

+38
-13
lines changed

src/Layers/xrRender/dxEnvironmentRender.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ class CBlender_skybox : public IBlender
2727
C.r_Sampler_clf("s_sky0", "$null");
2828
C.r_Sampler_clf("s_sky1", "$null");
2929
C.r_Sampler_rtf("s_tonemap", "$user$tonemap"); //. hack
30+
#ifdef USE_OGL
31+
C.PassSET_ZB(FALSE, FALSE);
32+
#endif // USE_OGL
3033
#endif // USE_DX10
3134
C.r_End();
3235
}

src/Layers/xrRenderPC_GL/blender_combine.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ void CBlender_combine::Compile(CBlender_Compile& C)
2828
C.r_Sampler_clf("env_s1", r2_T_envs1);
2929
C.r_Sampler_clf("sky_s0", r2_T_sky0);
3030
C.r_Sampler_clf("sky_s1", r2_T_sky1);
31+
C.r_Sampler_rtf("s_occ", r2_RT_ssao_temp);
32+
C.r_Sampler_rtf("s_half_depth", r2_RT_half_depth);
3133

3234
jitter(C);
3335

@@ -107,6 +109,8 @@ void CBlender_combine_msaa::Compile(CBlender_Compile& C)
107109
C.r_Sampler_clf("env_s1", r2_T_envs1);
108110
C.r_Sampler_clf("sky_s0", r2_T_sky0);
109111
C.r_Sampler_clf("sky_s1", r2_T_sky1);
112+
C.r_Sampler_rtf("s_occ", r2_RT_ssao_temp);
113+
C.r_Sampler_rtf("s_half_depth", r2_RT_half_depth);
110114

111115
jitter(C);
112116

@@ -118,7 +122,7 @@ void CBlender_combine_msaa::Compile(CBlender_Compile& C)
118122
C.r_Sampler_rtf("s_normal", r2_RT_N);
119123
C.r_Sampler_clf("s_image", r2_RT_generic0);
120124
C.r_Sampler_clf("s_bloom", r2_RT_bloom1);
121-
C.r_Sampler_clf("s_distort", r2_RT_generic1);
125+
C.r_Sampler_clf("s_distort", r2_RT_generic1_r);
122126
C.r_End();
123127
break;
124128
case 2: // non-AA
@@ -128,7 +132,7 @@ void CBlender_combine_msaa::Compile(CBlender_Compile& C)
128132
C.r_Sampler_rtf("s_normal", r2_RT_N);
129133
C.r_Sampler_clf("s_image", r2_RT_generic0);
130134
C.r_Sampler_clf("s_bloom", r2_RT_bloom1);
131-
C.r_Sampler_clf("s_distort", r2_RT_generic1);
135+
C.r_Sampler_clf("s_distort", r2_RT_generic1_r);
132136
C.r_End();
133137
break;
134138
case 3: // aa-edge-detection + AA :) + DISTORTION
@@ -137,7 +141,7 @@ void CBlender_combine_msaa::Compile(CBlender_Compile& C)
137141
C.r_Sampler_rtf("s_normal", r2_RT_N);
138142
C.r_Sampler_clf("s_image", r2_RT_generic0);
139143
C.r_Sampler_clf("s_bloom", r2_RT_bloom1);
140-
C.r_Sampler_clf("s_distort", r2_RT_generic1);
144+
C.r_Sampler_clf("s_distort", r2_RT_generic1_r);
141145
C.r_End();
142146
break;
143147
case 4: // non-AA + DISTORTION
@@ -147,7 +151,7 @@ void CBlender_combine_msaa::Compile(CBlender_Compile& C)
147151
C.r_Sampler_rtf("s_normal", r2_RT_N);
148152
C.r_Sampler_clf("s_image", r2_RT_generic0);
149153
C.r_Sampler_clf("s_bloom", r2_RT_bloom1);
150-
C.r_Sampler_clf("s_distort", r2_RT_generic1);
154+
C.r_Sampler_clf("s_distort", r2_RT_generic1_r);
151155
C.r_End();
152156
break;
153157
case 5: // post-processing

src/Layers/xrRenderPC_GL/blender_deffer_flat.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@ void CBlender_deffer_flat::Save(IWriter& fs)
2121
xrPWRITE_PROP (fs,"Tessellation", xrPID_TOKEN, oTessellation);
2222
I.ID = 0;
2323
xr_strcpy(I.str, "NO_TESS");
24-
fs.w(&I, sizeof I);
24+
fs.w(&I, sizeof(I));
2525
I.ID = 1;
2626
xr_strcpy(I.str, "TESS_PN");
27-
fs.w(&I, sizeof I);
27+
fs.w(&I, sizeof(I));
2828
I.ID = 2;
2929
xr_strcpy(I.str, "TESS_HM");
30-
fs.w(&I, sizeof I);
30+
fs.w(&I, sizeof(I));
3131
I.ID = 3;
3232
xr_strcpy(I.str, "TESS_PN+HM");
33-
fs.w(&I, sizeof I);
33+
fs.w(&I, sizeof(I));
3434
}
3535

3636
void CBlender_deffer_flat::Load(IReader& fs, u16 version)

src/Layers/xrRenderPC_GL/blender_deffer_model.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,16 @@ void CBlender_deffer_model::Save(IWriter& fs)
2727
xrPWRITE_PROP (fs,"Tessellation", xrPID_TOKEN, oTessellation);
2828
I.ID = 0;
2929
xr_strcpy(I.str, "NO_TESS");
30-
fs.w(&I, sizeof I);
30+
fs.w(&I, sizeof(I));
3131
I.ID = 1;
3232
xr_strcpy(I.str, "TESS_PN");
33-
fs.w(&I, sizeof I);
33+
fs.w(&I, sizeof(I));
3434
I.ID = 2;
3535
xr_strcpy(I.str, "TESS_HM");
36-
fs.w(&I, sizeof I);
36+
fs.w(&I, sizeof(I));
3737
I.ID = 3;
3838
xr_strcpy(I.str, "TESS_PN+HM");
39-
fs.w(&I, sizeof I);
39+
fs.w(&I, sizeof(I));
4040
}
4141

4242
void CBlender_deffer_model::Load(IReader& fs, u16 version)

src/Layers/xrRenderPC_GL/gl_rendertarget_phase_combine.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,20 @@ void CRenderTarget::phase_combine()
4646

4747
//*** exposure-pipeline
4848
u32 gpu_id = Device.dwFrame % HW.Caps.iGPUNum;
49+
// TODO: Uncomment this and test in the game
50+
/*
51+
if (Device.m_SecondViewport.IsSVPActive()) //--#SM+#-- +SecondVP+
52+
{
53+
// clang-format off
54+
gpu_id = (Device.dwFrame - 1) % HW.Caps.iGPUNum; // Ôèêñ "ìåðöàíèÿ" tonemapping (HDR) ïîñëå âûêëþ÷åíèÿ äâîéíîãî ðåíäåðà.
55+
// Ïîáî÷íûé ýôôåêò - ïðè ðàáîòå äâîéíîãî ðåíäåðà ñêîðîñòü èçìåíåíèÿ tonemapping (HDR) ïàäàåò â äâà ðàçà
56+
// Ìåðöàíèå ñâÿçàíî ñ òåì, ÷òî HDR äëÿ ñâîåé ðàáîòû õðàíèò óìåíüøåííèå êîïèè "ïðîøëûõ êàäðîâ"
57+
// Ýòè êàäðû îòíîñèòåëüíî ïîõîæè äðóã íà äðóãà, îäíàêî ïðè âêëþ÷åííîì äâîéíîì ðåíäåðå
58+
// â ïîëîâèíå êàäðîâ îêàçûâàåòñÿ êàðòèíêà èç âòîðîãî ðåíäåðà, è ïîñêîëüêó îíà ÷àñòî ìîæåò îòëè÷àòñÿ ïî öâåòó\ÿðêîñòè
59+
// òî ïðè ïîïûòêå ñîçäàíèÿ "ïëàâíîãî" ïåðåõîäà ìåæäó íèìè ïîëó÷àåòñÿ ýôôåêò ìåðöàíèÿ
60+
// clang-format on
61+
}*/
62+
4963
{
5064
t_LUM_src->surface_set(GL_TEXTURE_2D, rt_LUM_pool[gpu_id * 2 + 0]->pRT);
5165
t_LUM_dest->surface_set(GL_TEXTURE_2D, rt_LUM_pool[gpu_id * 2 + 1]->pRT);
@@ -67,12 +81,16 @@ void CRenderTarget::phase_combine()
6781
phase_ssao();
6882
}
6983

84+
FLOAT ColorRGBA[4] = {0.0f, 0.0f, 0.0f, 0.0f};
7085
// low/hi RTs
7186
if (!RImplementation.o.dx10_msaa)
87+
{
88+
HW.pDevice->ClearRenderTargetView(rt_Generic_0->pRT, ColorRGBA);
89+
HW.pDevice->ClearRenderTargetView(rt_Generic_1->pRT, ColorRGBA);
7290
u_setrt(rt_Generic_0, rt_Generic_1, 0, HW.pBaseZB);
91+
}
7392
else
7493
{
75-
FLOAT ColorRGBA[4] = {0.0f, 0.0f, 0.0f, 0.0f};
7694
HW.pDevice->ClearRenderTargetView(rt_Generic_0_r->pRT, ColorRGBA);
7795
HW.pDevice->ClearRenderTargetView(rt_Generic_1_r->pRT, ColorRGBA);
7896
u_setrt(rt_Generic_0_r, rt_Generic_1_r, 0, RImplementation.Target->rt_MSAADepth->pZRT);

0 commit comments

Comments
 (0)