I was reading this slope space integral paper. Can anyone help to explain slope space and slope distribution mentioned in this paper, and why we can use normal and half vector to represent 2D positions in slope space? Thanks!
2 Answers
If we have a vector in the upper hemisphere in tangent space, $(x, y, z)$ with $z > 0$, then the slopes of the vector are $(\tilde x, \tilde y) = (-x/z, -y/z)$. These values are the slopes (derivatives), along $x$ and $y$, of a surface that is normal to the given vector. See also equation (4) in the paper, which is the conversion back and forth between slopes and vectors.
The 2D space of slope values is called "slope space". It is an unbounded space, so any $(\tilde x, \tilde y)$ point represents a valid vector in tangent space (such as a microfacet normal). Geometrically, you can picture it like the intersection of the vector with the $z = 1$ plane. It produces an invertible, one-to-one mapping (bijection) between the upper hemisphere and the plane.
Slope space is often used in microfacet BRDF theory because of its desirable properties. Since it is unbounded, it can be more convenient to define functions and do mathematics in slope space than in spherical coordinates, or directly on the normals. Geometric transformations on the microfacet surface, such as scaling and shearing, have straightforward expressions in slope space. The most common NDFs, Beckmann and GGX, also have a simpler expressions in slope space: Beckmann is a Gaussian distribution in slope space, while GGX is a Student's t-distribution in slope space.
Edit: I wrote a more in-depth blog post on this topic in case more explanation is needed.
-
$\begingroup$ Why is the slopes of the vector are (𝑥̃ ,𝑦̃ )=(−𝑥/𝑧,−𝑦/𝑧)? Any material that I can read about or any pictures to demonstrate this? $\endgroup$– SSSCommented Jul 7, 2021 at 0:23
-
1$\begingroup$ @SSS Consider a plane equation $Ax + By + Cz = 0$ where $(A, B, C)$ is the normal vector to the plane. Write $z$ as a function of $x, y$: $z = (-Ax - By) / C$. Then calculate $\partial z / \partial x$ and you can see it's $-A/C$, similarly $\partial z / \partial y$ gives $-B/C$. $\endgroup$ Commented Jul 7, 2021 at 0:32
-
1$\begingroup$ @SSS See slide 17 in this presentation for example: wiki.tizen.org/images/0/0c/Chapter_11%28Normal_mapping%29.pdf $\endgroup$ Commented Jul 7, 2021 at 0:56
-
1$\begingroup$ The slopes are cartesian coordinates on that plane. $\endgroup$ Commented Jul 7, 2021 at 2:05
-
1$\begingroup$ @SSS I added a diagram and a link to a blog I wrote with more in depth explanation. $\endgroup$ Commented Jul 17, 2021 at 16:59
Nathan's answer and his in-depth blog post are just great. However following pictures helped me a lot to visually understand slope space. From Dupuy thesis (Photorealistic Surface Rendering with Microfacet Theory, 2015).