76 lines
1.2 KiB
GLSL
76 lines
1.2 KiB
GLSL
|
|
|
|
#version 330 core
|
|
out vec4 FragColor;
|
|
|
|
struct Material {
|
|
sampler2D diffuse;
|
|
sampler2D specular;
|
|
float shininess;
|
|
};
|
|
|
|
struct DirLight {
|
|
vec3 direction;
|
|
|
|
vec3 ambient;
|
|
vec3 diffuse;
|
|
vec3 specular;
|
|
};
|
|
|
|
struct PointLight {
|
|
vec3 position;
|
|
|
|
float constant;
|
|
float linear;
|
|
float quadratic;
|
|
|
|
vec3 ambient;
|
|
vec3 diffuse;
|
|
vec3 specular;
|
|
};
|
|
|
|
struct SpotLight {
|
|
vec3 position;
|
|
vec3 direction;
|
|
float cutOff;
|
|
float outerCutOff;
|
|
|
|
float constant;
|
|
float linear;
|
|
float quadratic;
|
|
|
|
vec3 ambient;
|
|
vec3 diffuse;
|
|
vec3 specular;
|
|
};
|
|
|
|
#define NR_POINT_LIGHTS 10
|
|
|
|
in vec3 FragPos;
|
|
in vec3 Normal;
|
|
in vec2 TexCoord;
|
|
in vec4 FragPosLightSpace;
|
|
|
|
uniform vec3 viewPos;
|
|
uniform DirLight dirLight;
|
|
uniform PointLight pointLights[NR_POINT_LIGHTS];
|
|
uniform SpotLight spotLight;
|
|
uniform Material material;
|
|
|
|
//texture stuff
|
|
// uniform sampler2D ourTexture;
|
|
uniform int hasTransparency;
|
|
// uniform sampler2D specularTexture;
|
|
|
|
//light depth map
|
|
uniform sampler2D shadowMap;
|
|
|
|
|
|
void main(){
|
|
if(hasTransparency == 1){
|
|
if(texture(material.diffuse, TexCoord).a < 0.1){
|
|
discard;
|
|
}
|
|
}
|
|
FragColor = texture(material.diffuse, TexCoord);
|
|
} |