diff options
author | David Thompson <dthompson2@worcester.edu> | 2018-09-07 09:03:43 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2018-09-07 09:03:43 -0400 |
commit | c4abe6974c5ee78681a8116a83fffe406e30c1aa (patch) | |
tree | 720a1478678c666563537b2eb772d72e44321ef1 /chickadee/render | |
parent | ea398a4ab1d8935e514f40ad3c2e824fe76ae947 (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.scm | 12 |
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) |