X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=shaderlib%2Fmsp_interface.glsl;h=1c3029ef343cbddb9a295951864300f9ac627b56;hb=713ff9619daa858ffbd428f7699cd57598563dbd;hp=fda84de95fff74de5ec6fc11180a05bc6a872168;hpb=463746f62d9b48f9fbbba3b2fcf7354067873e94;p=libs%2Fgl.git diff --git a/shaderlib/msp_interface.glsl b/shaderlib/msp_interface.glsl index fda84de9..1c3029ef 100644 --- a/shaderlib/msp_interface.glsl +++ b/shaderlib/msp_interface.glsl @@ -5,12 +5,21 @@ struct LightSourceParameters vec4 specular; }; -struct MaterialParameters +struct BasicMaterialParameters { - vec4 ambient; vec4 diffuse; vec4 specular; + vec4 emission; float shininess; + float reflectivity; +}; + +struct PbrMaterialParameters +{ + vec4 base_color; + vec4 emission; + float metalness; + float roughness; }; struct ClipPlane @@ -26,10 +35,14 @@ uniform Transform mat4 projection_matrix; }; -uniform Material +uniform BasicMaterial { - MaterialParameters material; - float reflectivity; + BasicMaterialParameters basic_material; +}; + +uniform PbrMaterial +{ + PbrMaterialParameters pbr_material; }; uniform Lighting @@ -45,22 +58,30 @@ uniform Lighting }; uniform sampler2D diffuse_map; +uniform sampler2D specular_map; +uniform sampler2D shininess_map; +uniform sampler2D reflectivity_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; +uniform sampler2DShadow shadow_map; uniform ShadowMap { float shadow_darkness; mat4 shd_eye_matrix; }; -uniform samplerCube environment; +uniform samplerCube environment_map; uniform EnvMap { mat3 env_eye_matrix; }; -const int max_clip_planes = 0; +layout(constant_id=auto) const int max_clip_planes = 0; uniform Clipping { ClipPlane clip_planes[max_clip_planes]; @@ -73,6 +94,7 @@ layout(location=3) 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]; #pragma MSP stage(fragment) layout(location=0) out vec4 frag_color;