X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=shaderlib%2Fmsp_interface.glsl;h=ba6f3178cc5ca9954ffd5d6c5e66df43965aece4;hb=5fc03c5a41df2934696921b2f7d5a65023a4506a;hp=fda84de95fff74de5ec6fc11180a05bc6a872168;hpb=463746f62d9b48f9fbbba3b2fcf7354067873e94;p=libs%2Fgl.git diff --git a/shaderlib/msp_interface.glsl b/shaderlib/msp_interface.glsl index fda84de9..ba6f3178 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,16 +58,23 @@ uniform Lighting }; 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; +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; @@ -73,6 +93,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;