Skip to content

Commit 386e4c8

Browse files
committed
Some fixes, clean-up, and re-ordering of shaders
Fix screen-space shaders. Use a triangle IBO with vertexes being set directly in the vertex shader based on `gl_VertexID`. Re-order the shader stuff that was becoming a bit of a mess.
1 parent bee2061 commit 386e4c8

File tree

10 files changed

+293
-278
lines changed

10 files changed

+293
-278
lines changed

src.cmake

Lines changed: 41 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -139,60 +139,71 @@ set(RENDERERLIST
139139
)
140140

141141
set(GLSLSOURCELIST
142+
# Common shader libraries
142143
${ENGINE_DIR}/renderer/glsl_source/common.glsl
143144
${ENGINE_DIR}/renderer/glsl_source/common_cp.glsl
144145
${ENGINE_DIR}/renderer/glsl_source/shaderProfiler_vp.glsl
145146
${ENGINE_DIR}/renderer/glsl_source/shaderProfiler_fp.glsl
147+
148+
# Material system shaders
149+
${ENGINE_DIR}/renderer/glsl_source/material_cp.glsl
150+
${ENGINE_DIR}/renderer/glsl_source/material_vp.glsl
151+
${ENGINE_DIR}/renderer/glsl_source/material_fp.glsl
146152
${ENGINE_DIR}/renderer/glsl_source/clearSurfaces_cp.glsl
147153
${ENGINE_DIR}/renderer/glsl_source/cull_cp.glsl
148154
${ENGINE_DIR}/renderer/glsl_source/depthReduction_cp.glsl
149155
${ENGINE_DIR}/renderer/glsl_source/processSurfaces_cp.glsl
150-
${ENGINE_DIR}/renderer/glsl_source/material_cp.glsl
151-
${ENGINE_DIR}/renderer/glsl_source/material_vp.glsl
152-
${ENGINE_DIR}/renderer/glsl_source/material_fp.glsl
153-
${ENGINE_DIR}/renderer/glsl_source/skybox_vp.glsl
154-
${ENGINE_DIR}/renderer/glsl_source/ssao_fp.glsl
156+
157+
# Screen-space shaders
155158
${ENGINE_DIR}/renderer/glsl_source/screenSpace_vp.glsl
156-
${ENGINE_DIR}/renderer/glsl_source/vertexAnimation_vp.glsl
157-
${ENGINE_DIR}/renderer/glsl_source/vertexSimple_vp.glsl
158-
${ENGINE_DIR}/renderer/glsl_source/vertexSkinning_vp.glsl
159159
${ENGINE_DIR}/renderer/glsl_source/blur_fp.glsl
160160
${ENGINE_DIR}/renderer/glsl_source/cameraEffects_fp.glsl
161-
${ENGINE_DIR}/renderer/glsl_source/computeLight_fp.glsl
162161
${ENGINE_DIR}/renderer/glsl_source/contrast_fp.glsl
163-
${ENGINE_DIR}/renderer/glsl_source/debugShadowMap_fp.glsl
164-
${ENGINE_DIR}/renderer/glsl_source/debugShadowMap_vp.glsl
165-
${ENGINE_DIR}/renderer/glsl_source/deformVertexes_vp.glsl
166-
${ENGINE_DIR}/renderer/glsl_source/depthtile1_fp.glsl
162+
${ENGINE_DIR}/renderer/glsl_source/fogGlobal_fp.glsl
163+
${ENGINE_DIR}/renderer/glsl_source/fxaa_fp.glsl
164+
${ENGINE_DIR}/renderer/glsl_source/fxaa3_11_fp.glsl
165+
${ENGINE_DIR}/renderer/glsl_source/motionblur_fp.glsl
166+
${ENGINE_DIR}/renderer/glsl_source/ssao_fp.glsl
167+
168+
# Lighting shaders
167169
${ENGINE_DIR}/renderer/glsl_source/depthtile1_vp.glsl
170+
${ENGINE_DIR}/renderer/glsl_source/depthtile1_fp.glsl
168171
${ENGINE_DIR}/renderer/glsl_source/depthtile2_fp.glsl
169-
${ENGINE_DIR}/renderer/glsl_source/fogGlobal_fp.glsl
170-
${ENGINE_DIR}/renderer/glsl_source/fogQuake3_fp.glsl
172+
${ENGINE_DIR}/renderer/glsl_source/lighttile_vp.glsl
173+
${ENGINE_DIR}/renderer/glsl_source/lighttile_fp.glsl
174+
${ENGINE_DIR}/renderer/glsl_source/computeLight_fp.glsl
175+
${ENGINE_DIR}/renderer/glsl_source/reliefMapping_fp.glsl
176+
177+
# Common vertex shader libraries
178+
${ENGINE_DIR}/renderer/glsl_source/deformVertexes_vp.glsl
179+
${ENGINE_DIR}/renderer/glsl_source/vertexAnimation_vp.glsl
180+
${ENGINE_DIR}/renderer/glsl_source/vertexSimple_vp.glsl
181+
${ENGINE_DIR}/renderer/glsl_source/vertexSkinning_vp.glsl
182+
183+
# Regular shaders
184+
${ENGINE_DIR}/renderer/glsl_source/debugShadowMap_vp.glsl
185+
${ENGINE_DIR}/renderer/glsl_source/debugShadowMap_fp.glsl
171186
${ENGINE_DIR}/renderer/glsl_source/fogQuake3_vp.glsl
172-
${ENGINE_DIR}/renderer/glsl_source/forwardLighting_fp.glsl
187+
${ENGINE_DIR}/renderer/glsl_source/fogQuake3_fp.glsl
173188
${ENGINE_DIR}/renderer/glsl_source/forwardLighting_vp.glsl
174-
${ENGINE_DIR}/renderer/glsl_source/fxaa_fp.glsl
175-
${ENGINE_DIR}/renderer/glsl_source/fxaa3_11_fp.glsl
176-
${ENGINE_DIR}/renderer/glsl_source/generic_fp.glsl
189+
${ENGINE_DIR}/renderer/glsl_source/forwardLighting_fp.glsl
177190
${ENGINE_DIR}/renderer/glsl_source/generic_vp.glsl
178-
${ENGINE_DIR}/renderer/glsl_source/heatHaze_fp.glsl
191+
${ENGINE_DIR}/renderer/glsl_source/generic_fp.glsl
179192
${ENGINE_DIR}/renderer/glsl_source/heatHaze_vp.glsl
180-
${ENGINE_DIR}/renderer/glsl_source/lightMapping_fp.glsl
193+
${ENGINE_DIR}/renderer/glsl_source/heatHaze_fp.glsl
181194
${ENGINE_DIR}/renderer/glsl_source/lightMapping_vp.glsl
182-
${ENGINE_DIR}/renderer/glsl_source/lighttile_fp.glsl
183-
${ENGINE_DIR}/renderer/glsl_source/lighttile_vp.glsl
184-
${ENGINE_DIR}/renderer/glsl_source/liquid_fp.glsl
195+
${ENGINE_DIR}/renderer/glsl_source/lightMapping_fp.glsl
185196
${ENGINE_DIR}/renderer/glsl_source/liquid_vp.glsl
186-
${ENGINE_DIR}/renderer/glsl_source/motionblur_fp.glsl
187-
${ENGINE_DIR}/renderer/glsl_source/portal_fp.glsl
197+
${ENGINE_DIR}/renderer/glsl_source/liquid_fp.glsl
188198
${ENGINE_DIR}/renderer/glsl_source/portal_vp.glsl
189-
${ENGINE_DIR}/renderer/glsl_source/reflection_CB_fp.glsl
199+
${ENGINE_DIR}/renderer/glsl_source/portal_fp.glsl
190200
${ENGINE_DIR}/renderer/glsl_source/reflection_CB_vp.glsl
191-
${ENGINE_DIR}/renderer/glsl_source/reliefMapping_fp.glsl
192-
${ENGINE_DIR}/renderer/glsl_source/screen_fp.glsl
201+
${ENGINE_DIR}/renderer/glsl_source/reflection_CB_fp.glsl
193202
${ENGINE_DIR}/renderer/glsl_source/screen_vp.glsl
194-
${ENGINE_DIR}/renderer/glsl_source/shadowFill_fp.glsl
203+
${ENGINE_DIR}/renderer/glsl_source/screen_fp.glsl
195204
${ENGINE_DIR}/renderer/glsl_source/shadowFill_vp.glsl
205+
${ENGINE_DIR}/renderer/glsl_source/shadowFill_fp.glsl
206+
${ENGINE_DIR}/renderer/glsl_source/skybox_vp.glsl
196207
${ENGINE_DIR}/renderer/glsl_source/skybox_fp.glsl
197208
)
198209

src/engine/renderer/gl_shader.cpp

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -43,42 +43,45 @@ ShaderKind shaderKind = ShaderKind::Unknown;
4343

4444
// *INDENT-OFF*
4545

46-
GLShader_generic *gl_genericShader = nullptr;
47-
GLShader_genericMaterial *gl_genericShaderMaterial = nullptr;
4846
GLShader_cull *gl_cullShader = nullptr;
4947
GLShader_depthReduction *gl_depthReductionShader = nullptr;
5048
GLShader_clearSurfaces *gl_clearSurfacesShader = nullptr;
5149
GLShader_processSurfaces *gl_processSurfacesShader = nullptr;
50+
51+
GLShader_blur *gl_blurShader = nullptr;
52+
GLShader_cameraEffects *gl_cameraEffectsShader = nullptr;
53+
GLShader_contrast *gl_contrastShader = nullptr;
54+
GLShader_fogGlobal *gl_fogGlobalShader = nullptr;
55+
GLShader_fxaa *gl_fxaaShader = nullptr;
56+
GLShader_motionblur *gl_motionblurShader = nullptr;
57+
GLShader_ssao *gl_ssaoShader = nullptr;
58+
59+
GLShader_depthtile1 *gl_depthtile1Shader = nullptr;
60+
GLShader_depthtile2 *gl_depthtile2Shader = nullptr;
61+
GLShader_lighttile *gl_lighttileShader = nullptr;
62+
63+
GLShader_generic *gl_genericShader = nullptr;
64+
GLShader_genericMaterial *gl_genericShaderMaterial = nullptr;
5265
GLShader_lightMapping *gl_lightMappingShader = nullptr;
5366
GLShader_lightMappingMaterial *gl_lightMappingShaderMaterial = nullptr;
5467
GLShader_forwardLighting_omniXYZ *gl_forwardLightingShader_omniXYZ = nullptr;
5568
GLShader_forwardLighting_projXYZ *gl_forwardLightingShader_projXYZ = nullptr;
5669
GLShader_forwardLighting_directionalSun *gl_forwardLightingShader_directionalSun = nullptr;
57-
GLShader_shadowFill *gl_shadowFillShader = nullptr;
58-
GLShader_reflection *gl_reflectionShader = nullptr;
59-
GLShader_reflectionMaterial *gl_reflectionShaderMaterial = nullptr;
60-
GLShader_skybox *gl_skyboxShader = nullptr;
61-
GLShader_skyboxMaterial *gl_skyboxShaderMaterial = nullptr;
6270
GLShader_fogQuake3 *gl_fogQuake3Shader = nullptr;
6371
GLShader_fogQuake3Material *gl_fogQuake3ShaderMaterial = nullptr;
64-
GLShader_fogGlobal *gl_fogGlobalShader = nullptr;
6572
GLShader_heatHaze *gl_heatHazeShader = nullptr;
6673
GLShader_heatHazeMaterial *gl_heatHazeShaderMaterial = nullptr;
74+
GLShader_liquid *gl_liquidShader = nullptr;
75+
GLShader_liquidMaterial *gl_liquidShaderMaterial = nullptr;
76+
GLShader_portal *gl_portalShader = nullptr;
77+
GLShader_reflection *gl_reflectionShader = nullptr;
78+
GLShader_reflectionMaterial *gl_reflectionShaderMaterial = nullptr;
6779
GLShader_screen *gl_screenShader = nullptr;
6880
GLShader_screenMaterial *gl_screenShaderMaterial = nullptr;
69-
GLShader_portal *gl_portalShader = nullptr;
70-
GLShader_contrast *gl_contrastShader = nullptr;
71-
GLShader_cameraEffects *gl_cameraEffectsShader = nullptr;
72-
GLShader_blur *gl_blurShader = nullptr;
81+
GLShader_shadowFill *gl_shadowFillShader = nullptr;
82+
GLShader_skybox *gl_skyboxShader = nullptr;
83+
GLShader_skyboxMaterial *gl_skyboxShaderMaterial = nullptr;
7384
GLShader_debugShadowMap *gl_debugShadowMapShader = nullptr;
74-
GLShader_liquid *gl_liquidShader = nullptr;
75-
GLShader_liquidMaterial *gl_liquidShaderMaterial = nullptr;
76-
GLShader_motionblur *gl_motionblurShader = nullptr;
77-
GLShader_ssao *gl_ssaoShader = nullptr;
78-
GLShader_depthtile1 *gl_depthtile1Shader = nullptr;
79-
GLShader_depthtile2 *gl_depthtile2Shader = nullptr;
80-
GLShader_lighttile *gl_lighttileShader = nullptr;
81-
GLShader_fxaa *gl_fxaaShader = nullptr;
8285
GLShaderManager gl_shaderManager;
8386

8487
namespace // Implementation details

src/engine/renderer/gl_shader.h

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4785,42 +4785,45 @@ std::string GetShaderPath();
47854785

47864786
extern ShaderKind shaderKind;
47874787

4788-
extern GLShader_generic *gl_genericShader;
4789-
extern GLShader_genericMaterial *gl_genericShaderMaterial;
47904788
extern GLShader_cull *gl_cullShader;
47914789
extern GLShader_depthReduction *gl_depthReductionShader;
47924790
extern GLShader_clearSurfaces *gl_clearSurfacesShader;
47934791
extern GLShader_processSurfaces *gl_processSurfacesShader;
4792+
4793+
extern GLShader_blur *gl_blurShader;
4794+
extern GLShader_cameraEffects *gl_cameraEffectsShader;
4795+
extern GLShader_contrast *gl_contrastShader;
4796+
extern GLShader_fogGlobal *gl_fogGlobalShader;
4797+
extern GLShader_fxaa *gl_fxaaShader;
4798+
extern GLShader_motionblur *gl_motionblurShader;
4799+
extern GLShader_ssao *gl_ssaoShader;
4800+
4801+
extern GLShader_depthtile1 *gl_depthtile1Shader;
4802+
extern GLShader_depthtile2 *gl_depthtile2Shader;
4803+
extern GLShader_lighttile *gl_lighttileShader;
4804+
4805+
extern GLShader_generic *gl_genericShader;
4806+
extern GLShader_genericMaterial *gl_genericShaderMaterial;
47944807
extern GLShader_lightMapping *gl_lightMappingShader;
47954808
extern GLShader_lightMappingMaterial *gl_lightMappingShaderMaterial;
47964809
extern GLShader_forwardLighting_omniXYZ *gl_forwardLightingShader_omniXYZ;
47974810
extern GLShader_forwardLighting_projXYZ *gl_forwardLightingShader_projXYZ;
47984811
extern GLShader_forwardLighting_directionalSun *gl_forwardLightingShader_directionalSun;
4799-
extern GLShader_shadowFill *gl_shadowFillShader;
4800-
extern GLShader_reflection *gl_reflectionShader;
4801-
extern GLShader_reflectionMaterial *gl_reflectionShaderMaterial;
4802-
extern GLShader_skybox *gl_skyboxShader;
4803-
extern GLShader_skyboxMaterial *gl_skyboxShaderMaterial;
48044812
extern GLShader_fogQuake3 *gl_fogQuake3Shader;
48054813
extern GLShader_fogQuake3Material *gl_fogQuake3ShaderMaterial;
4806-
extern GLShader_fogGlobal *gl_fogGlobalShader;
48074814
extern GLShader_heatHaze *gl_heatHazeShader;
48084815
extern GLShader_heatHazeMaterial *gl_heatHazeShaderMaterial;
4816+
extern GLShader_liquid *gl_liquidShader;
4817+
extern GLShader_liquidMaterial *gl_liquidShaderMaterial;
4818+
extern GLShader_portal *gl_portalShader;
4819+
extern GLShader_reflection *gl_reflectionShader;
4820+
extern GLShader_reflectionMaterial *gl_reflectionShaderMaterial;
48094821
extern GLShader_screen *gl_screenShader;
48104822
extern GLShader_screenMaterial *gl_screenShaderMaterial;
4811-
extern GLShader_portal *gl_portalShader;
4812-
extern GLShader_contrast *gl_contrastShader;
4813-
extern GLShader_cameraEffects *gl_cameraEffectsShader;
4814-
extern GLShader_blur *gl_blurShader;
4823+
extern GLShader_shadowFill *gl_shadowFillShader;
4824+
extern GLShader_skybox *gl_skyboxShader;
4825+
extern GLShader_skyboxMaterial *gl_skyboxShaderMaterial;
48154826
extern GLShader_debugShadowMap *gl_debugShadowMapShader;
4816-
extern GLShader_liquid *gl_liquidShader;
4817-
extern GLShader_liquidMaterial *gl_liquidShaderMaterial;
4818-
extern GLShader_motionblur *gl_motionblurShader;
4819-
extern GLShader_ssao *gl_ssaoShader;
4820-
extern GLShader_depthtile1 *gl_depthtile1Shader;
4821-
extern GLShader_depthtile2 *gl_depthtile2Shader;
4822-
extern GLShader_lighttile *gl_lighttileShader;
4823-
extern GLShader_fxaa *gl_fxaaShader;
48244827
extern GLShaderManager gl_shaderManager;
48254828

48264829
#endif // GL_SHADER_H

src/engine/renderer/glsl_source/screenSpace_vp.glsl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3434

3535
/* screenSpace_vp.glsl */
3636

37-
IN vec3 attr_Position;
37+
const vec2 vertices[3] = vec2[3] ( vec2( -1.0f, -1.0f ), vec2( 3.0f, -1.0f ), vec2( -1.0f, 3.0f ) );
3838

3939
void main() {
40-
gl_Position = vec4( attr_Position, 1.0 );
40+
gl_Position = vec4( vertices[gl_VertexID], 0.0f, 1.0f );
4141
}

0 commit comments

Comments
 (0)