Skip to content

Commit 5bcea36

Browse files
Update subsurface color types (#220)
This changelist updates the types associated with physical color values for subsurface scattering in OpenPBR, aligning with the conclusions of recent threads on ASWF Slack channels. - Change `subsurface_radius_scale` from a `vector3` to a `color3` in the specification, aligning with the MaterialX implementation of OpenPBR. - Change the `radius` input of `subsurface_bsdf` from a `vector3` to a `color3` in the MaterialX implementation, aligning with the current definition of the `subsurface_bsdf` node in MaterialX 1.39.
1 parent 8d2631e commit 5bcea36

3 files changed

Lines changed: 5 additions & 8 deletions

File tree

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -750,7 +750,7 @@
750750
**`subsurface_weight`** | Weight | `float` | $ [0, 1] $ | | $ 0 $ | Mix weight between subsurface and diffuse slabs
751751
**`subsurface_color`** | Color | `color3` | $ [0, 1] $ | | $ (0.8, 0.8, 0.8) $ | The observed reflection color of $V^\infty_\mathrm{subsurface}$
752752
**`subsurface_radius`** | Radius | `float` | $ [0, \infty) $ | $ [0, 1] $ | $ 1 $ | Length scale of MFP
753-
**`subsurface_radius_scale`** | Radius scale | `vector3` | $ [0, 1]^3 $ | | $ (1.0, 0.5, 0.25) $ | RGB multiplier to **`subsurface_radius`**, giving the per-channel MFPs
753+
**`subsurface_radius_scale`** | Radius scale | `color3` | $ [0, 1]^3 $ | | $ (1.0, 0.5, 0.25) $ | RGB multiplier to **`subsurface_radius`**, giving the per-channel MFPs
754754
**`subsurface_scatter_anisotropy`** | Anisotropy | `float` | $ [-1, 1] $ | | $ 0 $ | Anisotropy of the Henyey--Greenstein phase function of the interior medium $V^\infty_\mathrm{subsurface}$
755755

756756
![](images/subsurface1.jpg width=99%) ![](images/subsurface2.jpg width=99%) ![](images/subsurface3.jpg width=99%)

parametrization.md.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
| `subsurface_weight` | Weight | `float` | $ [0, 1] $ | | $ 0 $ | |
4545
| `subsurface_color` | Color | `color3` | $ [0, 1] $ | | $ (0.8, 0.8, 0.8) $ | |
4646
| `subsurface_radius` | Radius | `float` | $ [0, \infty) $ | $ [0, 1] $ | $ 1 $ | length |
47-
| `subsurface_radius_scale` | Radius scale | `vector3` | $ [0, 1]^3 $ | | $ (1.0, 0.5, 0.25) $ | |
47+
| `subsurface_radius_scale` | Radius scale | `color3` | $ [0, 1]^3 $ | | $ (1.0, 0.5, 0.25) $ | |
4848
| `subsurface_scatter_anisotropy` | Anisotropy | `float` | $ [-1, 1] $ | | $ 0 $ | |
4949
| **Coat** |
5050
| `coat_weight` | Weight | `float` | $ [0, 1] $ | | $ 0 $ | |

reference/open_pbr_surface.mtlx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -177,16 +177,13 @@
177177
</mix>
178178

179179
<!-- Subsurface (non-thin-walled) -->
180-
<convert name="subsurface_radius_vector" type="vector3">
181-
<input name="in" type="color3" interfacename="subsurface_radius_scale" />
182-
</convert>
183-
<multiply name="subsurface_radius_scaled" type="vector3">
184-
<input name="in1" type="vector3" nodename="subsurface_radius_vector" />
180+
<multiply name="subsurface_radius_scaled" type="color3">
181+
<input name="in1" type="color3" interfacename="subsurface_radius_scale" />
185182
<input name="in2" type="float" interfacename="subsurface_radius" />
186183
</multiply>
187184
<subsurface_bsdf name="subsurface_bsdf" type="BSDF">
188185
<input name="color" type="color3" nodename="subsurface_color_nonnegative" />
189-
<input name="radius" type="vector3" nodename="subsurface_radius_scaled" />
186+
<input name="radius" type="color3" nodename="subsurface_radius_scaled" />
190187
<input name="anisotropy" type="float" interfacename="subsurface_scatter_anisotropy" />
191188
<input name="normal" type="vector3" interfacename="geometry_normal" />
192189
</subsurface_bsdf>

0 commit comments

Comments
 (0)