R2 Shaders
Functions | Variables
R2LightSphericalLambert.h File Reference

A spherical light with no specular highlights. More...

#include "R2LightShaderMain.h"
#include "R2LightPositional.h"
#include "R2LightSpherical.h"
Include dependency graph for R2LightSphericalLambert.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

R2_light_output_t R2_deferredLightMain (const R2_reconstructed_surface_t surface)
 

Variables

uniform R2_light_positional_t R2_light_spherical
 

Detailed Description

A spherical light with no specular highlights.

Definition in file R2LightSphericalLambert.h.

Function Documentation

§ R2_deferredLightMain()

R2_light_output_t R2_deferredLightMain ( const R2_reconstructed_surface_t  surface)

Calculate light values for the current light, based on the current contents of the G-buffer.

Parameters
surfaceReconstructed surface data taken from the G-Buffer
Returns
Calculated light values

Definition at line 14 of file R2LightSphericalLambert.h.

16 {
18  R2_light_spherical, surface.position.xyz, surface.normal);
19  float attenuation = R2_lightPositionalAttenuation(
20  R2_light_spherical, vectors.distance);
21 
22  vec3 diffuse =
23  R2_lightSphericalDiffuseLambertTerm(R2_light_spherical, vectors);
24 
25  return R2_light_output_t(
26  diffuse * attenuation, vec3 (0.0));
27 }
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.
vec3 R2_lightSphericalDiffuseLambertTerm(const R2_light_positional_t light, const R2_light_positional_vectors_t v)
float distance
The distance between the surface and light source.
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 type of light values that all deferred light shaders calculate.
Definition: R2LightOutput.h:9