A reusable GLSL point light function
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
shaders
.gitignore
LICENSE.md
README.md
demo.js
index.glsl
index.html
package.json
sidebar.js

README.md

glsl-point-light stable

A reusable GLSL point light function for use with glslify.

glsl-point-light

view demo

Usage

glsl-point-light

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.