@@ -334,14 +334,6 @@ void UpdateSurfaceDataLiquid( uint32_t* materials, shaderStage_t* pStage, bool,
334334 gl_liquidShaderMaterial->WriteUniformsToBuffer ( materials, GLShader::MATERIAL );
335335}
336336
337- void UpdateSurfaceDataFog ( uint32_t * materials, shaderStage_t* pStage, bool , bool , bool ) {
338- // shader_t* shader = pStage->shader;
339-
340- materials += pStage->bufferOffset ;
341-
342- gl_fogQuake3ShaderMaterial->WriteUniformsToBuffer ( materials, GLShader::MATERIAL );
343- }
344-
345337/*
346338* Buffer layout:
347339* // Static surfaces data:
@@ -746,10 +738,10 @@ class ListMaterialsCmd : public Cmd::StaticCmd {
746738 shaderSortName.at ( materialPack.fromSort ), shaderSortName.at ( materialPack.toSort ) );
747739 for ( const Material& material : materialPack.materials ) {
748740 Print ( " id: %u, sync: %5s, stateBits: %10x, GLShader: %s, GLProgramID: %u,"
749- " deform: %i, fog: %i, drawCmdCount: %u" ,
741+ " deform: %i, drawCmdCount: %u" ,
750742 material.id , material.useSync , material.stateBits ,
751743 material.shader ->_name , material.program ,
752- material.deformIndex , material.fog , material. drawCommandCount );
744+ material.deformIndex , material.drawCommandCount );
753745 }
754746 }
755747 }
@@ -762,7 +754,6 @@ static std::string GetStageInfo( const shaderStage_t* pStage, const uint32_t dyn
762754 { BindShaderGeneric3D, " genericMaterial " },
763755 { BindShaderLightMapping, " lightMappingMaterial" },
764756 { BindShaderHeatHaze, " heatHazeMaterial " },
765- { BindShaderFog, " fogQuake3Material " },
766757 { BindShaderLiquid, " liquidMaterial " },
767758 { BindShaderScreen, " screenMaterial " },
768759 { BindShaderSkybox, " skyboxMaterial " },
@@ -1090,43 +1081,6 @@ void BindShaderLiquid( Material* material ) {
10901081 gl_liquidShaderMaterial->SetUniform_PortalMapBindless ( GL_BindToTMU ( 1 , tr.portalRenderImage ) );
10911082}
10921083
1093- void BindShaderFog ( Material* material ) {
1094- // Bind shader program.
1095- gl_fogQuake3ShaderMaterial->SetDeform ( material->deformIndex );
1096- gl_fogQuake3ShaderMaterial->BindProgram ();
1097-
1098- // Set shader uniforms.
1099- const fog_t * fog = tr.world ->fogs + material->fog ;
1100-
1101- // rotate the gradient vector for this orientation
1102- float eyeT;
1103- vec4_t fogDepthVector;
1104- if ( fog->hasSurface ) {
1105- VectorCopy ( fog->surface , fogDepthVector );
1106- fogDepthVector[ 3 ] = -fog->surface [ 3 ];
1107- eyeT = DotProduct ( backEnd.viewParms .orientation .origin , fogDepthVector ) + fogDepthVector[ 3 ];
1108- } else {
1109- Vector4Set ( fogDepthVector, 0 , 0 , 0 , 1 );
1110- eyeT = 1 ; // non-surface fog always has eye inside
1111- }
1112-
1113- // Note: things that seemingly should be per-shader or per-surface can be set as global uniforms
1114- // since fognum is grouped with the GL state stuff, segregating each fognum in a separate draw call.
1115-
1116- gl_fogQuake3ShaderMaterial->SetUniform_ViewOrigin ( backEnd.viewParms .orientation .origin );
1117- gl_fogQuake3ShaderMaterial->SetUniform_FogGradient (
1118- 1 .0f / fog->shader ->fogParms .depthForOpaque , fog->shader ->fogParms .falloffExp );
1119- gl_fogQuake3ShaderMaterial->SetUniform_FogDepthVector ( fogDepthVector );
1120- gl_fogQuake3ShaderMaterial->SetUniform_FogEyeT ( eyeT );
1121-
1122- gl_fogQuake3ShaderMaterial->SetUniform_ColorGlobal_Uint ( fog->shader ->fogParms .color );
1123-
1124- gl_fogQuake3ShaderMaterial->SetUniform_ModelMatrix ( backEnd.orientation .transformMatrix );
1125- gl_fogQuake3ShaderMaterial->SetUniform_ModelViewProjectionMatrix ( glState.modelViewProjectionMatrix [glState.stackIndex ] );
1126-
1127- gl_fogQuake3ShaderMaterial->SetUniform_Time ( backEnd.refdef .floatTime - backEnd.currentEntity ->e .shaderTime );
1128- }
1129-
11301084void ProcessMaterialNONE ( Material*, shaderStage_t*, MaterialSurface* ) {
11311085 ASSERT_UNREACHABLE ();
11321086}
@@ -1264,15 +1218,6 @@ void ProcessMaterialLiquid( Material* material, shaderStage_t* pStage, MaterialS
12641218 material->program = gl_liquidShaderMaterial->GetProgram ( materialSystem.buildOneShader );
12651219}
12661220
1267- void ProcessMaterialFog ( Material* material, shaderStage_t* pStage, MaterialSurface* surface ) {
1268- material->shader = gl_fogQuake3ShaderMaterial;
1269- material->fog = surface->fog ;
1270-
1271- gl_fogQuake3ShaderMaterial->SetDeform ( pStage->deformIndex );
1272-
1273- material->program = gl_fogQuake3ShaderMaterial->GetProgram ( materialSystem.buildOneShader );
1274- }
1275-
12761221void MaterialSystem::AddStage ( MaterialSurface* surface, shaderStage_t* pStage, uint32_t stage,
12771222 const bool mayUseVertexOverbright, const bool vertexLit, const bool fullbright ) {
12781223 const int variant = ( mayUseVertexOverbright ? ShaderStageVariant::VERTEX_OVERBRIGHT : 0 )
@@ -1496,7 +1441,7 @@ void MaterialSystem::ProcessStage( MaterialSurface* surface, shaderStage_t* pSta
14961441/* This will only generate a material itself
14971442A material represents a distinct global OpenGL state (e. g. blend function, depth test, depth write etc.)
14981443Materials can have a dependency on other materials to make sure that consecutive stages are rendered in the proper order */
1499- void MaterialSystem::GenerateMaterial ( MaterialSurface* surface, int globalFog ) {
1444+ void MaterialSystem::GenerateMaterial ( MaterialSurface* surface ) {
15001445 uint32_t stage = 0 ;
15011446 uint32_t previousMaterialID = 0 ;
15021447
@@ -1516,13 +1461,6 @@ void MaterialSystem::GenerateMaterial( MaterialSurface* surface, int globalFog )
15161461
15171462 surface->stages ++;
15181463 }
1519-
1520- if ( !surface->shader ->noFog && surface->fog >= 1 && surface->fog != globalFog ) {
1521- uint32_t unused;
1522- ProcessStage ( surface, surface->shader ->fogShader ->stages , surface->shader ->fogShader , packIDs, stage, unused, true );
1523-
1524- surface->stages ++;
1525- }
15261464}
15271465
15281466void MaterialSystem::SetWorldBounds ( vec3_t bounds[2 ] ) {
@@ -1918,7 +1856,6 @@ bool MaterialSystem::AddPortalSurface( uint32_t viewID, PortalSurface* portalSur
19181856 {
19191857 drawSurf.bspSurface = portalSurfaces[portalSurface->drawSurfID ].bspSurface ;
19201858 drawSurf.entity = &tr.worldEntity ;
1921- drawSurf.fog = portalSurfaces[portalSurface->drawSurfID ].fog ;
19221859 drawSurf.portalNum = portalSurfaces[portalSurface->drawSurfID ].portalNum ;
19231860 drawSurf.shader = portalSurfaces[portalSurface->drawSurfID ].shader ;
19241861 drawSurf.surface = portalSurfaces[portalSurface->drawSurfID ].surface ;
@@ -1994,7 +1931,7 @@ void MaterialSystem::AddAutospriteSurfaces() {
19941931 for ( const bspSurface_t* surface : autospriteSurfaces )
19951932 {
19961933 R_AddDrawSurf ( surface->data , surface->shader ,
1997- surface->lightmapNum , surface-> fogIndex , true );
1934+ surface->lightmapNum , true );
19981935 }
19991936}
20001937
@@ -2046,7 +1983,7 @@ void MaterialSystem::RenderMaterials( const shaderSort_t fromSort, const shaderS
20461983 }
20471984
20481985 tr.drawingSky = true ;
2049- Tess_Begin ( Tess_StageIteratorSky, skyShader, false , -1 , 0 , false );
1986+ Tess_Begin ( Tess_StageIteratorSky, skyShader, false , -1 , false );
20501987 Tess_End ();
20511988 }
20521989 }
@@ -2096,12 +2033,6 @@ void MaterialSystem::RenderMaterial( Material& material, const uint32_t viewID )
20962033 stateBits &= ~( GLS_SRCBLEND_BITS | GLS_DSTBLEND_BITS );
20972034 }
20982035
2099- if ( material.shaderBinder == BindShaderFog ) {
2100- if ( r_noFog->integer || ( backEnd.refdef .rdflags & RDF_NOWORLDMODEL ) ) {
2101- return ;
2102- }
2103- }
2104-
21052036 backEnd.currentEntity = &tr.worldEntity ;
21062037
21072038 GL_State ( stateBits );
0 commit comments