]> git.tdb.fi Git - libs/gl.git/blobdiff - shaderlib/msp_interface.glsl
Add a separate constant to enable clipping in standard shaders
[libs/gl.git] / shaderlib / msp_interface.glsl
index ba6f3178cc5ca9954ffd5d6c5e66df43965aece4..b86d09bb32e4a5cdc3d49423f5336cf9d896cae1 100644 (file)
@@ -5,23 +5,6 @@ struct LightSourceParameters
        vec4 specular;
 };
 
-struct BasicMaterialParameters
-{
-       vec4 diffuse;
-       vec4 specular;
-       vec4 emission;
-       float shininess;
-       float reflectivity;
-};
-
-struct PbrMaterialParameters
-{
-       vec4 base_color;
-       vec4 emission;
-       float metalness;
-       float roughness;
-};
-
 struct ClipPlane
 {
        vec4 equation;
@@ -35,16 +18,6 @@ uniform Transform
        mat4 projection_matrix;
 };
 
-uniform BasicMaterial
-{
-       BasicMaterialParameters basic_material;
-};
-
-uniform PbrMaterial
-{
-       PbrMaterialParameters pbr_material;
-};
-
 uniform Lighting
 {
        // Declared as an array for compatibility reasons
@@ -57,30 +30,8 @@ uniform Lighting
        float fog_density;
 };
 
-uniform sampler2D diffuse_map;
-uniform sampler2D specular_map;
-uniform sampler2D shininess_map;
-uniform sampler2D base_color_map;
-uniform sampler2D metalness_map;
-uniform sampler2D roughness_map;
-uniform sampler2D occlusion_map;
-uniform sampler2D emission_map;
-uniform sampler2D normal_map;
-
-uniform sampler2DShadow shadow_map;
-uniform ShadowMap
-{
-       float shadow_darkness;
-       mat4 shd_eye_matrix;
-};
-
-uniform samplerCube environment_map;
-uniform EnvMap
-{
-       mat3 env_eye_matrix;
-};
-
-const int max_clip_planes = 0;
+layout(constant_id=auto) const bool use_clipping = false;
+layout(constant_id=auto) const int max_clip_planes = 8;
 uniform Clipping
 {
        ClipPlane clip_planes[max_clip_planes];
@@ -88,12 +39,15 @@ uniform Clipping
 
 #pragma MSP stage(vertex)
 layout(location=0) in vec4 vertex;
-layout(location=8) in vec4 texcoord;
-layout(location=3) in vec4 color;
+layout(location=1) in vec4 color;
 layout(location=2) in vec3 normal;
-layout(location=4) in vec3 tangent;
-layout(location=5) in vec3 binormal;
-layout(location=12) in vec4 instance_transform[3];
+layout(location=3) in vec3 tangent;
+layout(location=4) in vec3 binormal;
+layout(location=7) in vec4 texcoord;
+layout(location=8) in vec4 texcoord1;
+layout(location=9) in vec4 texcoord2;
+layout(location=10) in vec4 texcoord3;
+layout(location=13) in vec4 instance_transform[3];
 
 #pragma MSP stage(fragment)
 layout(location=0) out vec4 frag_color;