X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=shaderlib%2Fcommon.glsl;h=f952c8bd6c1cb34c647d869011ea51fd61d1ff29;hb=7f03ee52e8af5f857e44702b6d1c2822a51c62ef;hp=eb191e45dc7f6e03ce31473b81eba73449241c40;hpb=713ff9619daa858ffbd428f7699cd57598563dbd;p=libs%2Fgl.git diff --git a/shaderlib/common.glsl b/shaderlib/common.glsl index eb191e45..f952c8bd 100644 --- a/shaderlib/common.glsl +++ b/shaderlib/common.glsl @@ -1,25 +1,33 @@ import msp_interface; import shadow; +uniform EnvMap +{ + mat3 env_eye_matrix; +}; + +uniform sampler2D normal_map; +uniform samplerCube environment_map; + layout(constant_id=auto) const bool use_normal_map = false; #pragma MSP stage(vertex) -vec4 get_vertex_position() +virtual vec4 get_vertex_position() { return vertex; } -vec3 get_vertex_normal() +virtual vec3 get_vertex_normal() { return normal; } -vec4 transform_position(vec4 pos) +virtual vec4 transform_position(vec4 pos) { return eye_obj_matrix*pos; } -vec3 transform_normal(vec3 nor) +virtual vec3 transform_normal(vec3 nor) { return eye_obj_normal_matrix*nor; } @@ -52,7 +60,7 @@ void standard_transform() shadow_transform(eye_vertex); } -void custom_transform() +virtual void custom_transform() { } @@ -64,7 +72,7 @@ void main() } #pragma MSP stage(fragment) -vec3 get_fragment_normal() +virtual vec3 get_fragment_normal() { if(use_normal_map) return normalize(texture(normal_map, texcoord.xy).xyz*2.0-1.0); @@ -72,12 +80,12 @@ vec3 get_fragment_normal() return vec3(0.0, 0.0, 1.0); } -vec4 get_environment_sample(vec3 direction) +virtual vec4 get_environment_sample(vec3 direction) { return texture(environment_map, direction); } -vec3 get_reflection(vec3 normal, vec3 look) +virtual vec3 get_reflection(vec3 normal, vec3 look) { vec3 reflect_dir = reflect(look, normal); if(use_normal_map)