diff options
author | David Thompson <dthompson2@worcester.edu> | 2021-09-23 19:11:29 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2021-09-23 19:11:29 -0400 |
commit | 8c2386442a60bac743a6e80d5ba024efe92958c5 (patch) | |
tree | b4310da68f18a8480ae256af02b15a9e7c1d8ddc /chickadee | |
parent | f570211fdf973dcbd4115a2f2a685eec87ed8080 (diff) |
graphics: light: Add intensity field.
Diffstat (limited to 'chickadee')
-rw-r--r-- | chickadee/graphics/light.scm | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/chickadee/graphics/light.scm b/chickadee/graphics/light.scm index d217f56..25fd17e 100644 --- a/chickadee/graphics/light.scm +++ b/chickadee/graphics/light.scm @@ -40,10 +40,12 @@ light-position light-direction light-color + light-intensity light-cut-off set-light-position! set-light-direction! set-light-color! + set-light-intensity! set-light-cut-off!)) ;; Maximum number of lights supported by our shaders. @@ -57,7 +59,8 @@ (float-vec3 position light-position set-light-position!) (float-vec3 direction light-direction set-light-direction!) (float-vec4 color light-color set-light-color!) - (float cut-off light-cut-off set-light-cut-off!)) + (float intensity light-intensity set-light-intensity!) + (float cut-off light-cut-off %set-light-cut-off!)) (define %disabled-light (make-light #:enabled #f)) @@ -77,27 +80,34 @@ (define (spot-light? light) (eq? (light-type light) 'spot)) +(define (set-light-cut-off! light cut-off) + (%set-light-cut-off! light (cos cut-off))) + (define* (make-point-light #:key (position (vec3 0.0 0.0 0.0)) - (color black)) + (color black) (intensity 1.0)) (make-light #:enabled #t #:type 0 #:position position - #:color color)) + #:color color + #:intensity intensity)) (define* (make-directional-light #:key (direction (vec3 0.0 -1.0 0.0)) - (color black)) + (color black) (intensity 1.0)) (make-light #:enabled #t #:type 1 #:direction direction - #:color color)) + #:color color + #:intensity intensity)) (define* (make-spot-light #:key (position (vec3 0.0 0.0 0.0)) (direction (vec3 0.0 0.0 -1.0)) (color black) - (cut-off (/ pi 4.0))) + (cut-off (/ pi 4.0)) + (intensity 1.0)) (make-light #:enabled #t #:type 2 #:position position #:direction direction #:color color - #:cut-off (cos cut-off))) + #:cut-off (cos cut-off) + #:intensity intensity)) |