added the readme
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
#version 330 core
|
||||
out vec4 FragColor;
|
||||
|
||||
in vec3 normal;
|
||||
in vec2 texCoord;
|
||||
in vec3 FragPos;
|
||||
in vec4 fragposlightspace;
|
||||
|
||||
struct Material {
|
||||
vec3 ambient;
|
||||
vec3 diffuse;
|
||||
vec3 specular;
|
||||
float shininess;
|
||||
};
|
||||
|
||||
struct PointLight {
|
||||
vec3 position;
|
||||
|
||||
float constant;
|
||||
float linear;
|
||||
float quadratic;
|
||||
|
||||
vec3 ambient;
|
||||
vec3 diffuse;
|
||||
vec3 specular;
|
||||
};
|
||||
|
||||
struct DirLight {
|
||||
vec3 direction;
|
||||
|
||||
vec3 ambient;
|
||||
vec3 diffuse;
|
||||
vec3 specular;
|
||||
};
|
||||
|
||||
uniform DirLight dirLight;
|
||||
|
||||
uniform vec3 viewPos;
|
||||
|
||||
uniform sampler2DShadow shadowMap;
|
||||
uniform sampler2D tex;
|
||||
|
||||
float ShadowCalculation(vec4 fragposlightspace)
|
||||
{
|
||||
// perform perspective divide
|
||||
vec3 projCoords = fragposlightspace.xyz / fragposlightspace.w;
|
||||
projCoords = projCoords * 0.5 + 0.5;
|
||||
if(projCoords.z > 1.0)
|
||||
return 0.0;
|
||||
float currentDepth = projCoords.z;
|
||||
float bias = 0.01;
|
||||
float shadow = 0.0;
|
||||
return texture(shadowMap, vec3(projCoords.xy,projCoords.z));
|
||||
}
|
||||
|
||||
vec3 CalcDirLight(DirLight light, vec3 normal, vec3 viewDir)
|
||||
{
|
||||
vec3 lightDir = normalize(-light.direction);
|
||||
// diffuse shading
|
||||
float diff = max(dot(normal, lightDir), 0.0);
|
||||
// specular shading
|
||||
vec3 reflectDir = reflect(-lightDir, normal);
|
||||
float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32.0f);
|
||||
// combine results
|
||||
vec3 ambient = light.ambient;
|
||||
vec3 diffuse = light.diffuse * diff;
|
||||
vec3 specular = light.specular * spec;
|
||||
return ambient + (diffuse + specular) * (ShadowCalculation(fragposlightspace));
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
|
||||
float gamma = 2.2;
|
||||
|
||||
vec4 lightless = texture(tex, texCoord);
|
||||
lightless = texture(tex, texCoord);
|
||||
if (lightless.a < 0.1) {
|
||||
discard;
|
||||
}
|
||||
|
||||
vec3 norm = normalize(normal);
|
||||
vec3 viewDir = normalize(viewPos - FragPos);
|
||||
|
||||
vec4 pregamma = (lightless) * vec4(CalcDirLight(dirLight,norm,viewDir),1.0f) * vec4(vec3(1.0f-1.0f/gl_FragCoord[3]/ 200.0f), 1.0f);
|
||||
|
||||
FragColor = pregamma;
|
||||
|
||||
//FragColor = vec4(1.0f,1.0f,1.0f,1.0f);
|
||||
}
|
||||
Reference in New Issue
Block a user