<p>Say we have a <a href="http://www.pbr-book.org/3ed-2018/Sampling_and_Reconstruction/Image_Reconstruction.html" rel="nofollow noreferrer">image reconstruction filter</a> <span class="math-container">$h:R\to\mathbb R$</span> defined on the raster space <span class="math-container">$[0,w]\times[0,h]$</span>, where <span class="math-container">$w,h\in\mathbb N$</span> define the width and height of the image plane in pixels, respectively.</p>

<blockquote>
  <p>How is this <span class="math-container">$h$</span> related to the image reconstruction filter <span class="math-container">$\tilde h$</span> defined on the path space occuring in the <a href="http://www.pbr-book.org/3ed-2018/Light_Transport_III_Bidirectional_Methods/Metropolis_Light_Transport.html#ApplicationtoRendering" rel="nofollow noreferrer">path integral formula</a> for the measurement of a pixel?</p>
</blockquote>

<p>Asked differently: How is <span class="math-container">$\tilde h$</span> defined in terms of <span class="math-container">$h$</span>?</p>

<p>Since <span class="math-container">$\tilde h$</span> only depends on the first two components of a path, we may clearly assume that <span class="math-container">$\tilde h$</span> is a function on <span class="math-container">$M^2\to\mathbb R$</span>, where <span class="math-container">$M$</span> denotes the scene geometry. For simplicity, assume a pinhole camera with eye <span class="math-container">$x_0$</span> so that <span class="math-container">$\tilde h$</span> is a function <span class="math-container">$M\to\mathbb R$</span>. I guess we may likewise consider it as a function of directions, i.e. as a function on the unit 2-sphere <span class="math-container">$S^2:=\{\omega\in\mathbb R^3:|\omega|=1\}$</span> or on the hemisphere <span class="math-container">$H^2:=\{\omega\in S^2:\omega_3&gt;0\}$</span>, corresponding to the front-facing directions (assuming camera space), if that's easier.</p>

<p><strong>EDIT 1</strong>: I define the path space <span class="math-container">$(E,\mathcal E,\lambda)$</span> in the same way as Veach did in his seminal work: <span class="math-container">$$E_k:=M^{\{0,\:\ldots\:,\:k\}},\mathcal E_k:=\mathcal B(M)^{\otimes\{0,\:\ldots\:,\:k\}},\lambda_k:=\sigma_M^{\otimes\{0,\:\ldots\:,\:k\}}$$</span> for <span class="math-container">$k\in\mathbb N,$</span> where <span class="math-container">$\sigma_M$</span> denotes the surface measure on <span class="math-container">$M$</span>, and <span class="math-container">$$E:=\bigcup_{k\in\mathbb N}E_k,\mathcal E:=\mathcal B(E),$$</span><span class="math-container">$$\lambda(B):=\sum_{k\in\mathbb N}\lambda_k(B\cap E_k)\;\;\;\text{for }B\in\mathcal E.$$</span> But, as noted before, we can restrict our attention to <span class="math-container">$(E_2,\mathcal E_2,\lambda_2)$</span> and, assuming a pinhole camera with the eye at the origin <span class="math-container">$0$</span>, we're simply actually only dealing with <span class="math-container">$(M,\mathcal B(M),\sigma_M)$</span>. Denoting the surface measure on the unit sphere by <span class="math-container">$\sigma_{S^2}$</span>, I'll define the projected solid angle kernel to be <span class="math-container">$$\sigma_M^\perp(x,B):=\int_B\sigma_{S^2}({\rm d}\omega)|\langle\nu_M(x),\omega\rangle|\;\;\;\text{for }(x,B)\in M\times\mathcal B(S^2),$$</span> where <span class="math-container">$\langle\nu_M$</span> denotes the unit normal field on <span class="math-container">$M$</span>. <span class="math-container">$\sigma_{S^2}$</span> and <span class="math-container">$\sigma_M$</span> are related by <span class="math-container">$$\int\sigma_M^\perp(x,{\rm d}\omega)f(\omega)=\int\sigma_M({\rm d}y)g(x\leftrightarrow y)f(\omega_{x\to y})\tag1$$</span> for all <span class="math-container">$x\in M$</span> and Borel measurable <span class="math-container">$f:S^2\to[0,\infty)$</span>, where <span class="math-container">$$g(x\leftrightarrow y):=\left.\begin{cases}\displaystyle\frac{\left|\left\langle\nu_M(x),\omega_{x\to y}\right\rangle\right|\left|\left\langle\nu_M(y),\omega_{y\to x}\right\rangle\right|}{|x-y|^2}&amp;\text{, if }y\text{ is visible from }x\\0&amp;\text{,otherwise}\end{cases}\right\}$$</span> for <span class="math-container">$x,y\in M$</span> and <span class="math-container">$\omega_{x\to y}:=\pi(y-x)$</span>, where <span class="math-container">$\pi$</span> denotes the projection of <span class="math-container">$\mathbb R^3\setminus\{0\}$</span> onto <span class="math-container">$S^2$</span>.</p>

<p><strong>EDIT 2</strong>: The image plane at <span class="math-container">$z=1$</span> in camera space is of the form <span class="math-container">$$I:=\left[-\frac w2,\frac w2\right)\times\left[-\frac h2,\frac h2\right)\times\{1\},$$</span> where <span class="math-container">$w,h&gt;0$</span> are the width and height (in camera space) of the image plane, respectively. It's easy to see that a ray starting at <span class="math-container">$0$</span> (the camera position in camera space) with direction <span class="math-container">$\omega\in S^2$</span> has an intersection with the infinite extension <span class="math-container">$\mathbb R^2\times\{1\}$</span> of <span class="math-container">$I$</span> if and only if <span class="math-container">$\omega\in H^2$</span> and in that case the intersection is occurring at <span class="math-container">$\frac\omega{\omega_3}$</span>.</p>

CC BY-SA 4.0
2020-02-25T12:05:09.513Z
I suggest explicitly writing out your convention for path space. For example: $X \in [0,1]^D$ is a nice convention (which allows all the integrals in the Neumann expansion to be in $[0,1]^{D_k}$). Your first vertex (the one on the film) is then simply $RSx_0 + o$, where $R$ and $S$ are respectively a rotation and scale matrix, and $o$ is one of the corners of the film. The remaining vertices are generated as usual.
lightxbulb
CC BY-SA 4.0
2020-02-25T13:52:23.203Z
@lightxbulb Please take note of my edit.
0xbadf00d
CC BY-SA 4.0
2020-02-25T15:35:21.403Z
You do not have to overcomplicate the problem - it does not help. Having raster coordinates $(\xi, \eta)$, a filter $h : [-r_x, r_x] \times [-r_y, r_y] \rightarrow \mathbb{R}_{\geq 0}$, the film $\vec{S}(\xi,\eta) = \vec{o} + \xi \vec{e}_1 + \eta \vec{e}_2$, and pixel coordinates $(\xi_{i,j}, \eta_{i,j})$ we want to express $h$ in terms of the world coordinates of $(\xi, \eta)$: $(x, y, z) = \vec{S}(\xi, \eta)$. Then $h(\xi - \xi_{i,j}, \eta - \eta_{i,j})$ $= h(S^{-1}(x,y,z) - (\xi_{i,j}, \eta_{i,j}))$. Note that $S^{-1}$ is just a matrix multiply and a translation.
lightxbulb
<raytracing><pathtracing><physically-based><global-illumination><raster-image>
How is the image reconstruction filter on the path space defined in terms of the filter on the raster space?
0xbadf00d
# How is the image reconstruction filter on the path space defined in terms of the filter on the raster space?

(Asked by: username_0 on 2020-02-25)

Say we have a [image reconstruction filter](http://www.pbr-book.org/3ed-2018/Sampling_and_Reconstruction/Image_Reconstruction.html) $h:R\to\mathbb R$ defined on the raster space $[0,w]\times[0,h]$, where $w,h\in\mathbb N$ define the width and height of the image plane in pixels, respectively.

> How is this $h$ related to the image reconstruction filter $\tilde h$ defined on the path space occuring in the [path integral formula](http://www.pbr-book.org/3ed-2018/Light_Transport_III_Bidirectional_Methods/Metropolis_Light_Transport.html#ApplicationtoRendering) for the measurement of a pixel?

Asked differently: How is $\tilde h$ defined in terms of $h$?

Since $\tilde h$ only depends on the first two components of a path, we may clearly assume that $\tilde h$ is a function on $M^2\to\mathbb R$, where $M$ denotes the scene geometry. For simplicity, assume a pinhole camera with eye $x\_0$ so that $\tilde h$ is a function $M\to\mathbb R$. I guess we may likewise consider it as a function of directions, i.e. as a function on the unit 2-sphere $S^2:=\{\omega\in\mathbb R^3:|\omega|=1\}$ or on the hemisphere $H^2:=\{\omega\in S^2:\omega\_3>0\}$, corresponding to the front-facing directions (assuming camera space), if that's easier.

**EDIT 1**: I define the path space $(E,\mathcal E,\lambda)$ in the same way as Veach did in his seminal work: $$E\_k:=M^{\{0,\:\ldots\:,\:k\}},\mathcal E\_k:=\mathcal B(M)^{\otimes\{0,\:\ldots\:,\:k\}},\lambda\_k:=\sigma\_M^{\otimes\{0,\:\ldots\:,\:k\}}$$ for $k\in\mathbb N,$ where $\sigma\_M$ denotes the surface measure on $M$, and $$E:=\bigcup\_{k\in\mathbb N}E\_k,\mathcal E:=\mathcal B(E),$$$$\lambda(B):=\sum\_{k\in\mathbb N}\lambda\_k(B\cap E\_k)\;\;\;\text{for }B\in\mathcal E.$$ But, as noted before, we can restrict our attention to $(E\_2,\mathcal E\_2,\lambda\_2)$ and, assuming a pinhole camera with the eye at the origin $0$, we're simply actually only dealing with $(M,\mathcal B(M),\sigma\_M)$. Denoting the surface measure on the unit sphere by $\sigma\_{S^2}$, I'll define the projected solid angle kernel to be $$\sigma\_M^\perp(x,B):=\int\_B\sigma\_{S^2}({\rm d}\omega)|\langle\nu\_M(x),\omega\rangle|\;\;\;\text{for }(x,B)\in M\times\mathcal B(S^2),$$ where $\langle\nu\_M$ denotes the unit normal field on $M$. $\sigma\_{S^2}$ and $\sigma\_M$ are related by $$\int\sigma\_M^\perp(x,{\rm d}\omega)f(\omega)=\int\sigma\_M({\rm d}y)g(x\leftrightarrow y)f(\omega\_{x\to y})\tag1$$ for all $x\in M$ and Borel measurable $f:S^2\to[0,\infty)$, where $$g(x\leftrightarrow y):=\left.\begin{cases}\displaystyle\frac{\left|\left\langle\nu\_M(x),\omega\_{x\to y}\right\rangle\right|\left|\left\langle\nu\_M(y),\omega\_{y\to x}\right\rangle\right|}{|x-y|^2}&\text{, if }y\text{ is visible from }x\\0&\text{,otherwise}\end{cases}\right\}$$ for $x,y\in M$ and $\omega\_{x\to y}:=\pi(y-x)$, where $\pi$ denotes the projection of $\mathbb R^3\setminus\{0\}$ onto $S^2$.

**EDIT 2**: The image plane at $z=1$ in camera space is of the form $$I:=\left[-\frac w2,\frac w2\right)\times\left[-\frac h2,\frac h2\right)\times\{1\},$$ where $w,h>0$ are the width and height (in camera space) of the image plane, respectively. It's easy to see that a ray starting at $0$ (the camera position in camera space) with direction $\omega\in S^2$ has an intersection with the infinite extension $\mathbb R^2\times\{1\}$ of $I$ if and only if $\omega\in H^2$ and in that case the intersection is occurring at $\frac\omega{\omega\_3}$.

**Tags:** raytracing, pathtracing, physically-based, global-illumination, raster-image

> **Comments:**
> **username_1**: I suggest explicitly writing out your convention for path space. For example: $X \in [0,1]^D$ is a nice convention (which allows all the integrals in the Neumann expansion to be in $[0,1]^{D_k}$). Your first vertex (the one on the film) is then simply $RSx_0 + o$, where $R$ and $S$ are respectively a rotation and scale matrix, and $o$ is one of the corners of the film. The remaining vertices are generated as usual.  
> **username_0**: @username_1 Please take note of my edit.  
> **username_1**: You do not have to overcomplicate the problem - it does not help. Having raster coordinates $(\xi, \eta)$, a filter $h : [-r_x, r_x] \times [-r_y, r_y] \rightarrow \mathbb{R}_{\geq 0}$, the film $\vec{S}(\xi,\eta) = \vec{o} + \xi \vec{e}_1 + \eta \vec{e}_2$, and pixel coordinates $(\xi_{i,j}, \eta_{i,j})$ we want to express $h$ in terms of the world coordinates of $(\xi, \eta)$: $(x, y, z) = \vec{S}(\xi, \eta)$. Then $h(\xi - \xi_{i,j}, \eta - \eta_{i,j})$ $= h(S^{-1}(x,y,z) - (\xi_{i,j}, \eta_{i,j}))$. Note that $S^{-1}$ is just a matrix multiply and a translation.  

---

## 0 answers

