star-gs

Literate program for a geometric sensitivity calculation
git clone git://git.meso-star.fr/star-gs.git
Log | Files | Refs | README | LICENSE

commit 733d06b48a7ac64e7813d5d5f6b17571aaa9aec9
parent d13ef27e5e99565ac92068db1568d1cb4b36327c
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Thu, 13 Oct 2022 15:17:39 +0200

Add the configuration figure

Diffstat:
Msrc/sgs_compute_sensitivity_translation.nw | 126+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
1 file changed, 92 insertions(+), 34 deletions(-)

diff --git a/src/sgs_compute_sensitivity_translation.nw b/src/sgs_compute_sensitivity_translation.nw @@ -19,16 +19,16 @@ \usepackage[top=1in, bottom=1in, inner=3.5cm, outer=2cm]{geometry} %\usepackage[margin=1in]{geometry} \usepackage{url} -\usepackage{amsfonts} +\usepackage{amsfonts} % \mathbb \usepackage{amsmath} \usepackage{graphicx} -\usepackage{natbib} % \citep command +\usepackage{natbib} % \citep \usepackage{noweb} -\usepackage{graphicx} -\usepackage{emptypage} +\usepackage{tikz} +\usetikzlibrary{patterns} \noweboptions{smallcode,longchunks} -% Remove clearpage after nwfilename +% Remove clearpage after nwfilename \makeatletter \def\nw@laterfilename#1{\endgroup \markboth{#1}{#1}} \makeatother @@ -64,29 +64,87 @@ décrit par un parallélépipède dont les parois sont toutes noires à l'except de la paroi supérieure qui est spéculaire (figure~\ref{fig:configuration}). La déformation géométrique que nous considérons est une translation de cette paroi. Nous étudions l'impact de cette translation sur le flux reçu par un -récepteur situé sur la paroi inférieure. +récepteur situé sur la paroi inférieure. \begin{figure} - %\includegraphics[width=1\linewidth]{TODO} + \centering + \begin{tikzpicture} + + % Paroi avant + \draw (0,0) -- (4,0) -- (4,3) -- (0,3) -- cycle; + + % Paroi de droite + \draw[pattern=dots] (4,0) -- (5,1) -- (5,4) -- + node[below=35pt, preaction={fill, white}]{$S_e$} (4,3); + + % Paroi arrière + \draw[dashed] (1,1) -- (5,1); + \draw[dashed] (1,4) -- (4.5,4); + \draw (4.5,4) -- (5,4); + + % Paroi de gauche + \draw[dashed] (0,0) -- (1,1) -- (1,3); + \draw[fill] (1,3) -- (1,3.5); + \draw[dashed] (1,3.5) -- (1,4) -- (0.5,3.5); + \draw (0.5,3.5) -- (0,3); + + % Paroi du haut, i.e. source de sensibilité + \draw[pattern=north west lines] (0,3.5) -- (4,3.5) -- + node[left=50pt, preaction={fill, white}]{$S_r$} (5,4.5) -- + (1,4.5) -- cycle; + + % Récepteur + \draw[pattern=crosshatch] + (1.25, 0.25) -- (2.75, 0.25) -- (3.25, 0.75) -- (1.75, 0.75) -- cycle; + + % Dimension du récepteur + \draw [latex-latex] (1.75, 0.9) -- + node[above, preaction={fill, white}] {$R_x$} (3.25, 0.9); + \draw [latex-latex] (2.95, 0.25) -- node[right=2pt] {$R_y$} (3.45, 0.75); + + % Dimensions de la boîte + \draw [thin, dotted] (1, 4.5) -- (1, 5); + \draw [thin, dotted] (5, 4.5) -- (5, 5); + \draw [thin, dotted] (0, 3.5) -- (-0.5, 3.5); + \draw [thin, dotted] (1, 4.5) -- (0.5, 4.5); + \draw [thin, dotted] (5, 1) -- (6.25, 1); + \draw [thin, dotted] (5,4) -- (5.5,4); + \draw [thin, dotted] (5,4.5) -- (6.25,4.5); + \draw [latex-latex] (1, 5) -- node[above] {$D_x$} (5,5); + \draw [latex-latex] (-0.5, 3.5) -- node[left=2pt] {$D_y$} (0.5, 4.5); + \draw [latex-latex] (5.5, 1) -- node[right] {$h$} (5.5, 4); + \draw [latex-latex] (5.5, 4) -- node[right] {$\PI$} (5.5, 4.5); + \draw [latex-latex] (6.25, 1) -- node[right] {$D_z(\PI)$} (6.25, 4.5); + + % Repère + \draw [-latex, thick] (0,0) -- node[below] {$\vec{e}_x$} (1.25,0); + \draw [-latex, thick] (0,0) -- node[right=2pt] {$\vec{e}_y$} (0.75,0.75); + \draw [-latex, thick] (0,0) -- node[left] {$\vec{e}_z$} (0,1.25); + \end{tikzpicture} + + \flushleft \caption{\textbf{La configuration géométrique} est un parallélépipède de dimension $D_x \times D_y \times D_z(\PI)$, avec $D_z(\PI) = h+\PI$, repéré - dans la base $(\vec{e}_x, \vec{e}_y, \vec{e}_z)$ (voir figure de - \textit{gauche}). Le paramètre $\PI$ est le paramètre géométrique, il est - défini sur $\mathbb{R}^{+}$, en le modifiant la position de la paroi - supérieure est translatée vers le haut. Les parois latérales ne dépendent pas - de $\PI$, lorsque la paroi du haut est translatée le cube "s'ouvre" (voir - figure de \textit{droite}). Le récepteur est positionné sur la paroi du bas - et a pour dimension $R_x \times R_y$. Toutes les parois du - parallélépipède sont noires à l'exception de la paroi du haut (de surface - $S_r = D_x \times D_y$) qui est spéculaire, froide, et munie d'un coefficient - de réflexion $\rho$ défini dans l'équation \ref{eq:rho}. Seule la paroi - noire de droite (de surface $S_e = D_y \times h$) est émettrice et la - condition à la limite associée est décrite par l'équation \ref{eq:cl_rad}. - Le milieu englobant la "boite" est considéré froid et transparent.} - \label{fig:configuration} \end{figure} + dans la base $(\vec{e}_x, \vec{e}_y, \vec{e}_z)$. Le paramètre $\PI$ est le + paramètre géométrique, il est défini sur $\mathbb{R}^{+}$, en le modifiant la + position de la paroi supérieure est translatée vers le haut. Les parois + latérales ne dépendent pas de $\PI$, lorsque la paroi du haut est translatée + le cube ``s'ouvre". Le récepteur est + positionné sur la paroi du bas et a pour dimension $R_x \times R_y$. Toutes + les parois du parallélépipède sont noires à l'exception de la paroi du haut + (de surface $S_r = D_x \times D_y$) qui est spéculaire, froide, et munie d'un + coefficient de réflexion $\rho$ défini dans l'équation \ref{eq:rho}. Seule + la paroi noire de droite (de surface $S_e = D_y \times h$) est émettrice et + la condition à la limite associée est décrite par l'équation \ref{eq:cl_rad}. + Le milieu englobant la ``boite" est considéré froid et transparent.} + + \label{fig:configuration} + +\end{figure} + \begin{equation} \rho(\vec{x},-\vec{\omega}) = 0.25 (1- \cos(2 \pi \frac{x}{Dx})(1- \cos(2 \pi -\frac{y}{Dy}) +\frac{y}{Dy}) \label{eq:rho} \end{equation} @@ -98,7 +156,7 @@ L(\vec{x},\vec{\omega},\PI) = S_b \quad \quad \quad \vec{x} \in A_d ; avec $S_b$ la source surfacique qui correspond à l'émission thermique de la paroi: \begin{equation} -S_b = L^{eq}(T)(1- \cos(2 \pi \frac{x}{Dx})(1- \cos(2 \pi \frac{y}{Dy}) +S_b = L^{eq}(T)(1- \cos(2 \pi \frac{x}{Dx})(1- \cos(2 \pi \frac{y}{Dy}) \end{equation} L'observable radiative est le flux $\varphi$ perçu par le récepteur qui @@ -129,12 +187,12 @@ point du récepteur. La sensibilité géométrique de la luminance est définie telle que: \begin{equation} s(\vec{x},\vec{\omega},\PI) = \partial_{3} L(\vec{x},\vec{\omega},\PI) = -\partial_{\PI} L(\vec{x},\vec{\omega},\PI) +\partial_{\PI} L(\vec{x},\vec{\omega},\PI) \end{equation} Elle est regardée ici comme une quantité physique à part entière dont la phénoménologie est décrite par une équation de transfert radiatif dans le domaine et par des contraintes aux frontières (conditions aux limites) pour la -sensibilité entrante dans le domaine. +sensibilité entrante dans le domaine. \paragraph{Équation de transport} Dans \citep{papier_sensib} l'équation de la sensibilité dans le milieu est @@ -144,7 +202,7 @@ l'equation \ref{eq:ETR-S}, avec $s = s(\vec{x},\vec{\omega},\PI)$: \vec{w} \cdot \vec{\nabla} s = \mathcal{C}[s] \label{eq:ETR-S} \end{equation} -et +et \begin{equation} \mathcal{C}[s] = -(k_a + k_s) s + k_s \int_{\mathcal{S}} p_{\Omega'}(-\vec{\omega}'|\vec{x},\vec{\omega}) d\vec{\omega'} @@ -156,7 +214,7 @@ La seule paroi du cube paramétrée par $\PI$ est la paroi du haut qui est spéculaire. Seule cette paroi sera donc source de sensibilité géométrique: \begin{equation} \begin{aligned} -s_{droite} = s_{gauche} = s_{devant} = s_{derri\grave{e}re} = s_{bas} = 0 \\ +s_{droite} = s_{gauche} = s_{devant} = s_{derri\grave{e}re} = s_{bas} = 0 \\ s_{haut} = s(\vec{x},\vec{\omega},\PI) \quad \quad \quad \vec{x} \in S_{haut} ; \vec{\omega} \cdot \vec{n}_{haut} > 0 \end{aligned} @@ -172,7 +230,7 @@ mènent à cette expression): s(\vec{x},\vec{\omega},\PI) = & - \beta \left(\partial_{1,\vec{u}}\rho(\vec{x},-\vec{\omega}) \right) L(\vec{x},\vec{\omega}_{spec},\PI) \quad \quad \quad \vec{x} \in A_h ; -\vec{\omega} \cdot \vec{n} > 0\\ +\vec{\omega} \cdot \vec{n} > 0\\ & + \partial_{1,\vec{\chi}}L(\vec{x},\vec{\omega}_{spec},\PI) - \beta \partial_{1,\vec{u}} L(\vec{x},\vec{\omega}_{spec},\PI) \end{aligned} @@ -200,7 +258,7 @@ géométrique dans la boite revient à résoudre un problème de transport coupl qui dépend à la fois des source radiatives (à travers $L_{spec}$), des sources de dérivées spatiales dans la direction $\vec{u}$ (à travers $\partial_{1,\vec{u}} L_{spec}$) et des sources de dérivées spatiales dans la -direction $\vec{\chi}$ (à travers $\partial_{1,\vec{\chi}} L_{spec}$). +direction $\vec{\chi}$ (à travers $\partial_{1,\vec{\chi}} L_{spec}$). \paragraph{Les sources du problème couplé} Les sources radiatives ont été décrites dans la figure \ref{configuration} @@ -322,7 +380,7 @@ error: \paragraph{} Algo Monte-Carlo fortement lié à la scène. Pas d'orthogonalité -données/traitement~: +données/traitement~: \begin{itemize} \item on a à l'échelle de la réalisation une description complète de la scène considérée (section~\ref{sec:get-scene-data})\,; @@ -359,7 +417,7 @@ d3_sub(box_sz, box_upp, box_low); \paragraph{} Le récepteur et l'émetteur sont tout deux fixés relativement aux dimensions de la boîte. Ces positions et dimensions relatives sont -définies dans les constantes suivantes~: +définies dans les constantes suivantes~: \begin{itemize} \item{[[RECV_MIN]] et [[RECV_MAX]]~: décrivent les bornes inférieure et supérieure du récepteur\,;} @@ -403,12 +461,12 @@ exemple il ne soit pas explicité. Souligner l'importance d'un repaire /* Sample the cosine weighted sampling of the emissive direction */ ssp_ran_hemisphere_cos(rng, frag.normal, dir_emit, NULL); - + pos_emit[0] = frag.position[0]; pos_emit[1] = frag.position[1]; pos_emit[2] = frag.position[2]; @ - + <<liste des inclusions>>= #include "sgs_c.h" #include "sgs_geometry.h" @@ -454,7 +512,7 @@ luminance et dans le cas d'une paroi spéculaire il s'écrit: \vec{\omega}_{spec}) L(\vec{x},\vec{\omega}',\PI) d\vec{\omega}' \end{equation} avec $\vec{\omega}_{spec} = \vec{\omega} - 2(\vec{\omega} \cdot -\vec{n})\vec{n}$ +\vec{n})\vec{n}$ \paragraph{Condition à la limite de notre exemple} Pour commencer seule la paroi spéculaire est source de sensibilité géométrique.