<ol>
<li><p>PSSMT operates directly on the space of random numbers that generate valid light paths. As such, mutations in the unit hypercube <em>lose</em> their physical interpretation since they do not have direct knowledge of the actual light path constructed. Recent research in rendering has shown that it is possible to bridge the gap between path space (that acts directly on the paths) and primary sample space (that acts on uniform variates) to some extent. See <a href="https://benedikt-bitterli.me/rjmlt/" rel="nofollow noreferrer">Bitterli 2018</a>, <a href="https://dl.acm.org/citation.cfm?id=3073677" rel="nofollow noreferrer">Pantaleoni 2017</a> and <a href="https://dl.acm.org/citation.cfm?id=3073691" rel="nofollow noreferrer">Otsu 2017</a> if that interests you.</p></li>
<li><p>I am not entirely sure what you mean here, but typically an initial path of length $k$ will be formed using path tracing, and thus random numbers will be used along the way ($k+2$ if you are using BDPT). PSSMLT will mutate this path by acting only on the random numbers. Path throughput is indeed independent of the pixel but you only care about paths actually reaching the eye. At the end of the day, you are importance sampling paths according to their contribution to the final image, and luminance is what is commonly used. </p></li>
</ol>

CC BY-SA 4.0
2018-09-04T06:30:41.360Z
With your answer to question 1, I still have no idea how and for what these random numbers are used.
0xbadf00d
CC BY-SA 4.0
2018-09-04T15:13:38.797Z
@0xbadf00d how do you construct paths from random scattering events? When you are uniformly sampling a direction in the unit hemisphere, you need two canonical random numbers $\xi_1,\xi_2 \in (0,1)$. These are your random numbers. You need these $\xi_i$'s for any non-deterministic BRDFs.
Hubble
CC BY-SA 4.0
2018-09-04T16:21:25.513Z
As you wrote, I need *uniformly* distributed random numbers (for a diffuse reflection). But, for example, the small step mutations use a normal distribution to modify the $\xi_i$'s. That's what I don't understand.
0xbadf00d
CC BY-SA 4.0
2018-09-03T23:00:41.957Z
2018-09-03T23:00:41.957Z
Hubble
<p>For simplicity, assume we're only dealing with surfaces which have either a Lambertian or perfectly specular material. Morever, assume that the only type of lights are area lights (i.e. surfaces with an emissive material) and we stop tracing at lights.</p>

<p>In path tracing, we start by tracing a ray from the eye through a random point on the area of the view plane corresponding to the $i$th pixel. Now, depending on the BRDF of the hitted surface, we choose either a uniformly distributed direction on the hemisphere over the normal at the hit point (in the case of a Lambertian surface) or the direction of perfect mirror reflection (in the case of a perfectly specular surface). This process stops, when either no surface or a surface with an emissive material (i.e. an area light) was hit.</p>

<p><strong>Quesiton 1</strong>: Now, PSSMLT constructs a sequence $(X_n)_{n\in\mathbb N}\subseteq[0,1]$. Actually, it's even clear to me how this sequence is modified by small step and large step modifications. However, what are the components $X_n$ exactly? Are $(X_1,X_2)$ the (normialized) coordinates of the randomly chosen area of the view plane corresponding to a pixel? If so, which pixel? And what is $(X_3,X_4)$? Maybe randomly chosen points on a unit square which need to be mapped to the hemisphere of the corresponding hit point? If so, we would need to store the normal and the BRDF together with $(X_3,X_4)$, don't we? And what if the surface which was hit has a perfectly specular material? Are then $(X_3,X_4)$ simply ignored?</p>

<p><strong>Question 2</strong>: I've read that initial sequence $(X_n)_{n\in\mathbb N}$ is chosen by approximating the "luminance of path contribution" which is said to be independent of the pixel. I don't get that at all. And I have no idea how it is approximated by using path tracing.</p>

<raytracing><rendering><pathtracing><global-illumination><monte-carlo>
How does Primary Sample Space Metropolis Light Transport work?
0xbadf00d
# How does Primary Sample Space Metropolis Light Transport work?

(Asked by: username_0 on 2018-09-03)

For simplicity, assume we're only dealing with surfaces which have either a Lambertian or perfectly specular material. Morever, assume that the only type of lights are area lights (i.e. surfaces with an emissive material) and we stop tracing at lights.

In path tracing, we start by tracing a ray from the eye through a random point on the area of the view plane corresponding to the $i$th pixel. Now, depending on the BRDF of the hitted surface, we choose either a uniformly distributed direction on the hemisphere over the normal at the hit point (in the case of a Lambertian surface) or the direction of perfect mirror reflection (in the case of a perfectly specular surface). This process stops, when either no surface or a surface with an emissive material (i.e. an area light) was hit.

**Quesiton 1**: Now, PSSMLT constructs a sequence $(X\_n)\_{n\in\mathbb N}\subseteq[0,1]$. Actually, it's even clear to me how this sequence is modified by small step and large step modifications. However, what are the components $X\_n$ exactly? Are $(X\_1,X\_2)$ the (normialized) coordinates of the randomly chosen area of the view plane corresponding to a pixel? If so, which pixel? And what is $(X\_3,X\_4)$? Maybe randomly chosen points on a unit square which need to be mapped to the hemisphere of the corresponding hit point? If so, we would need to store the normal and the BRDF together with $(X\_3,X\_4)$, don't we? And what if the surface which was hit has a perfectly specular material? Are then $(X\_3,X\_4)$ simply ignored?

**Question 2**: I've read that initial sequence $(X\_n)\_{n\in\mathbb N}$ is chosen by approximating the "luminance of path contribution" which is said to be independent of the pixel. I don't get that at all. And I have no idea how it is approximated by using path tracing.

**Tags:** raytracing, rendering, pathtracing, global-illumination, monte-carlo


---

## 1 answers

### Answer by username_1 on 2018-09-03. Score: 1

1. PSSMT operates directly on the space of random numbers that generate valid light paths. As such, mutations in the unit hypercube *lose* their physical interpretation since they do not have direct knowledge of the actual light path constructed. Recent research in rendering has shown that it is possible to bridge the gap between path space (that acts directly on the paths) and primary sample space (that acts on uniform variates) to some extent. See [Bitterli 2018](https://benedikt-bitterli.me/rjmlt/), [Pantaleoni 2017](https://dl.acm.org/citation.cfm?id=3073677) and [Otsu 2017](https://dl.acm.org/citation.cfm?id=3073691) if that interests you.
2. I am not entirely sure what you mean here, but typically an initial path of length $k$ will be formed using path tracing, and thus random numbers will be used along the way ($k+2$ if you are using BDPT). PSSMLT will mutate this path by acting only on the random numbers. Path throughput is indeed independent of the pixel but you only care about paths actually reaching the eye. At the end of the day, you are importance sampling paths according to their contribution to the final image, and luminance is what is commonly used.

> **Comments:**
> **username_0**: With your answer to question 1, I still have no idea how and for what these random numbers are used.  
> **username_1**: @username_0 how do you construct paths from random scattering events? When you are uniformly sampling a direction in the unit hemisphere, you need two canonical random numbers $\xi_1,\xi_2 \in (0,1)$. These are your random numbers. You need these $\xi_i$'s for any non-deterministic BRDFs.  
> **username_0**: As you wrote, I need *uniformly* distributed random numbers (for a diffuse reflection). But, for example, the small step mutations use a normal distribution to modify the $\xi_i$'s. That's what I don't understand.  

---

