Skip to content

Commit 15bf2e1

Browse files
committed
Add note about Gram-Schmidt orthogonalization
1 parent b727791 commit 15bf2e1

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,7 @@
12881288
In practice, the supplied base normal $\mathbf{N}_B$ (and similarly for the coat) will typically be defined via texture maps which specify how to transform the reference normal $\mathbf{N}'_B$ and reference tangent $\mathbf{T}'_B$ into the perturbed normal $\mathbf{N}_B$. Similarly, the anisotropy tangent $\mathbf{T}_B$ will typically be defined with respect to the reference $\mathbf{N}'_B$ and $\mathbf{T}'_B$, for example via 2D vector "flow maps" [#Vlachos2010]. As noted in the Metadata section, the particular parametrization which maps the contents of the texture to the perturbation of the normal or tangent in the shading frame is not defined in the model itself, as this can be done in multiple ways. It is instead just assumed that the material is packaged with metadata that makes this mapping unambiguous.
12891289

12901290
It is _not_ required that the resultant input **`geometry_normal`** $\mathbf{N}_B$ and **`geometry_tangent`** $\mathbf{T}_B$ are strictly normalized and orthogonal (and similarly for the coat normal and tangent).
1291-
For example reconstruction filtering techniques such as texture filtering may cause the interpolated normal to not be normalized. However, we _do_ require that the implementation should (if not already ensured) ensure orthonormality of the final vertex shading frame of the BSDF, by applying
1291+
For example reconstruction filtering techniques such as texture filtering may cause the interpolated normal to not be normalized. However, we _do_ require that the implementation should (if not already ensured) ensure orthonormality of the final vertex shading frame of the BSDF, by applying (via Gram-Schmidt orthogonalization)
12921292
\begin{align*}
12931293
&\mathbf{N}_B \rightarrow \mathrm{normalize}(\mathbf{N}_B), &\quad& \mathbf{T}_B \rightarrow \mathrm{normalize}\bigl(\mathbf{T}_B - (\mathbf{N}_B\cdot \mathbf{T}_B) \mathbf{N}_B\bigr) \nonumber \\
12941294
&\mathbf{N}_C \rightarrow \mathrm{normalize}(\mathbf{N}_C), &\quad& \mathbf{T}_C \rightarrow \mathrm{normalize}\bigl(\mathbf{T}_C - (\mathbf{N}_C\cdot \mathbf{T}_C) \mathbf{N}_C\bigr) \ .

0 commit comments

Comments
 (0)