]> git.tdb.fi Git - libs/gl.git/blobdiff - shaderlib/cooktorrance.glsl
Add GLSL keywords for overriding functions
[libs/gl.git] / shaderlib / cooktorrance.glsl
index 6a7ebb387fdf3e39aa772940b22b9a5b02007da9..c866058de4dbd0c6dd06fd7b28ad72c25f5b7c44 100644 (file)
@@ -2,17 +2,17 @@ import msp_interface;
 import common;
 import shadow;
 
-const bool use_base_color_map = false;
-const bool use_metalness_map = false;
-const bool use_roughness_map = false;
-const bool use_occlusion_map = false;
-const bool use_emission = false;
-const bool use_emission_map = false;
+layout(constant_id=auto) const bool use_base_color_map = false;
+layout(constant_id=auto) const bool use_metalness_map = false;
+layout(constant_id=auto) const bool use_roughness_map = false;
+layout(constant_id=auto) const bool use_occlusion_map = false;
+layout(constant_id=auto) const bool use_emission = false;
+layout(constant_id=auto) const bool use_emission_map = false;
 
 const float PI = 3.1415926535;
 
 #pragma MSP stage(fragment)
-vec4 get_base_color()
+virtual vec4 get_base_color()
 {
        if(use_base_color_map)
                return texture(base_color_map, texcoord.xy);
@@ -20,7 +20,7 @@ vec4 get_base_color()
                return pbr_material.base_color;
 }
 
-float get_metalness_value()
+virtual float get_metalness_value()
 {
        if(use_metalness_map)
                return texture(metalness_map, texcoord.xy).r;
@@ -28,7 +28,7 @@ float get_metalness_value()
                return pbr_material.metalness;
 }
 
-float get_roughness_value()
+virtual float get_roughness_value()
 {
        if(use_roughness_map)
                return texture(roughness_map, texcoord.xy).r;
@@ -36,7 +36,7 @@ float get_roughness_value()
                return pbr_material.roughness;
 }
 
-float get_occlusion_value()
+virtual float get_occlusion_value()
 {
        if(use_occlusion_map)
                return texture(occlusion_map, texcoord.xy).r;
@@ -44,7 +44,7 @@ float get_occlusion_value()
                return 1.0;
 }
 
-vec3 get_emission_color()
+virtual vec3 get_emission_color()
 {
        if(use_emission_map)
                return texture(emission_map, texcoord.xy).rgb;