Apply surface angle to sun light
This commit is contained in:
parent
4f86a0ba81
commit
bbf73c2766
2 changed files with 11 additions and 3 deletions
|
|
@ -29,7 +29,7 @@ void main()
|
|||
vec3 origin = worldpos + normal * 0.1;
|
||||
|
||||
#if defined(USE_SUNLIGHT)
|
||||
vec3 incoming = TraceSunLight(origin);
|
||||
vec3 incoming = TraceSunLight(origin, normal, SurfaceIndex);
|
||||
#else
|
||||
vec3 incoming = vec3(0.0);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,8 +1,16 @@
|
|||
|
||||
vec2 getVogelDiskSample(int sampleIndex, int sampleCount, float phi);
|
||||
|
||||
vec3 TraceSunLight(vec3 origin)
|
||||
vec3 TraceSunLight(vec3 origin, vec3 normal, int surfaceIndex)
|
||||
{
|
||||
float angleAttenuation = 1.0f;
|
||||
if (surfaceIndex >= 0)
|
||||
{
|
||||
angleAttenuation = max(dot(normal, SunDir), 0.0);
|
||||
if (angleAttenuation == 0.0)
|
||||
return vec3(0.0);
|
||||
}
|
||||
|
||||
const float minDistance = 0.01;
|
||||
vec3 incoming = vec3(0.0);
|
||||
const float dist = 32768.0;
|
||||
|
|
@ -45,5 +53,5 @@ vec3 TraceSunLight(vec3 origin)
|
|||
|
||||
#endif
|
||||
|
||||
return incoming;
|
||||
return incoming * angleAttenuation;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue