Improve material loading and add coordinate system model

This commit is contained in:
2020-03-26 22:57:08 +01:00
parent 4893a36197
commit 251adef6b5
16 changed files with 308 additions and 47 deletions

View File

@@ -9,6 +9,14 @@ struct Material {
sampler2D specular1;
sampler2D specular2;
sampler2D specular3;
sampler2D ambient0;
sampler2D ambient1;
bool use_diff_color;
vec3 diff_color;
bool use_spec_color;
vec3 spec_color;
int use_amb_color;
vec3 amb_color;
};
out vec4 fragmentColor;
@@ -26,8 +34,28 @@ void main()
const float light_spec = 0.4;
const float light_diff = 0.7;
vec3 diffuseTexCol = vec3(texture(material.diffuse0, TexCoord));
vec3 specularTexCol = vec3(texture(material.specular0, TexCoord));
vec3 diffuseTexCol;
if (material.use_diff_color) {
diffuseTexCol = material.diff_color;
} else {
diffuseTexCol = vec3(texture(material.diffuse0, TexCoord));
}
vec3 specularTexCol;
if (material.use_spec_color) {
specularTexCol = material.spec_color;
} else {
specularTexCol = vec3(texture(material.specular0, TexCoord));
}
vec3 ambTexCol;
if (material.use_amb_color == 0) {
ambTexCol = vec3(texture(material.ambient0, TexCoord));
} else if (material.use_amb_color == 1) {
ambTexCol = diffuseTexCol * 0.5;
} else if (material.use_amb_color == 2) {
ambTexCol = material.amb_color;
}
vec3 normal_n = normalize(Normal);
vec3 light_dir_n = normalize(light_direction);