Skip to content

Commit 067df74

Browse files
authored
Allow emission_color components to exceed 1 (#260)
1 parent d593c2c commit 067df74

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

index.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@
286286
However the parameters of the physical model that we describe do not specify all of the assumptions that would be needed to obtain a good visual match. We recommend therefore, for the purposes of asset exchange, that the parameters be packaged with certain metadata that provides the following missing information:
287287
- The version of the specification implemented.
288288

289-
- The assumed color space of all the color parameters. If unspecified, following MaterialX [#Smythe2016], by default this color space is assumed to be [ACEScg](https://docs.acescentral.com/specifications/acescg/).
289+
- The assumed color space of all the color parameters. If unspecified, following MaterialX [#Smythe2016], by default this color space is assumed to be [ACEScg](https://docs.acescentral.com/specifications/acescg/). [^ingamut]
290290

291291
- The floating-point conversion factor from the parameters given in world space length units to meters.
292292

@@ -1124,7 +1124,7 @@
11241124
* +-------------------------------------------------+ *
11251125
*******************************************************
11261126

1127-
The intensity of the EDF is controlled by a luminance and a color multiplier. The **`emission_luminance`** parameter controls the luminance the emissive layer would have when **`emission_color`** is set to (1, 1, 1) and in the absence of coat and fuzz. The **`emission_color`** acts as a multiplier, i.e. the HDR emission in the model color space is defined to have a color given by **`emission_color`** * **`emission_luminance`**, thus the resulting luminance may be less than the input parameter, or even zero if the **`emission_color`** is set to (0, 0, 0).
1127+
The intensity of the EDF is controlled by a luminance and a color multiplier. The **`emission_luminance`** parameter controls the luminance the emissive layer would have when **`emission_color`** is set to (1, 1, 1) and in the absence of coat and fuzz. The **`emission_color`** acts as a multiplier, i.e. the HDR emission in the model color space is defined to have a color given by **`emission_color`** * **`emission_luminance`**, thus the resulting luminance may be less than the input parameter, or even zero if the **`emission_color`** is set to (0, 0, 0). Note that the **`emission_color`** components may exceed 1, in order to be able to plug in an HDR texture. [^ingamut]
11281128

11291129
Moreover, the overall material luminance may be further reduced in the presence of coat or fuzz, as they can absorb light coming from the emissive layer before it exits the surface. The emission from the top surface should in principle gain a directional dependence due to the combined effects of absorption, total internal reflection (TIR) and multiple bounces in the coat layer, and absorption in the fuzz layer. The combined effect should result mostly in darkening and saturation at grazing angles.
11301130

@@ -1133,8 +1133,8 @@
11331133

11341134
Emission params | Label | Type | Range | Norm | Default | Description
11351135
-------------------------|-----------|----------|:---------------:|:-------------:|:-------------:|----------------------------------------------
1136-
**`emission_luminance`** | Luminance | `float` | $ [0, \infty) $ | $ [0, 1000] $ | $ 0 $ | Emission luminance, in cd/m^2 (aka. nits)
1137-
**`emission_color`** | Color | `color3` | $ [0, 1]^3 $ | | $ (1, 1, 1) $ | Emission color multiplier
1136+
**`emission_luminance`** | Luminance | `float` | $[0, \infty)$ | $ [0, 1000] $ | $ 0 $ | Emission luminance, in cd/m^2 (aka. nits)
1137+
**`emission_color`** | Color | `color3` | $[0, \infty)^3$ | | $ (1, 1, 1) $ | Emission color multiplier
11381138

11391139
![](images/emitting_lava.png width=90% align=left) ![](images/emission_under_coat.png width=90% align=right)
11401140
<div class="shifted-caption">
@@ -1607,6 +1607,8 @@
16071607

16081608
[^lerp]: Where $\mathrm{lerp}(a, b, t) \equiv (1 - t) a + tb$.
16091609

1610+
[^ingamut]: Note that we assume that all RGB colors are in-gamut, and that colors representing albedos have components in the $[0,1]$ range (otherwise RGB renderers do not produce sensible results). The `emission_color` however is the exception which is permitted to have arbitrarily large (positive) components, since it represents an arbitrary luminance multiplier.
1611+
16101612
[^Jacobian]: Omitting Jacobian factors.
16111613

16121614
[^normalization]: Omitting normalization factors.

parametrization.md.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
To guarantee a non-ambiguous way to transport and present the model across different tools, for each parameter we specify in the following table:
1010
- **Identifier**: its unique identifier string (used in the formal description of the material, and in code).
1111
- **Label**: a suggested, non-unique UI name, where parameter grouping for UI purposes can be inferred based on the common identifier prefix.
12-
- **Type**: one of `float`, `boolean`, `color3`, `vector3`. A `color3` value is associated with a color space ([ACEScg](https://docs.acescentral.com/specifications/acescg/) by default), while a `vector3` value is a raw 3-component vector.
12+
- **Type**: one of `float`, `boolean`, `color3`, `vector3`. A `color3` value [^ingamut] is associated with a color space ([ACEScg](https://docs.acescentral.com/specifications/acescg/) by default), while a `vector3` value is a raw 3-component vector.
1313
- **Range**: the allowed value range for scalar parameters (per-channel for color and vector parameters).
1414
- Square brackets $[]$ indicate a range the value must be within.
1515
- Parenthesis $()$ indicate bounds are excluded from that range.
@@ -59,7 +59,7 @@
5959
| `fuzz_roughness` | Roughness | `float` | $ [0, 1] $ | | $ 0.5 $ | |
6060
| **Emission** |
6161
| `emission_luminance` | Luminance | `float` | $ [0, \infty) $ | $ [0, 1000] $ | $ 0 $ | nits |
62-
| `emission_color` | Color | `color3` | $ [0, 1]^3 $ | | $ (1, 1, 1) $ | |
62+
| `emission_color` | Color | `color3` | $ [0, \infty)^3 $ | | $ (1, 1, 1) $ | |
6363
| **Thin-film** |
6464
| `thin_film_weight` | Weight | `float` | $ [0, 1] $ | | $ 0 $ | |
6565
| `thin_film_thickness` | Thickness | `float` | $ [0, \infty) $ | $ [0, 1] $ | $ 0.5 $ | $\mathrm{\mu m}$ |

0 commit comments

Comments
 (0)