summaryrefslogtreecommitdiff
path: root/chickadee/render
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2018-09-07 09:03:43 -0400
committerDavid Thompson <dthompson2@worcester.edu>2018-09-07 09:03:43 -0400
commitc4abe6974c5ee78681a8116a83fffe406e30c1aa (patch)
tree720a1478678c666563537b2eb772d72e44321ef1 /chickadee/render
parentea398a4ab1d8935e514f40ad3c2e824fe76ae947 (diff)
render: scene: Apply base color texture and factor.
* chickadee/render/scene.scm (draw-primitive): Set base color texture and send base color factor as uniform to shader. * data/shaders/pbr/pbr-vert.glsl (texcoord_0): New input attribute. (frag_tex): New output attribute. * data/shaders/pbr/pbr-frag.glsl (frag_tex): New input attribute. (base_color_factor, base_color_texture): New uniforms.
Diffstat (limited to 'chickadee/render')
-rw-r--r--chickadee/render/scene.scm12
1 files changed, 7 insertions, 5 deletions
diff --git a/chickadee/render/scene.scm b/chickadee/render/scene.scm
index 60b34ce..db8b2bf 100644
--- a/chickadee/render/scene.scm
+++ b/chickadee/render/scene.scm
@@ -222,13 +222,15 @@
(%make-scene name nodes))
(define (draw-primitive primitive matrix)
- ;; TODO: Use material.
;; TODO: Actually use physically based rendering.
- (let ((mvp (primitive-matrix primitive)))
+ (let ((mvp (primitive-matrix primitive))
+ (material (primitive-material primitive)))
(matrix4-mult! mvp matrix (current-projection))
- (gpu-apply (pbr-shader)
- (primitive-vertex-array primitive)
- #:mvp mvp)))
+ (with-texture 0 (material-base-color-texture material)
+ (gpu-apply (pbr-shader)
+ (primitive-vertex-array primitive)
+ #:mvp mvp
+ #:base_color_factor (material-base-color-factor material)))))
(define (draw-mesh mesh matrix)
(for-each (lambda (primitive)