R2 Core 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
13 R2_light_output_t
14 R2_deferredLightMain(
15 const R2_reconstructed_surface_t surface)
16 {
17 R2_light_positional_vectors_t vectors = R2_lightPositionalVectors(
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
R2_light_positional_t::color
vec3 color
The light color. The components are assumed to be in the range [0, 1].
Definition: R2LightPositional.h:26
R2_lightPositionalAttenuation
float R2_lightPositionalAttenuation(const R2_light_positional_t light, const float distance)
Definition: R2LightPositional.h:78
R2_light_positional_vectors_t
Vectors used when calculating positional lighting.
Definition: R2LightPositional.h:9
R2_reconstructed_surface_t::position
vec4 position
The eye-space position of the surface.
Definition: R2ReconstructedSurface.h:30
R2_deferredLightMain
R2_light_output_t R2_deferredLightMain(const R2_reconstructed_surface_t surface)
Definition: R2LightSphericalDebugAttenuation.h:14
R2_reconstructed_surface_t
Reconstructed surface data, taken from the G-Buffer.
Definition: R2ReconstructedSurface.h:16
R2_light_positional_vectors_t::distance
float distance
The distance between the surface and light source.
Definition: R2LightPositional.h:19
R2_light_positional_t
A positional light type.
Definition: R2LightPositional.h:24
R2_reconstructed_surface_t::normal
vec3 normal
The eye-space normal vector of the surface.
Definition: R2ReconstructedSurface.h:28
R2_lightPositionalVectors
R2_light_positional_vectors_t R2_lightPositionalVectors(const R2_light_positional_t light, const vec3 p, const vec3 n)
Definition: R2LightPositional.h:46
R2LightShaderMain.h
The main function that all deferred light shaders must implement.
R2LightSpherical.h
Functions and types related to spherical lighting.
R2LightPositional.h
Functions and types related to positional lighting.
R2_light_output_t
The type of light values that all deferred light shaders calculate.
Definition: R2LightOutput.h:9