R2 Shaders
R2LightSphericalDebugAttenuation.h
Go to the documentation of this file.
1 #ifndef R2_LIGHT_SPHERICAL_DEBUG_ATTENUATION_H
2 #define R2_LIGHT_SPHERICAL_DEBUG_ATTENUATION_H
3 
4 /// \file R2LightSphericalDebugAttenuation.h
5 /// \brief A spherical light that ignores everything about the surface other than the position
6 
7 #include "R2LightShaderMain.h"
8 #include "R2LightPositional.h"
9 #include "R2LightSpherical.h"
10 
11 uniform R2_light_positional_t R2_light_spherical;
12 
15  const R2_reconstructed_surface_t surface)
16 {
18  R2_light_spherical, surface.position.xyz, surface.normal);
19  float attenuation = R2_lightPositionalAttenuation(
20  R2_light_spherical, vectors.distance);
21 
22  return R2_light_output_t(
23  R2_light_spherical.color * attenuation,
24  R2_light_spherical.color * attenuation);
25 }
26 
27 #endif // R2_LIGHT_SPHERICAL_DEBUG_ATTENUATION_H
vec3 color
The light color. The components are assumed to be in the range [0, 1].
float R2_lightPositionalAttenuation(const R2_light_positional_t light, const float distance)
Vectors used when calculating positional lighting.
vec4 position
The eye-space position of the surface.
R2_light_output_t R2_deferredLightMain(const R2_reconstructed_surface_t surface)
Reconstructed surface data, taken from the G-Buffer.
float distance
The distance between the surface and light source.
A positional light type.
vec3 normal
The eye-space normal vector of the surface.
R2_light_positional_vectors_t R2_lightPositionalVectors(const R2_light_positional_t light, const vec3 p, const vec3 n)
The main function that all deferred light shaders must implement.
Functions and types related to spherical lighting.
Functions and types related to positional lighting.
The type of light values that all deferred light shaders calculate.
Definition: R2LightOutput.h:9