node package manager
We need your input. Help make JavaScript better: Take the 2017 JavaScript Ecosystem survey ยป


glsl-point-light stable

A reusable GLSL point light function for use with glslify.


view demo



Exports vec3 point_light, which takes the following arguments:

  • vec3 color: the RGB values of the light.
  • vec3 light_position: the x/y/z position of the light.
  • vec3 current_position: the x/y/z position of the current fragment/vertex.
  • vec3 normal: a normalized normal vector for the current fragment/vertex.
  • vec3 attenuation: the light attenuation.

Light attenuation is the rate at which the light will fade over space. It's passed as a vector for brevity, but each value has a different effect:

  • attenuation.x, or kc, is the constant attenuation.
  • attenuation.y, or kl, is the linear attenuation.
  • attenuation.z, or kq, is the quadratic attenuation.

Together these values effect the final attenuation curve. For more information check out this this article.

See shaders/terrain.vert for a full example.