summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chickadee/graphics/model.scm5
-rw-r--r--chickadee/graphics/pbr.scm16
2 files changed, 18 insertions, 3 deletions
diff --git a/chickadee/graphics/model.scm b/chickadee/graphics/model.scm
index e87e47f..3387de4 100644
--- a/chickadee/graphics/model.scm
+++ b/chickadee/graphics/model.scm
@@ -918,6 +918,8 @@
(not (eq? texture null-texture)))
(let-values (((base-color-texture base-color-texcoord)
(parse-texture pbrmr "baseColorTexture"))
+ ((metal-rough-texture metal-rough-texcoord)
+ (parse-texture pbrmr "metallicRoughnessTexture"))
((normal-texture normal-texcoord)
(parse-texture obj "normalTexture"))
((occlusion-texture occlusion-texcoord)
@@ -931,6 +933,9 @@
#:base-color-texcoord base-color-texcoord
#:metallic-factor metallic-factor
#:roughness-factor roughness-factor
+ #:metallic-roughness-texture metal-rough-texture
+ #:metallic-roughness-texture-enabled (non-null-texture? metal-rough-texture)
+ #:metallic-roughness-texcoord metal-rough-texcoord
#:normal-factor normal-factor
#:normal-texture normal-texture
#:normal-texture-enabled (non-null-texture? normal-texture)
diff --git a/chickadee/graphics/pbr.scm b/chickadee/graphics/pbr.scm
index 15b78b8..441c875 100644
--- a/chickadee/graphics/pbr.scm
+++ b/chickadee/graphics/pbr.scm
@@ -41,6 +41,9 @@
pbr-material-base-color-texcoord
pbr-material-metallic-factor
pbr-material-roughness-factor
+ pbr-material-metallic-roughness-texture
+ pbr-material-metallic-roughness-texture-enabled?
+ pbr-material-metallic-roughness-texcoord
pbr-material-normal-factor
pbr-material-normal-texture
pbr-material-normal-texture-enabled?
@@ -70,6 +73,9 @@
(int base-color-texcoord pbr-material-base-color-texcoord)
(float metallic-factor pbr-material-metallic-factor)
(float roughness-factor pbr-material-roughness-factor)
+ (local-field metallic-roughness-texture pbr-material-metallic-roughness-texture)
+ (bool metallic-roughness-texture-enabled pbr-material-metallic-roughness-texture-enabled?)
+ (int metallic-roughness-texcoord pbr-material-metallic-roughness-texcoord)
(float-vec3 normal-factor pbr-material-normal-factor)
(local-field normal-texture pbr-material-normal-texture)
(bool normal-texture-enabled pbr-material-normal-texture-enabled)
@@ -94,6 +100,9 @@
#:base-color-texcoord 0
#:metallic-factor 1.0
#:roughness-factor 1.0
+ #:metallic-roughness-texture null-texture
+ #:metallic-roughness-texture-enabled #f
+ #:metallic-roughness-texcoord 0
#:normal-factor #v(1.0 1.0 1.0)
#:normal-texture null-texture
#:normal-texture-enabled #f
@@ -125,9 +134,10 @@
no-cull-face-mode
back-cull-face-mode))
(g:texture-0 (pbr-material-base-color-texture material))
- (g:texture-1 (pbr-material-normal-texture material))
- (g:texture-2 (pbr-material-occlusion-texture material))
- (g:texture-3 (pbr-material-emissive-texture material)))
+ (g:texture-1 (pbr-material-metallic-roughness-texture material))
+ (g:texture-2 (pbr-material-normal-texture material))
+ (g:texture-3 (pbr-material-occlusion-texture material))
+ (g:texture-4 (pbr-material-emissive-texture material)))
(shader-apply shader vertex-array
#:model model-matrix
#:view view-matrix