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
mat4 projection_matrix;
};
-uniform Material
+uniform BasicMaterial
{
- MaterialParameters material;
- float reflectivity;
+ BasicMaterialParameters basic_material;
+};
+
+uniform PbrMaterial
+{
+ PbrMaterialParameters pbr_material;
};
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;