diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/README.md b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/README.md
new file mode 100644
index 0000000000..aa0f660693
--- /dev/null
+++ b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/README.md
@@ -0,0 +1,421 @@
+# KHR\_materials\_diffuse_transmission
+
+## Contributors
+
+* Tobias Haeussler, Dassault Systèmes [@proog128](https://github.com/proog128)
+* Bastian Sdorra, Dassault Systèmes [@bsdorra](https://github.com/bsdorra)
+* Ed Mackey, AGI [@emackey](https://twitter.com/emackey)
+
+TODO
+
+## Status
+
+Experimental
+
+## Dependencies
+
+Written against the glTF 2.0 spec.
+
+## Exclusions
+
+* This extension must not be used on a material that also uses `KHR_materials_pbrSpecularGlossiness`.
+* This extension must not be used on a material that also uses `KHR_materials_unlit`.
+
+## Overview
+
+This extension models the physical phenomenon of light being diffusely transmitted through an infinitely thin material. Thin dielectric objects like leaves or paper diffusely transmit light due to dense volumetric scattering within the object. In 3D graphics, it is common to approximate thin volumetric objects as non-volumetric surfaces. The KHR_materials_diffuse_transmission extension models the diffuse transmission of light through such infinitely thin surfaces. For optically thick media (volumes) with short scattering distances and dense scattering behavior, i.e. candles, KHR_materials_diffuse_transmission provides a phenomenologically plausible and cost-effective approximation.
+
+
+
+
+
+
+
+
+
(candle model by lucatorcigliani with modifications by @emackey. Original source CC-BY 4.0)
+
+
+
+
+
+## Extending Materials
+
+The effect is activated by adding the `KHR_materials_diffuse_transmission` extension to any glTF material.
+
+```json
+{
+ "materials": [
+ {
+ "extensions": {
+ "KHR_materials_diffuse_transmission": {
+ "diffuseTransmissionFactor": 0.25,
+ "diffuseTransmissionTexture": {
+ "index": 0
+ },
+ "diffuseTransmissionColorFactor": [
+ 1.0,
+ 0.9,
+ 0.85
+ ]
+ }
+ }
+ }
+ ]
+}
+```
+
+## Properties
+
+| | Type | Description | Required |
+|-------------------------------------|---------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------|
+| **diffuseTransmissionFactor** | `number` | The percentage of non-specularly reflected light that is diffusely transmitted through the surface. | No, default: `0` |
+| **diffuseTransmissionTexture** | [`textureInfo`](/specification/2.0/README.md#reference-textureInfo) | A texture that defines the percentage of non-specularly reflected light that is diffusely transmitted through the surface. Stored in the alpha (`A`) channel. Will be multiplied by the diffuseTransmissionFactor. | No |
+| **diffuseTransmissionColorFactor** | `number[3]` | The color that modulates the transmitted light. | No, default: `[1, 1, 1]` |
+| **diffuseTransmissionColorTexture** | [`textureInfo`](/specification/2.0/README.md#reference-textureInfo) | A texture that defines the color that modulates the diffusely transmitted light, stored in the `RGB` channels and encoded in sRGB. This texture will be multiplied by diffuseTransmissionColorFactor. | No |
+
+### diffuseTransmissionFactor
+
+The proportion of light that is diffusely transmitted through a surface, rather than being diffusely re-emitted. This is expressed as a percentage of the light that penetrates the surface (i.e., not specularly reflected), rather than a percentage of the total light incident on the surface. A value of 1.0 indicates that 100% of the light that penetrates the surface is transmitted through it.
+
+
+
+
+
+
+
+
+
+
+
0.0
+
0.25
+
0.5
+
0.75
+
1.0
+
+
+
+ Backlit, occluded plane with blue baseColorFactor for varying diffuseTransmissionFactor.
+
+
+
+
+### diffuseTransmissionColorFactor
+
+The proportion of light at each color channel that is not attenuated by the surface transmission. Attenuation is usually defined as an amount of light at each frequency that is reduced over a given distance through a medium by absorption and scattering interactions. However, since this extension deals exclusively with infinitely thin surfaces, attenuation is constant and equal to 1.0 - `diffuseTransmissionColorFactor`.
+
+
+
+
+
+
+
+
+
+
+
0.0
+
0.25
+
0.5
+
0.75
+
1.0
+
+
+
+ Backlit, occluded plane with blue baseColorFactor and red diffuseTransmissionColorFactor for varying diffuseTransmissionFactor.
+
+
+
+
+### diffuseTransmissionTexture
+
+The `A` channel of this texture defines proportion of light that is diffusely transmitted through a surface, rather than being diffusely re-emitted. This is expressed as a percentage of the light that penetrates the surface (i.e., not specularly reflected), rather than a percentage of the total light incident on the surface. A value of 1.0 indicates that 100% of the light that penetrates the surface is transmitted through it.
+
+The value is linear and is multiplied by the `diffuseTransmissionFactor` to determine the total diffuse transmission value.
+
+```
+diffuseTransmission = diffuseTransmissionFactor * diffuseTransmissionTexture.a
+```
+
+
+
+
+
+
+
+ Backlit, occluded plane with blue baseColorFactor and a striped diffuseTransmissionTexture. (Input texture shown in the top-left).
+
+
+
+
+
+### diffuseTransmissionColorTexture
+
+The `RGB` channels of this texture define the proportion of light at each color channel that is not attenuated by the surface transmission.
+The values are multiplied by the `diffuseTransmissionColorFactor` to determine the total diffuse transmission color.
+```
+diffuseTransmissionColor = diffuseTransmissionColorFactor * diffuseTransmissionColorTexture.rgb
+```
+
+
+
+
+
+
+
+
+
+
+
0.0
+
0.25
+
0.5
+
0.75
+
1.0
+
+
+
+
+ Single-sided plane in a symmetric light setup. baseColorTexture and diffuseTransmissionColorTexture use textures that represent the different sides of the one-dollar bill. Series shows the setup at varying values of diffuseTransmissionFactor.
+
+
+## Material Structure Updates
+
+*This section is normative.*
+
+This extension changes the `dielectric_brdf` defined in [Appendix B](https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#material-structure)
+```
+dielectric_brdf =
+ fresnel_mix(
+ ior = 1.5,
+ base = diffuse_brdf(color = baseColor),
+ layer = specular_brdf(α = roughness ^ 2)
+ )
+```
+ to the following:
+```
+dielectric_brdf =
+ fresnel_mix(
+ ior = 1.5,
+ base = mix(
+ diffuse_brdf(color = baseColor),
+ diffuse_btdf(color = diffuseTransmissionColor),
+ diffuseTransmission),
+ layer = specular_brdf(α = roughness ^ 2)
+ )
+```
+Increasing the strength of the diffuse transmission effect using the `diffuseTransmissionFactor` parameter takes away energy from the diffuse reflection BSDF and passes it to the diffuse transmission BSDF. The specular reflection BSDF and Fresnel weighting are not affected.
+
+## Implementation
+*This section is non-normative.*
+
+With a simple Lambert BRDF model, `diffuse_brdf` and `diffuse_btdf` may be implemented as follows
+```
+function diffuse_brdf(color) {
+ if (view and light on same hemisphere) {
+ return (1/pi) * color
+ } else {
+ return 0
+ }
+}
+
+function diffuse_btdf(color) {
+ if (view and light on opposite hemispheres) {
+ return (1/pi) * color
+ } else {
+ return 0
+ }
+}
+
+function mix(bsdf0, bsdf1, factor) {
+ return (1-factor) * bsdf0 + factor * bsdf1
+}
+```
+
+
+
+
+
+
+
+
+ Diffuse BRDF
+
+
+ Diffuse BTDF
+
+
+
+
+
+## Combining Diffuse Transmission with other Extensions
+### KHR_materials_transmission
+Both `KHR_materials_diffuse_transmission` and `KHR_materials_transmission` replace the diffuse BRDF with a mix of diffuse BRDF and a BTDF that transmits light onto the opposite side of the surface. In case of `KHR_materials_transmission`, this is a microfacet BTDF that shares its roughness with the microfacet BRDF. In case of `KHR_materials_diffuse_transmission`, on the other hand, this is a diffuse BTDF.
+
+Let's recall the `dielectric_brdf` for `KHR_materials_diffuse_transmission` as defined above
+```
+dielectric_brdf =
+ fresnel_mix(
+ ior = 1.5,
+ base = mix(
+ diffuse_brdf(color = baseColor),
+ diffuse_btdf(color = diffuseTransmissionColor),
+ diffuseTransmission,
+ layer = specular_brdf(α = roughness ^ 2)
+ )
+```
+
+and compare it to the `dielectric_brdf` defined in `KHR_materials_transmission`
+```
+dielectric_brdf =
+ fresnel_mix(
+ ior = 1.5,
+ base = mix(
+ diffuse_brdf(baseColor),
+ specular_btdf(α = roughness^2) * baseColor,
+ transmission),
+ layer = specular_brdf(α = roughness^2)
+ )
+```
+
+Since the diffuse BTDF does not have controls for roughness, the roughness parameter acts only on the reflective part of the surface. By decoupling the reflection and transmission parts it is possible to configure materials which have a smooth reflection and a diffuse transmission, as shown in images below.
+
+
+
+### KHR_materials_volume
+When `KHR_materials_diffuse_transmission` is combined with `KHR_materials_volume`, a diffuse transmission BTDF describes the transmission of light through the volume boundary. The object becomes translucent. The light transport inside the volume is solely handled by `KHR_materials_volume` and is not affected by the surface BSDF.
+
+
+
+
+
+
+
+
+
0.0
+
0.5
+
1.0
+
+
+
+
+ Dragon with white base color, colored volume attenuation and varying diffuseTransmissionFactor.
+
+
+
+
+
+
+
+
+
+
+
+
+
0.0
+
0.25
+
0.5
+
+
+
+
+ Candle with off-white base color, colored volume attenuation and varying diffuseTransmissionFactor.
+
(candle model by lucatorcigliani with modifications by @emackey. Original source CC-BY 4.0)
+
+
+
+
+
+
+## Schema
+
+- [glTF.KHR_materials_diffuse_transmission.schema.json](schema/glTF.KHR_materials_diffuse_transmission.schema.json)
+
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/attenuation_dt_0.0.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/attenuation_dt_0.0.jpg
new file mode 100644
index 0000000000..ffa936157a
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/attenuation_dt_0.0.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/attenuation_dt_0.5.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/attenuation_dt_0.5.jpg
new file mode 100644
index 0000000000..8f5a995089
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/attenuation_dt_0.5.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/attenuation_dt_1.0.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/attenuation_dt_1.0.jpg
new file mode 100644
index 0000000000..676ad9ad14
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/attenuation_dt_1.0.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/bsdf.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/bsdf.jpg
new file mode 100644
index 0000000000..51cd13ebbc
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/bsdf.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/bsdf.svg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/bsdf.svg
new file mode 100644
index 0000000000..a179cab681
--- /dev/null
+++ b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/bsdf.svg
@@ -0,0 +1,933 @@
+
+
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/candle_0.0.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/candle_0.0.jpg
new file mode 100644
index 0000000000..2bb211e9e6
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/candle_0.0.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/candle_0.25.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/candle_0.25.jpg
new file mode 100644
index 0000000000..949a5a3886
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/candle_0.25.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/candle_0.5.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/candle_0.5.jpg
new file mode 100644
index 0000000000..771a61c131
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/candle_0.5.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.0.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.0.jpg
new file mode 100644
index 0000000000..060aee5a17
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.0.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.25.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.25.jpg
new file mode 100644
index 0000000000..d8990c12f8
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.25.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.5.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.5.jpg
new file mode 100644
index 0000000000..9cc22d71aa
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.5.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.75.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.75.jpg
new file mode 100644
index 0000000000..21f885bb38
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_0.75.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_1.0.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_1.0.jpg
new file mode 100644
index 0000000000..58f2d04b53
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_1.0.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.0.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.0.jpg
new file mode 100644
index 0000000000..fa006b4a40
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.0.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.25.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.25.jpg
new file mode 100644
index 0000000000..8a0914043a
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.25.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.5.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.5.jpg
new file mode 100644
index 0000000000..2a88620f20
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.5.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.75.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.75.jpg
new file mode 100644
index 0000000000..668c92bbff
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_0.75.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_1.0.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_1.0.jpg
new file mode 100644
index 0000000000..80fe7719f3
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/color_tex_1.0.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.0.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.0.jpg
new file mode 100644
index 0000000000..e453e302ca
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.0.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.25.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.25.jpg
new file mode 100644
index 0000000000..39ae70cc16
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.25.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.5.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.5.jpg
new file mode 100644
index 0000000000..f44d7b978d
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.5.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.75.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.75.jpg
new file mode 100644
index 0000000000..e8b7e6a70d
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_0.75.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_1.0.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_1.0.jpg
new file mode 100644
index 0000000000..97abeeeea6
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/dt_transmission_1.0.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.0.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.0.jpg
new file mode 100644
index 0000000000..79864911ed
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.0.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.25.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.25.jpg
new file mode 100644
index 0000000000..44e6851ed2
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.25.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.5.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.5.jpg
new file mode 100644
index 0000000000..3db3441a81
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.5.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.75.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.75.jpg
new file mode 100644
index 0000000000..9b2197cd73
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_0.75.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_1.0.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_1.0.jpg
new file mode 100644
index 0000000000..b8397b9d14
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_1.0.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_tex.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_tex.jpg
new file mode 100644
index 0000000000..8d1398d775
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_tex.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_tex_inlay.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_tex_inlay.jpg
new file mode 100644
index 0000000000..8293d924f4
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/factor_tex_inlay.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/leaves.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/leaves.jpg
new file mode 100644
index 0000000000..6c7cf02da1
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/leaves.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/translucent-roughness.png b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/translucent-roughness.png
new file mode 100644
index 0000000000..7e148b59aa
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/translucent-roughness.png differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/transmission-translucency_thin.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/transmission-translucency_thin.jpg
new file mode 100644
index 0000000000..3861940a2c
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/transmission-translucency_thin.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/transmission-translucency_thin_angle.jpg b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/transmission-translucency_thin_angle.jpg
new file mode 100644
index 0000000000..1660091a37
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/transmission-translucency_thin_angle.jpg differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/transmissive-roughness.png b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/transmissive-roughness.png
new file mode 100644
index 0000000000..fce6882f3d
Binary files /dev/null and b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/figures/transmissive-roughness.png differ
diff --git a/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/schema/glTF.KHR_materials_diffuse_transmission.schema.json b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/schema/glTF.KHR_materials_diffuse_transmission.schema.json
new file mode 100644
index 0000000000..38e69464c8
--- /dev/null
+++ b/extensions/2.0/Khronos/KHR_materials_diffuse_transmission/schema/glTF.KHR_materials_diffuse_transmission.schema.json
@@ -0,0 +1,41 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema",
+ "title": "KHR_materials_diffuse_transmission glTF extension",
+ "type": "object",
+ "description": "glTF extension that defines the diffuse transmission of the material.",
+ "allOf": [ { "$ref": "glTFProperty.schema.json" } ],
+ "properties": {
+ "diffuseTransmissionFactor": {
+ "type": "number",
+ "description": "The percentage of light that is diffusely transmitted through the surface.",
+ "default": 0.0,
+ "minimum": 0.0,
+ "maximum": 1.0,
+ "gltf_detailedDescription": "The percentage of non-specularly reflected light that is transmitted through the surface via a Lambertian diffuse transmission."
+ },
+ "diffuseTransmissionTexture": {
+ "allOf": [ { "$ref": "textureInfo.schema.json" } ],
+ "description": "A texture that defines the percentage of light transmitted through the surface.",
+ "gltf_detailedDescription": "A texture that defines the strength of the diffuse transmission effect, stored in the alpha (A) channel. Will be multiplied by the diffuseTransmissionFactor."
+ },
+ "diffuseTransmissionColorFactor": {
+ "type": "array",
+ "items": {
+ "type": "number",
+ "minimum": 0.0
+ },
+ "description": "The color of the transmitted light.",
+ "default": [ 1.0, 1.0, 1.0 ],
+ "minItems": 3,
+ "maxItems": 3,
+ "gltf_detailedDescription": "The color of the transmitted light."
+ },
+ "diffuseTransmissionColorTexture": {
+ "allOf": [ { "$ref": "textureInfo.schema.json" } ],
+ "description": "A texture that defines the color of the transmitted light",
+ "gltf_detailedDescription": "A texture that defines the color of the transmitted light, stored in the RGB channels and encoded in sRGB. This texture will be multiplied by diffuseTransmissionColorFactor."
+ },
+ "extensions": { },
+ "extras": { }
+ }
+}