Update on Overleaf.

This commit is contained in:
uxwmp 2023-06-15 09:26:12 +00:00 committed by node
commit cd463f4a54
56 changed files with 1974 additions and 0 deletions

14
.gitignore vendored Normal file
View file

@ -0,0 +1,14 @@
presentation.aux
presentation.bbl
presentation.bcf
presentation.blg
presentation.fdb_latexmk
presentation.fls
presentation.log
presentation.nav
presentation.out
presentation.pdf
presentation.run.xml
presentation.snm
presentation.synctex.gz
presentation.toc

0
handout/bibliography.bib Normal file
View file

196
handout/handout.tex Normal file
View file

@ -0,0 +1,196 @@
%\newcommand{\CLASSINPUTtoptextmargin}{1.5cm}
\newcommand{\CLASSINPUTbottomtextmargin}{2.5cm}
\documentclass[conference, a4paper, hidelinks]{IEEEtran}
% BEGIN: DO NOT CHANGE HERE!
\pagenumbering{gobble}
\makeatletter
\def\@maketitle{%
\newpage
\null
\begin{center}%
{\LARGE \textsf \@title \par} % Adjust the font size and style of the title
\vskip 0.5em % Adjust the vertical spacing after the title
{\small \textsf{Proseminar Differentiable Programming} \par}
\vskip 0.5em % Adjust the vertical spacing after the subtitle
{\small \textsf \@author \par }
\vskip 0.5em % Adjust the vertical spacing after the author
{\small \textsf \@date \par} % Adjust the font size and style of the date
\end{center}%
\par
\vskip -1em % Adjust the vertical spacing after the title block
}
\makeatother
% END: DO NOT CHANGE HERE!
\title{The Title of Your Talk}
\author{Your Name}
\date{02.03.2023} % Put the date of your talk here
% Bibliography setup
\usepackage[citestyle=numeric,bibstyle=numeric,hyperref,backend=biber]{biblatex}
\addbibresource{bibliography.bib}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{hyperref}
% Do not add anything here
\begin{document}
\maketitle
\begin{abstract}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus euismod varius diam, ut maximus neque efficitur quis. Etiam laoreet, nunc sed sagittis tristique, velit velit feugiat metus, id tincidunt tellus turpis ut neque. Pellentesque maximus ex quis massa pretium posuere. Phasellus lacus lacus, egestas laoreet tellus a, ornare egestas arcu. Aliquam at velit ut velit egestas pretium. In a ipsum volutpat, varius magna et, suscipit augue. Nulla eleifend magna quis condimentum dictum. \cite{DBLP:journals/ibmrd/RabinS59}
\end{abstract}
\section{Introduction}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus euismod varius
diam, ut maximus neque efficitur quis. Etiam laoreet, nunc sed sagittis
tristique, velit velit feugiat metus, id tincidunt tellus turpis ut neque.
Pellentesque maximus ex quis massa pretium posuere. Phasellus lacus lacus,
egestas laoreet tellus a, ornare egestas arcu. Aliquam at velit ut velit
egestas pretium. In a ipsum volutpat, varius magna et, suscipit augue. Nulla
eleifend magna quis condimentum dictum.
Nam et risus arcu. Nulla pulvinar nibh risus, eget dignissim ipsum condimentum
in. Quisque non felis ac sapien consectetur accumsan. Mauris in iaculis arcu.
Nullam sit amet ullamcorper leo, sit amet mattis tortor. Vestibulum molestie
justo non felis mattis semper. Curabitur ac justo nunc. Ut tempus odio est,
vitae fringilla risus eleifend id. Aliquam convallis ante orci, quis consequat
dolor finibus a.
\section{How to cite a reference}
\subsection{Add it to the bibliography}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac lobortis
nibh. Curabitur erat lectus, posuere sit amet dapibus eu, rutrum eget metus.
Maecenas aliquam dapibus sem eget scelerisque. Aliquam nec elementum elit.
Aliquam erat volutpat. Mauris a pretium ex. Proin non magna eget nibh elementum
euismod. Etiam nulla tellus, ullamcorper quis molestie eget, tincidunt eget
urna. Nulla suscipit eros quis ex fringilla iaculis. In mollis ante sed nisi
tincidunt tempor nec at ipsum. Duis mauris ligula, pretium sit amet risus in,
porttitor vestibulum tortor. Nulla ullamcorper ante quis massa semper, vitae
blandit risus rutrum. Sed sed eros velit.
\paragraph*{Duis} sed augue quis dolor vulputate aliquam. Donec ultrices egestas
felis, ac dignissim lacus ultricies at. Nunc fermentum porta mi, sit amet
mattis purus venenatis at. Etiam nec justo et nunc fermentum ullamcorper ac in
libero. Proin tempor turpis volutpat consequat posuere. Sed aliquam purus vel
mauris rhoncus, in interdum mauris tincidunt. Sed rhoncus eros id risus
convallis, et varius risus ultrices.
\begin{table}[htbp]
\caption{Table Type Styles}
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
\textbf{Table} & \multicolumn{3}{|c|}{\textbf{Table Column Head}} \\
\cline{2-4}
\textbf{Head} & \textbf{\textit{Table column subhead}} & \textbf{\textit{Subhead}} & \textbf{\textit{Subhead}} \\
\hline
copy & More table copy$^{\mathrm{a}}$ & & \\
\hline
\multicolumn{4}{l}{$^{\mathrm{a}}$Sample of a Table footnote.}
\end{tabular}
\label{tab1}
\end{center}
\end{table}
\textcolor{red}{We can refer to Table \ref{tab1}.}
Sed viverra sollicitudin tellus sit amet auctor. Sed ut convallis purus. Nulla
non quam vitae est egestas fermentum. Maecenas porta erat at mi luctus
vestibulum. Vestibulum volutpat efficitur augue a maximus. Vestibulum
imperdiet, mi eu facilisis ornare, urna massa dapibus enim, vel fringilla ipsum
tellus ut urna. Vestibulum ante ipsum primis in faucibus orci luctus et
ultrices posuere cubilia curae; Proin malesuada dictum dui, at ornare nisl
blandit a. Phasellus a mauris vitae enim auctor consectetur. Suspendisse
potenti. Morbi porttitor scelerisque hendrerit. Sed congue egestas tellus, eu
congue nulla pulvinar eget.
Nullam lobortis semper neque eget volutpat. In hac habitasse platea dictumst.
Maecenas rhoncus risus vitae pulvinar interdum. Suspendisse faucibus metus
velit, eget posuere elit elementum mollis. Ut dictum eleifend tortor ac
facilisis. Cras ultrices volutpat viverra. Nulla facilisi. Aenean et ornare
urna. Duis pulvinar justo ac nulla pretium porta. Vestibulum ante ipsum primis
in faucibus orci luctus et ultrices posuere cubilia curae; In molestie dapibus
rhoncus. Nam lacinia ex eget dui iaculis faucibus.
Proin lacus nisl, semper vitae ex sed, dignissim ullamcorper quam. Vivamus
volutpat feugiat odio et eleifend. Maecenas interdum, elit et facilisis
commodo, leo est pharetra quam, at elementum dolor risus ut est. Nam eleifend
est sit amet eleifend aliquet. Pellentesque egestas rutrum lectus, cursus
viverra lectus lacinia id. Nunc tincidunt eleifend urna id blandit. Mauris
vestibulum tincidunt augue. Sed feugiat, ante sit amet porttitor pretium, ante
enim rhoncus justo, sit amet suscipit sem tortor et quam. Praesent at sagittis
tortor, id aliquam tortor. Praesent iaculis purus ut dui ultricies ultricies.
Proin gravida pharetra tortor quis sagittis. Fusce gravida consequat ex, ac
sodales diam sodales sodales.
\subsection{Refer to it in the text}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac lobortis
nibh. Curabitur erat lectus, posuere sit amet dapibus eu, rutrum eget metus.
Maecenas aliquam dapibus sem eget scelerisque. Aliquam nec elementum elit.
Aliquam erat volutpat. Mauris a pretium ex. Proin non magna eget nibh elementum
euismod. Etiam nulla tellus, ullamcorper quis molestie eget, tincidunt eget
urna. Nulla suscipit eros quis ex fringilla iaculis. In mollis ante sed nisi
tincidunt tempor nec at ipsum. Duis mauris ligula, pretium sit amet risus in,
porttitor vestibulum tortor. Nulla ullamcorper ante quis massa semper, vitae
blandit risus rutrum. Sed sed eros velit.
\begin{figure}[htbp]
\centerline{\includegraphics[width=\columnwidth,keepaspectratio]{Logo_KIT.png}}
\caption{The KIT Logo}
\label{kitlogo}
\end{figure}
\textcolor{red}{Note} that the figure will float to the top of the column and is not necessarily
placed where it is included. We may refer to the KIT logo as Figure
\ref{kitlogo}.
Duis sed augue quis dolor vulputate aliquam. Donec ultrices egestas felis, ac
dignissim lacus ultricies at. Nunc fermentum porta mi, sit amet mattis purus
venenatis at. Etiam nec justo et nunc fermentum ullamcorper ac in libero. Proin
tempor turpis volutpat consequat posuere. Sed aliquam purus vel mauris rhoncus,
in interdum mauris tincidunt. Sed rhoncus eros id risus convallis, et varius
risus ultrices.
Sed viverra sollicitudin tellus sit amet auctor. Sed ut convallis purus. Nulla
non quam vitae est egestas fermentum. Maecenas porta erat at mi luctus
vestibulum. Vestibulum volutpat efficitur augue a maximus. Vestibulum
imperdiet, mi eu facilisis ornare, urna massa dapibus enim, vel fringilla ipsum
tellus ut urna. Vestibulum ante ipsum primis in faucibus orci luctus et
ultrices posuere cubilia curae; Proin malesuada dictum dui, at ornare nisl
blandit a. Phasellus a mauris vitae enim auctor consectetur. Suspendisse
potenti. Morbi porttitor scelerisque hendrerit. Sed congue egestas tellus, eu
congue nulla pulvinar eget.
\newpage
\textcolor{red}{\emph{Important} Move this newpage command between two pargraphs to approximately equalize the length of the columns on the last page.}
% Make sure that the right column is no longer than the left column.
Nullam lobortis semper neque eget volutpat. In hac habitasse platea dictumst.
Maecenas rhoncus risus vitae pulvinar interdum. Suspendisse faucibus metus
velit, eget posuere elit elementum mollis. Ut dictum eleifend tortor ac
facilisis. Cras ultrices volutpat viverra. Nulla facilisi. Aenean et ornare
urna. Duis pulvinar justo ac nulla pretium porta.
Proin lacus nisl, semper vitae ex sed, dignissim ullamcorper quam. Vivamus
volutpat feugiat odio et eleifend. Maecenas interdum, elit et facilisis
commodo, leo est pharetra quam, at elementum dolor risus ut est. Nam eleifend
est sit amet eleifend aliquet. Pellentesque egestas rutrum lectus, cursus
viverra lectus lacinia id. Nunc tincidunt eleifend urna id blandit. Mauris
vestibulum tincidunt augue. Sed feugiat, ante sit amet porttitor pretium, ante
enim rhoncus justo, sit amet suscipit sem tortor et quam. Praesent at sagittis
tortor, id aliquam tortor. Praesent iaculis purus ut dui ultricies ultricies.
Proin gravida pharetra tortor quis sagittis. Fusce gravida consequat ex, ac
sodales diam sodales sodales.
% BIBLIOGRAPHY
\nocite{*} % List all entries of the .bib file, even those not cited in the main body
\printbibliography
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 697 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,78 @@
\section{Basic terms}
\begin{frame}
\centering
\Huge
Basic terms
\end{frame}
\subsection{Raytracing}
\begin{frame}{Raytracing}
\begin{center}
\begin{minipage}{0.4\linewidth}
\flushleft Turn 3D model...
\includegraphics[width=\linewidth]{presentation/img/proseminar_workbench.png}
\end{minipage}
\pause
$\rightarrow$
\hspace{10mm}
\begin{minipage}{0.4\linewidth}
\flushright ...into a physically accurate image
\includegraphics[width=0.8\linewidth]{presentation/img/proseminar_cycles.png}
\end{minipage}
\end{center}
\end{frame}
\begin{frame}{Raytracing}
\begin{block}{Task}
\begin{itemize}
\item Determine the color of each Pixel in the scene
\item Color (light intensity) is given by the rendering integral:\\
\[
\underbrace{I(x,x^{\prime})}_{\text{Light transport intensity from }x \text{ to } x^{\prime}}=
\underbrace{g(x,x')}_{\text{geometry term}}
\left[
\underbrace{\epsilon(x,x')}_{\text{emissive light}}+\underbrace{\int_S \rho(x,x',x'')I(x',x'')dx''}_{\text{light scattered towards the point}}
\right]
\]
\begin{itemize}
\item Attempts to capture the physical light transport phenomenon in a single equation
\end{itemize}
[\cite{ACM:rendering_equation}]
\item Problem: This equation is not analytically solvable\\
$\rightarrow$ Solve numerically using Monte-Carlo integration (i.e. raytracing)
\end{itemize}
\end{block}
\end{frame}
\begin{frame}{Raytracing}
\setbeamercovered{transparent}
\begin{block}{Principle (simplified)}
\begin{itemize}
\item Cast rays from the camera towards the scene
\item Calculate geometry intersection
\item Trace rays from intersection point to all light sources
\item Calculate color from emission and the sampled reflected light taking geometry into account (e.g. occlusion)
\item Have the ray "bounce around" to account for global illumination
\end{itemize}
\end{block}
\pause
\begin{block}{Variables}
Scene depends on lots of variables:
\begin{itemize}
\item Material properties (roughness, emission strength, color, transmissiveness...)
\item Vertex positions
\end{itemize}
\end{block}
\end{frame}
\begin{frame}{Image synthesis - optical phenomena}
\centering
\includegraphics[width=0.38\linewidth]{presentation/img/proseminar_cycles_annotated.png}
\end{frame}
\subsection{Differentiable rendering}
\begin{frame}{Differentiable rendering}
\begin{itemize}
\item Given: Function mapping an 3D-scene to a real number (e.g. error function)
\item Target: Calculate gradient of that function
\item Required: Differentiate with respect to any scene parameter
\end{itemize}
\end{frame}

View file

@ -0,0 +1,104 @@
\section{Motivation - why differentiable rendering is important}
\begin{frame}
\centering
\Huge
Motivation - why differentiable rendering is important
\end{frame}
\begin{frame}{Importance of differentiable rendering}
\begin{block}{Examples for Applications}
\begin{itemize}
\item Learning-based Inverse Rendering of Complex Indoor Scenes
with Differentiable Monte Carlo Raytracing [\cite{ACM:inverse_rendering}]\\
$\rightarrow$ Inverse rendering
\item Generating Semantic Adversarial Examples with Differentiable Rendering [\cite{DBLP:journals/corr/abs-1910-00727}]\\
$\rightarrow$ Machine learning
\item Real-Time Lighting Estimation for Augmented Reality [\cite{IEEE:AR_lighting_estimation}]\\
$\rightarrow$ Realistic real time shading for AR applications
\item Acoustic Camera Pose Refinement [\cite{IEEE:Ac_cam_refinment}]\\
$\rightarrow$ Optimize six degrees of freedom for acoustic underwater cameras
\end{itemize}
\end{block}
\end{frame}
\subsection{Inverse rendering}
\begin{frame}{Inverse rendering}
\begin{itemize}
\item Conventional rendering: Synthesize an Image from a 3D scene
\item Inverse rendering is solving the inverse problem: Synthesize a 3D scene from images
\item 3D modelling can be hard and time consuming
\item Approach:
\begin{itemize}
\item Approximate the 3D scene (often very coarse)
\item Render the approximation differentiably
\item Calculate the error between the render and the images
\item Use ADAM or comparable gradient descent algorithm to minimize this error
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Inverse rendering - current example}
\centering
\includemedia[
width=0.62\linewidth,height=0.35\linewidth,
activate=onclick,
addresource=proseminar_chair.mp4,
playbutton=fancy,
transparent,
passcontext,
flashvars={
source=proseminar_chair.mp4
&autoPlay=true
}
]{}{VPlayer.swf}
\\
Source: \cite{ACM:inverse_rendering_signed_distance_function}
\end{frame}
\subsection{Adversarial image generation}
\begin{frame}{Adversarial image generation}
\begin{center}
\begin{minipage}{0.4\linewidth}
\begin{itemize}
\item Common Problem in machine learning: Classification\\
$\implies$ Given a set of labels and a set of data, assign a label to each element in the dataset
\item Labeled data is needed to train classifier network
\end{itemize}
\pause
\vspace{15mm}
Image source: Auth0, \href{https://auth0.com/blog/captcha-can-ruin-your-ux-here-s-how-to-use-it-right/}{CAPTCHA Can Ruin Your UX. Heres How to Use it Right}
\end{minipage}
\begin{minipage}{0.5\linewidth}
\centering
\includegraphics[width=0.5\linewidth]{presentation/img/recaptcha_example.png}
\end{minipage}
\end{center}
\end{frame}
\begin{frame}{Adversarial image generation}
\begin{itemize}
\item Problem: Labeling training data is tedious and expensive\\
$\implies$ We want to automatically generate training data
\item One solution: Generative adversarial networks. Let two neural nets "compete"; a generator and a classifier. (e.g. AutoGAN [\cite{DBLP:AutoGAN}])\\
$\implies$ Impossible to make semantic changes to the image (e.g. lighting) since no knowlege of the 3D scene exists
\item Different solution: Generate image using differentiable raytracing, use gradient descent to optimize the result image to fall into a specific class\\
$\implies$ Scene parameters can be manipulated
\end{itemize}
\end{frame}
\begin{frame}{Adversarial image generation - example [\cite{DBLP:journals/corr/abs-1910-00727}]}
\begin{center}
\begin{figure}
\begin{minipage}{0.45\linewidth}
\includegraphics[width=\linewidth]{presentation/img/adversarial_rendering_results/correct_car.png}
\includegraphics[width=\linewidth]{presentation/img/adversarial_rendering_results/correct_pedestrian.png}
\end{minipage}
\begin{minipage}{0.45\linewidth}
\includegraphics[width=\linewidth]{presentation/img/adversarial_rendering_results/incorrect_car.png}
\includegraphics[width=\linewidth]{presentation/img/adversarial_rendering_results/incorrect_pedestrian.png}
\end{minipage}
\centering
\caption{Left: Original images, features are correctly identified.\\
Right: adversarial examples, silver car is not recognized and pedestrians are identified where there are none. Only semantic features (color, position, rotation) have been changed.}
\label{fig:adv_img_example}
\end{figure}
\end{center}
\end{frame}

View file

@ -0,0 +1,137 @@
\section{Problems}
\begin{frame}
\centering
\Huge
Problems
\end{frame}
\subsection{Why differentiable rendering is hard}
\begin{frame}{Why differentiable rendering is hard}
\begin{itemize}
\item Rendering integral contains the geometry term that is not differentiable
\item The gradiant of the visibility can lead to dirac delta terms which have 0 probability of being sampled correctly [\cite{ACM:diracdelta},\cite{ACM:diffable_raytracing}]
\item Differentiation with respect to certain scene parameters possible but we need to differentiate with respect to any scene parameter
\end{itemize}
\pause
\begin{center}
\begin{minipage}{0.4\linewidth}
\begin{figure}
\centering
\begin{minipage}{0.5\linewidth}
\begin{tikzpicture}[domain=-0.5:2]
\draw[very thin,color=gray] (-0.1,-0.6) grid (2.1,2.1);
\draw[->] (-0.2,-0.5) -- (2.2,-0.5) node[right] {$\omega$};
\draw[->] (0,-0.7) -- (0,2.2) node[above] {$V(x,\omega)$};
\draw (0,0) -- (1,0) plot coordinates {(0,0) (1,0)}[color=red];
\draw (1,1) -- (2,1) plot coordinates {(1,1) (2,1)}[color=red];
\draw (0,0) node[left] {$0$};
\draw (0,1) node[left] {$1$};
\draw (1,-0.7) node[below] {$\omega_0$};
\end{tikzpicture}
\end{minipage}
\hspace{3mm}
\begin{minipage}{0.4\linewidth}
\caption{Visibility of a point $x$ with respect to $\omega$. Observe the discontinuity at $\omega_0$.}
\label{fig:visibility}
\end{minipage}
\end{figure}
\end{minipage}
% second diagram
\begin{minipage}{0.5\linewidth}
\begin{figure}
\centering
\begin{minipage}{0.5\linewidth}
\begin{tikzpicture}[domain=-0.5:2]
\draw[very thin,color=gray] (-0.1,-0.6) grid (2.1,2.1);
\draw[->] (-0.2,-0.5) -- (2.2,-0.5) node[right] {$\omega$};
\draw[->] (0,-0.7) -- (0,2.2) node[above] {$\frac{\partial}{\partial\omega}V(x,\omega)$};
\draw (0,0) -- (2,0) plot coordinates {(0,0) (2,0)}[color=red];
\draw (0,0) node[left] {$0$};
\draw (0,1) node[left] {$1$};
\draw (0,2) node[left] {$\infty$};
\draw (1,2) node[color=red] {$\bullet$};
\draw (1,-0.7) node[below] {$\omega_0$};
\end{tikzpicture}
\end{minipage}
\begin{minipage}{0.4\linewidth}
\caption{Differentiation of the left graph with respect to $\omega$. Observe the discontinuity at $\omega_0$ in the left graph leading to a dirac delta spike at $\omega_0$ in the differentiation.}
\label{fig:dirac-delta-spike}
\end{minipage}
\end{figure}
\end{minipage}
\end{center}
\end{frame}
\begin{frame}{Geometry term}
\centering
\begin{minipage}{0.4\linewidth}
\includegraphics[width=\linewidth]{presentation/img/blockers.png}
\end{minipage}
\hspace{15mm}
\begin{minipage}{0.4\linewidth}
\includegraphics[width=\linewidth]{presentation/img/blockers_diff.png}
\end{minipage}
\end{frame}
\subsection{Former methods}
\begin{frame}{Former methods}
\begin{block}{Previous differentiable renderers considered by this paper}
\begin{itemize}
\item OpenDR [\cite{DBLP:OpenDR}]
\item Neural 3D Mesh Renderer [\cite{DBLP:Neural3DKatoetal}]
\item Both rasterization based (first render the image using rasterization, then approximate the gradients using the resulting color buffer)
\item Focused on speed rather than precision
\end{itemize}
\end{block}
\end{frame}
\begin{frame}{Former methods - visualization}
\begin{figure}
\begin{minipage}{0.12\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/comparisons/plane.png}
\caption{planar scene}
\label{fig:planar-scene}
\end{figure}
\end{minipage}
\hspace{2mm}
\begin{minipage}{0.12\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/comparisons/opendr.png}
\caption{OpenDR}
\label{fig:grad-OpenDR}
\end{figure}
\end{minipage}
\hspace{2mm}
\begin{minipage}{0.12\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/comparisons/Neural.png}
\caption{Neural}
\label{fig:grad-Neural3DMesh}
\end{figure}
\end{minipage}
\hspace{2mm}
\begin{minipage}{0.12\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/comparisons/ours.png}
\caption{this paper}
\label{fig:grad-this}
\end{figure}
\end{minipage}
\hspace{4mm}
\begin{minipage}{0.3\linewidth}
\caption{
%A plane lit by a point light source. Images visualize a gradient with respect to the plane moving right. Since the light source remains static the gradient should only be $\ne 0$ at the boundaries. OpenDR and Neural are not able to correctly calculate the gradients as they are based on color buffer differences.\\
Visualizations of gradients calculated by different differentiable renderers.\\
Images: \cite{ACM:diffable_raytracing}
}
\label{fig:grad-explanation}
\end{minipage}
\end{figure}
\pause
$\implies$ Problems are caused at the edges and by approximation using color buffers
\end{frame}

View file

@ -0,0 +1,226 @@
\section{This method}
\begin{frame}
\centering
\Huge
This method
\end{frame}
\subsection{Edge sampling}
\subsection{Hierarchical edge sampling}
\subsection{conclusion - what can this method do?}
% talk about limitations here!
\begin{frame}{Inverse rendering - Results in this paper}
\begin{block}{Inverse rendering here}
\begin{itemize}
\item Fit camera pose, material parameters and light source intensity
\item Scene: Strong indirect illumination and non lambertian materials
\item Initial guess: Assign almost all objects a white color, arbitrary camera pose
\item 177 parameters in total
\item Absolute difference as loss function and ADAM optimizer
\item Start at a resulution of $64\times 64$ and linearly increase to $512\times 512$ in 8 steps\\
$\implies$ Avoid getting stuck in local minima of the loss function
\end{itemize}
\end{block}
\end{frame}
\begin{frame}{Inverse rendering - results in this paper}
\begin{center}
\begin{minipage}{0.25\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/results/guess.png}
\caption{Initial guess}
\label{fig:results-guess}
\end{figure}
\end{minipage}
\hspace{2mm}
\begin{minipage}{0.25\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/results/photo.png}
\caption{Target (photograph)}
\label{fig:results-target}
\end{figure}
\end{minipage}
\hspace{2mm}
\begin{minipage}{0.25\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/results/result.png}
\caption{Optimized image}
\label{fig:results-optimized}
\end{figure}
\end{minipage}
\end{center}
\end{frame}
\begin{frame}
\begin{figure}
\centering
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/triangles/img-027.png}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/shade/img-028.png}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy/img-029.png}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy_recv/img-030.png}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/specular/img-031.png}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/global_illumination/img-032.png}
\end{minipage}
\begin{minipage}{0.1\linewidth}
\caption{initial guess}
\label{fig:grid_init_guess}
\end{minipage}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%% second row %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}
\centering
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/triangles/img-033.png}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/shade/img-034.png}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy/img-035.png}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy_recv/img-036.png}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/specular/img-037.png}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\includegraphics[width=\linewidth]{presentation/img/render_optimization/global_illumination/img-038.png}
\end{minipage}
\begin{minipage}{0.1\linewidth}
\caption{target images}
\label{fig:grid_target}
\end{minipage}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%% third row %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}
\centering
\begin{minipage}{0.15\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/render_optimization/triangles/img-039.png}
\caption{primary occlusion}
\end{figure}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/render_optimization/shade/img-040.png}
\caption{shadow}
\end{figure}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy/img-041.png}
\caption{glossy}
\end{figure}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/render_optimization/glossy_recv/img-042.png}
\caption{glossy receiver}
\end{figure}
\end{minipage}
\begin{minipage}{0.14\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/render_optimization/specular/img-043.png}
\caption{near-specular}
\end{figure}
\end{minipage}
\begin{minipage}{0.15\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/render_optimization/global_illumination/img-044.png}
\caption{global illumination}
\end{figure}
\end{minipage}
\begin{minipage}{0.08\linewidth}
\caption{optimized result}
\label{fig:grid_optimized}
\end{minipage}
\end{figure}
\end{frame}
\begin{frame}{Inverse rendering - example from this paper}
\centering
\begin{minipage}{0.19\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/teapot_video/teapot_init.png}
\vspace{0mm}
\caption{initial guess}
\label{fig:teapot_init}
\end{figure}
\end{minipage}
\begin{minipage}{0.19\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/teapot_video/teapot_init_diff.png}
\caption{difference\\
initial $\leftrightarrow$ target}
\label{fig:teapot_init_diff}
\end{figure}
\end{minipage}
\begin{minipage}{0.19\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/teapot_video/teapot_target.png}
\vspace{0mm}
\caption{target image}
\label{fig:teapot_target}
\end{figure}
\end{minipage}
\begin{minipage}{0.19\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/teapot_video/teapot_final_diff.png}
\caption{difference\\
final $\leftrightarrow$ target}
\label{fig:teapot_final_diff}
\end{figure}
\end{minipage}
\begin{minipage}{0.19\linewidth}
\begin{figure}
\centering
\includegraphics[width=\linewidth]{presentation/img/teapot_video/teapot_final.png}
\vspace{0mm}
\caption{final image}
\label{fig:teapot_final}
\end{figure}
\end{minipage}
\end{frame}
\begin{frame}{Inverse rendering - example from this paper}
\centering
\includemedia[
width=0.62\linewidth,height=0.35\linewidth,
activate=onclick,
addresource=teapot.mp4,
playbutton=fancy,
transparent,
passcontext,
flashvars={
source=teapot.mp4
&autoPlay=true
}
]{}{VPlayer.swf}
\\
All media in this section taken from \cite{ACM:diffable_raytracing}
\end{frame}

View file

@ -0,0 +1,212 @@
@article{ACM:diffable_raytracing,
author = {Li, Tzu-Mao and Aittala, Miika and Durand, Fr\'{e}do and Lehtinen, Jaakko},
title = {Differentiable Monte Carlo Ray Tracing through Edge Sampling},
year = {2018},
issue_date = {December 2018},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {37},
number = {6},
issn = {0730-0301},
url = {https://doi.org/10.1145/3272127.3275109},
doi = {10.1145/3272127.3275109},
abstract = {Gradient-based methods are becoming increasingly important for computer graphics, machine learning, and computer vision. The ability to compute gradients is crucial to optimization, inverse problems, and deep learning. In rendering, the gradient is required with respect to variables such as camera parameters, light sources, scene geometry, or material appearance. However, computing the gradient of rendering is challenging because the rendering integral includes visibility terms that are not differentiable. Previous work on differentiable rendering has focused on approximate solutions. They often do not handle secondary effects such as shadows or global illumination, or they do not provide the gradient with respect to variables other than pixel coordinates.We introduce a general-purpose differentiable ray tracer, which, to our knowledge, is the first comprehensive solution that is able to compute derivatives of scalar functions over a rendered image with respect to arbitrary scene parameters such as camera pose, scene geometry, materials, and lighting parameters. The key to our method is a novel edge sampling algorithm that directly samples the Dirac delta functions introduced by the derivatives of the discontinuous integrand. We also develop efficient importance sampling methods based on spatial hierarchies. Our method can generate gradients in times running from seconds to minutes depending on scene complexity and desired precision.We interface our differentiable ray tracer with the deep learning library PyTorch and show prototype applications in inverse rendering and the generation of adversarial examples for neural networks.},
journal = {ACM Trans. Graph.},
articleno = {222},
numpages = {11},
keywords = {differentiable programming, inverse rendering, ray tracing}
}
@inproceedings{ACM:rendering_equation,
author = {Kajiya, James T.},
title = {The Rendering Equation},
year = {1986},
isbn = {0897911962},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/15922.15902},
doi = {10.1145/15922.15902},
abstract = {We present an integral equation which generalizes a variety of known rendering algorithms. In the course of discussing a monte carlo solution we also present a new form of variance reduction, called Hierarchical sampling and give a number of elaborations shows that it may be an efficient new technique for a wide variety of monte carlo procedures. The resulting rendering algorithm extends the range of optical phenomena which can be effectively simulated.},
booktitle = {Proceedings of the 13th Annual Conference on Computer Graphics and Interactive Techniques},
pages = {143150},
numpages = {8},
series = {SIGGRAPH '86}
}
@article{ACM:diracdelta,
author = {Ramamoorthi, Ravi and Mahajan, Dhruv and Belhumeur, Peter},
title = {A First-Order Analysis of Lighting, Shading, and Shadows},
year = {2007},
issue_date = {January 2007},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {26},
number = {1},
issn = {0730-0301},
url = {https://doi.org/10.1145/1189762.1189764},
doi = {10.1145/1189762.1189764},
abstract = {The shading in a scene depends on a combination of many factors---how the lighting varies spatially across a surface, how it varies along different directions, the geometric curvature and reflectance properties of objects, and the locations of soft shadows. In this article, we conduct a complete first-order or gradient analysis of lighting, shading, and shadows, showing how each factor separately contributes to scene appearance, and when it is important. Gradients are well-suited to analyzing the intricate combination of appearance effects, since each gradient term corresponds directly to variation in a specific factor. First, we show how the spatial and directional gradients of the light field change as light interacts with curved objects. This extends the recent frequency analysis of Durand et al. [2005] to gradients, and has many advantages for operations, like bump mapping, that are difficult to analyze in the Fourier domain. Second, we consider the individual terms responsible for shading gradients, such as lighting variation, convolution with the surface BRDF, and the object's curvature. This analysis indicates the relative importance of various terms, and shows precisely how they combine in shading. Third, we understand the effects of soft shadows, computing accurate visibility gradients, and generalizing previous work to arbitrary curved occluders. As one practical application, our visibility gradients can be directly used with conventional ray-tracing methods in practical gradient interpolation methods for efficient rendering. Moreover, our theoretical framework can be used to adaptively sample images in high-gradient regions for efficient rendering.},
journal = {ACM Trans. Graph.},
pages = {2es},
numpages = {21},
keywords = {reflectance, Gradients, Fourier analysis, shadows}
}
@ARTICLE{IEEE:AR_lighting_estimation,
author={Liu, Celong and Wang, Lingyu and Li, Zhong and Quan, Shuxue and Xu, Yi},
journal={IEEE Transactions on Visualization and Computer Graphics},
title={Real-Time Lighting Estimation for Augmented Reality via Differentiable Screen-Space Rendering},
year={2023},
volume={29},
number={4},
pages={2132-2145},
doi={10.1109/TVCG.2022.3141943}
}
@INPROCEEDINGS{IEEE:Ac_cam_refinment,
author={Wu, Chujie and Wang, Yusheng and Ji, Yooghoon and Tsuchiya, Hiroshi and Asama, Hajime and Yamashita, Atsushi},
booktitle={2023 IEEE/SICE International Symposium on System Integration (SII)},
title={Acoustic Camera Pose Refinement Using Differentiable Rendering},
year={2023},
volume={},
number={},
pages={1-6},
abstract={Acoustic cameras, also known as 2D forward looking sonars, show high reliability in underwater environments as they can produce high resolution images even if the illumination is limited. However, due to the unique imaging principle, it is hard to estimate ground-truth-level extrinsic parameters even in a known 3D scene. Usually, there are methods such as direct measurements by rulers to acquire a rough pose with centimeter-level error. It is necessary to refine the pose to millimeter-level error. In this work, we develop a novel differentiable acoustic camera simulator, which can be applied for estimating accurate 6 degrees of freedom pose of the acoustic cameras. We calculate the derivatives of synthetic acoustic images with respect to camera pose, and further integrated them into a gradient-based optimization pipeline to refine the pose. To mitigate the domain gap between real and synthetic images, an unpaired image translation method is used to transfer the real image to synthetic domain. Experiments prove the feasibility of the proposed method. It outperforms methods of previous research for higher efficiency and accuracy.},
keywords={},
doi={10.1109/SII55687.2023.10039267},
ISSN={2474-2325},
}
@inproceedings{ACM:inverse_rendering,
author = {Zhu, Jingsen and Luan, Fujun and Huo, Yuchi and Lin, Zihao and Zhong, Zhihua and Xi, Dianbing and Wang, Rui and Bao, Hujun and Zheng, Jiaxiang and Tang, Rui},
title = {Learning-Based Inverse Rendering of Complex Indoor Scenes with Differentiable Monte Carlo Raytracing},
year = {2022},
isbn = {9781450394703},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3550469.3555407},
doi = {10.1145/3550469.3555407},
abstract = {Indoor scenes typically exhibit complex, spatially-varying appearance from global illumination, making inverse rendering a challenging ill-posed problem. This work presents an end-to-end, learning-based inverse rendering framework incorporating differentiable Monte Carlo raytracing with importance sampling. The framework takes a single image as input to jointly recover the underlying geometry, spatially-varying lighting, and photorealistic materials. Specifically, we introduce a physically-based differentiable rendering layer with screen-space ray tracing, resulting in more realistic specular reflections that match the input photo. In addition, we create a large-scale, photorealistic indoor scene dataset with significantly richer details like complex furniture and dedicated decorations. Further, we design a novel out-of-view lighting network with uncertainty-aware refinement leveraging hypernetwork-based neural radiance fields to predict lighting outside the view of the input photo. Through extensive evaluations on common benchmark datasets, we demonstrate superior inverse rendering quality of our method compared to state-of-the-art baselines, enabling various applications such as complex object insertion and material editing with high fidelity. Code and data will be made available at https://jingsenzhu.github.io/invrend},
booktitle = {SIGGRAPH Asia 2022 Conference Papers},
articleno = {6},
numpages = {8},
keywords = {inverse rendering, ray tracing, lighting estimation},
location = {Daegu, Republic of Korea},
series = {SA '22}
}
@article{DBLP:journals/corr/abs-1910-00727,
author = {Lakshya Jain and
Wilson Wu and
Steven Chen and
Uyeong Jang and
Varun Chandrasekaran and
Sanjit A. Seshia and
Somesh Jha},
title = {Generating Semantic Adversarial Examples with Differentiable Rendering},
journal = {CoRR},
volume = {abs/1910.00727},
year = {2019},
url = {http://arxiv.org/abs/1910.00727},
eprinttype = {arXiv},
eprint = {1910.00727},
timestamp = {Fri, 04 Oct 2019 12:28:06 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-1910-00727.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{ACM:inverse_rendering_signed_distance_function,
author = {Vicini, Delio and Speierer, S\'{e}bastien and Jakob, Wenzel},
title = {Differentiable Signed Distance Function Rendering},
year = {2022},
issue_date = {July 2022},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
volume = {41},
number = {4},
issn = {0730-0301},
url = {https://doi.org/10.1145/3528223.3530139},
doi = {10.1145/3528223.3530139},
abstract = {Physically-based differentiable rendering has recently emerged as an attractive new technique for solving inverse problems that recover complete 3D scene representations from images. The inversion of shape parameters is of particular interest but also poses severe challenges: shapes are intertwined with visibility, whose discontinuous nature introduces severe bias in computed derivatives unless costly precautions are taken. Shape representations like triangle meshes suffer from additional difficulties, since the continuous optimization of mesh parameters cannot introduce topological changes.One common solution to these difficulties entails representing shapes using signed distance functions (SDFs) and gradually adapting their zero level set during optimization. Previous differentiable rendering of SDFs did not fully account for visibility gradients and required the use of mask or silhouette supervision, or discretization into a triangle mesh.In this article, we show how to extend the commonly used sphere tracing algorithm so that it additionally outputs a reparameterization that provides the means to compute accurate shape parameter derivatives. At a high level, this resembles techniques for differentiable mesh rendering, though we show that the SDF representation admits a particularly efficient reparameterization that outperforms prior work. Our experiments demonstrate the reconstruction of (synthetic) objects without complex regularization or priors, using only a per-pixel RGB loss.},
journal = {ACM Trans. Graph.},
articleno = {125},
numpages = {18},
keywords = {signed distance functions, level set method, differentiable rendering, inverse rendering, sphere tracing, gradient-based optimization}
}
@article{DBLP:AutoGAN,
author = {Blerta Lindqvist and
Shridatt Sugrim and
Rauf Izmailov},
title = {AutoGAN: Robust Classifier Against Adversarial Attacks},
journal = {CoRR},
volume = {abs/1812.03405},
year = {2018},
url = {http://arxiv.org/abs/1812.03405},
eprinttype = {arXiv},
eprint = {1812.03405},
timestamp = {Tue, 01 Jan 2019 15:01:25 +0100},
biburl = {https://dblp.org/rec/journals/corr/abs-1812-03405.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{DBLP:OpenDR,
author = {Matthew M. Loper and
Michael J. Black},
editor = {David J. Fleet and
Tom{\'{a}}s Pajdla and
Bernt Schiele and
Tinne Tuytelaars},
title = {OpenDR: An Approximate Differentiable Renderer},
booktitle = {Computer Vision - {ECCV} 2014 - 13th European Conference, Zurich,
Switzerland, September 6-12, 2014, Proceedings, Part {VII}},
series = {Lecture Notes in Computer Science},
volume = {8695},
pages = {154--169},
publisher = {Springer},
year = {2014},
url = {https://doi.org/10.1007/978-3-319-10584-0\_11},
doi = {10.1007/978-3-319-10584-0\_11},
timestamp = {Tue, 14 May 2019 10:00:45 +0200},
biburl = {https://dblp.org/rec/conf/eccv/LoperB14.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{DBLP:Neural3DKatoetal,
author = {Hiroharu Kato and
Yoshitaka Ushiku and
Tatsuya Harada},
title = {Neural 3D Mesh Renderer},
booktitle = {2018 {IEEE} Conference on Computer Vision and Pattern Recognition,
{CVPR} 2018, Salt Lake City, UT, USA, June 18-22, 2018},
pages = {3907--3916},
publisher = {Computer Vision Foundation / {IEEE} Computer Society},
year = {2018},
url = {http://openaccess.thecvf.com/content\_cvpr\_2018/html/Kato\_Neural\_3D\_Mesh\_CVPR\_2018\_paper.html},
doi = {10.1109/CVPR.2018.00411},
timestamp = {Fri, 24 Mar 2023 00:02:56 +0100},
biburl = {https://dblp.org/rec/conf/cvpr/KatoUH18.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}

View file

@ -0,0 +1,54 @@
\documentclass[en]{sdqbeamer}
\usepackage[english]{babel}
\usepackage{pdfpages}
\usepackage{graphicx}
\usepackage{media9}
\addmediapath{img}
\addmediapath{img/teapot_video}
\usepackage{caption}
\captionsetup[figure]{labelformat=empty}
\usepackage{csquotes}
\titleimage{banner_2020_kit}
\newcommand{\presentationdate}{\emph{set date here}}
%% Gruppenlogo
\grouplogo{}
%% Gruppenname und Breite (Standard: 50 mm)
\groupname{Proseminar ''differentiable programming''}
%\groupnamewidth{50mm}
% Beginn der Präsentation
\title[Differentiable Monte Carlo Ray Tracing through Edge Sampling]{Differentiable Monte Carlo Ray Tracing through Edge Sampling}
\subtitle{presentation for the proseminar ''differentiable programming''}
\author[Clemens Dautermann]{Clemens Dautermann}
\date[\presentationdate]{\presentationdate}
% Literatur
\usepackage[citestyle=authoryear,bibstyle=numeric,hyperref,backend=biber]{biblatex}
\addbibresource{presentation.bib}
\bibhang1em
\begin{document}
%Titelseite
\KITtitleframe
\begin{frame}{Outline}
\tableofcontents
\end{frame}
\include{presentation/modules/basic_terms}
\include{presentation/modules/motivation}
\include{presentation/modules/problems}
\include{presentation/modules/this_method}
\begin{frame}[allowframebreaks=1]{Bibliography}
\printbibliography
\end{frame}
\end{document}

953
sdqbeamer.cls Normal file
View file

@ -0,0 +1,953 @@
%% Vorlage für Präsentationen mit LaTeX Beamer im KIT-Design
%% entsprechend den Gestaltungsrichtlinien vom 1. August 2020
%%
%% Siehe https://sdqweb.ipd.kit.edu/wiki/Dokumentvorlagen
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{sdqbeamer}[2022-05-03 v3.1.3 SDQ Beamer class]
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\newif\ifsectionnavigation
\newif\ifnavbarinfoot
\newif\ifnavbarinline
\newif\ifnavbarside
\newif\iffourtothree
\newif\ifsixteentonine
\newif\ifsixteentoten
\newif\ifgerman
\newif\ifsmallfooterfont
\def\kitslogan#1{\def\@kitslogan{#1}}
\def\kitlogo#1{\def\@kitlogo{#1}}
\def\groupname#1{\def\@groupname{#1}}
\def\groupnamewidth#1{\def\@groupnamewidth{#1}}
% siehe README.md
\DeclareOption{de}{
\kitslogan{KIT -- Die Forschungsuniversität in der Helmholtz-Gemeinschaft}
\kitlogo{kitlogo_de_rgb}
\germantrue
\PassOptionsToPackage{autostyle}{csquotes}
}
\DeclareOption{en}{
\kitslogan{KIT -- The Research University in the Helmholtz Association}
\kitlogo{kitlogo_en_rgb}
\germanfalse
}
\DeclareOption{4:3}{
\fourtothreetrue
\sixteentoninefalse
\sixteentotenfalse
}
\DeclareOption{16:9}{
\fourtothreefalse
\sixteentoninetrue
\sixteentotenfalse
}
\DeclareOption{16:10}{
\fourtothreefalse
\sixteentoninefalse
\sixteentotentrue
}
\DeclareOption{navbarside}{
\sectionnavigationtrue
\navbarsidetrue
\navbarinlinefalse
\navbarinfootfalse
}
\DeclareOption{navbarinline}{
\sectionnavigationtrue
\navbarsidefalse
\navbarinlinetrue
\navbarinfootfalse
}
\DeclareOption{navbarinfooter}{
\sectionnavigationtrue
\navbarsidefalse
\navbarinlinefalse
\navbarinfoottrue
}
\DeclareOption{navbaroff}{
\sectionnavigationfalse
}
\DeclareOption{navbarkit}{
\sectionnavigationfalse
\smallfooterfonttrue
}
\DeclareOption{smallfoot}{
\smallfooterfonttrue
}
\DeclareOption{bigfoot}{
\smallfooterfontfalse
}
\ExecuteOptions{de,16:9,navbarinline,bigfoot}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{beamer}}
\ProcessOptions\relax
\LoadClass[10pt,utf8]{beamer}
% Babel-Paket wird nur bei deutscher Sprache benötigt
\ifgerman
\RequirePackage[ngerman]{babel}
\fi
\RequirePackage{csquotes}
\RequirePackage{hyperref}
\RequirePackage[absolute,overlay]{textpos}
%% ---------------
%% | Typographie |
%% ---------------
\RequirePackage{microtype}
\RequirePackage[scaled=.92]{helvet}
\RequirePackage[scaled=.78]{beramono}
\RequirePackage{libertineRoman}
\setbeamerfont{title}{series=\bfseries,size=\Large}
\setbeamerfont{frametitle}{series=\bfseries,size=\Large}
\setbeamerfont{framesubtitle}{series=\bfseries,size=\normalsize}
%% -----------------
%% | Folien-Layout |
%% -----------------
% Seitenverhältnis
%
% Die Folien sind auf die Standardhöhe in LaTeX Beamer (9,6 cm) normiert.
% Die Maße der KIT-Gestaltungsrichtlinien (Folienhöhe 14,3 cm) wurden durch
% den Quotienten 1,5 geteilt.
\RequirePackage{geometry}
\iffourtothree
\geometry{papersize={12.8cm,9.6cm}}
\fi
\ifsixteentoten
\geometry{papersize={15.36cm,9.6cm}}
\fi
\ifsixteentonine
\geometry{papersize={17.07cm,9.6cm}}
\fi
% Ränder laut Gestaltungsrichtlinen; 3 mm -> 2 mm, 11 mm -> 7,3 mm
\newlength{\kitoutermargin}
\setlength{\kitoutermargin}{2mm}
\newlength{\kitinnermargin}
\setlength{\kitinnermargin}{7.3mm}
\newlength{\kitbottommargin}
\setlength{\kitbottommargin}{\kitinnermargin}
% Ränder außen
\setbeamersize{text margin left=\kitinnermargin,text margin right=\kitinnermargin}
% keine Navigationssymbole
\setbeamertemplate{navigation symbols}{}
\setbeamercovered{invisible}
\useinnertheme{rounded}
\beamer@compresstrue % Miniframes (Navigations-Punkte) für Subsections immer in einer Zeile, ohne Umbrüche
% Folientitel
\setbeamertemplate{frametitle}{
\ifbeamer@plainframe\else%
% Unterkante Titeltext: 22,5 mm -> 15 mm von Seitenkopf
\begin{textblock*}{\dimexpr\paperwidth-30mm}[0,1](\kitinnermargin,15mm)%
\usebeamerfont{frametitle}\insertframetitle%
\ifx\insertframesubtitle\@empty\else\\[.1em]\fi
\usebeamerfont{framesubtitle}\insertframesubtitle%
\end{textblock*}%
\begin{textblock*}{20mm}[1,1](\dimexpr\paperwidth-\kitinnermargin\relax,15mm)%j
\includegraphics[width=20mm]{logos/\@kitlogo}%
\end{textblock*}%
\fi
% Rand oben (ergibt Beginn des Textes bei 34 mm -> 22,7 mm)
\vspace {18mm}
}
%% Fußzeile
\newlength{\kitbottom}
% Navbar in Footer: Schmale Fußzeile
\ifnavbarinfoot
% Bei Navbar in Footer immer kleiner Font in der Fußzeile
\setbeamerfont{footer}{size=\fontsize{6pt}{7.2pt}\selectfont}
\setlength{\kitbottom}{4mm}
\else
% Ansonsten kleiner Text nur, wenn "smallfoot" gewählt
\ifsmallfooterfont
\setbeamerfont{footer}{size=\fontsize{6pt}{7.2pt}\selectfont}
\else
\setbeamerfont{footer}{size=\scriptsize}
\fi
\setlength{\kitbottom}{\kitbottommargin}
\fi
\setbeamerfont{page number in head/foot}{series=\bfseries}
\newlength{\kitbottomdepth}
\newlength{\kitbottomheight}
\newlength{\kitfootergroupwidth}
\setbeamertemplate{footline}{%
\setlength{\kitbottomdepth}{\dimexpr.5\kitbottom-.5em\relax}%
\setlength{\kitbottomheight}{\dimexpr.5\kitbottom+.5em\relax}%
%% die "%" am Ende sind nötig, damit keine Abstände eingefügt werden
%
% Falls kein Gruppenname angegeben, die ganze Breite der Fußzeile für den Titel nutzen.
\ifdefined\@groupname%
\ifx\@groupname\empty%
\setlength{\kitfootergroupwidth}{0mm}%
\else%
% Falls die Breite des Gruppenlogos definiert ist, diese nehmen, sonst 50 mm
\ifdefined\@groupnamewidth%
\setlength{\kitfootergroupwidth}{\@groupnamewidth}%
\else%
\setlength{\kitfootergroupwidth}{50mm}%
\fi%
\fi%
\else
\setlength{\kitfootergroupwidth}{0mm}%
\fi
\usebeamerfont{footer}%
\ifsectionnavigation%
% Option "navbarinline"
\ifnavbarinline%
\begin{beamercolorbox}[wd=\paperwidth, leftskip=2mm, rightskip=2mm]{}
\insertnavigation{\dimexpr\paperwidth-4mm\relax}
\vspace{1mm}
\end{beamercolorbox}%
\fi%
% Option "navbarinfooter"
\ifnavbarinfoot%
% Punkte für Subsections deaktivieren
\setbeamertemplate{mini frames}{}%
\begin{beamercolorbox}[wd=\paperwidth, leftskip=1mm, rightskip=1mm]{}%
\insertsectionnavigationhorizontal{\dimexpr\paperwidth-\kitoutermargin\relax}{}{}
\end{beamercolorbox}%
\fi%
\fi%
\leavevmode%
\begin{beamercolorbox}[wd=13mm, ht=\kitbottomheight, dp=\kitbottomdepth, leftskip=4mm]{}
\usebeamerfont{page number in head/foot}%
\strut\insertframenumber{}/\inserttotalframenumber%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=20mm, ht=\kitbottomheight, dp=\kitbottomdepth]{}
\usebeamerfont{date in head/foot}%
\strut\insertshortdate%
\end{beamercolorbox}%
% Die Boxen mit dem Titel und dem Gruppennamen sind vertikal zentriert, damit auch zweizeilige Texte schön aussehen
% Daher müssen sie um \kitbottomdepth nach unten verschoben werden
\raisebox{-\kitbottomdepth}{
% Die Box hat daher auch Höhe \kitbottom und Tiefe 0mm
\begin{beamercolorbox}[wd=\dimexpr\paperwidth-37mm-\kitfootergroupwidth, ht=\kitbottom, dp=0mm]{}%
% Inhalt vertikal zentrieren; Anpassung um 1.5 pt, damit bei einzeiligem Inhalt genau die Baseline der Blöcke mit Seitenzahl und Datum getroffen wird
\vbox to\kitbottom{\vfill\vskip1.5pt%
\beamer@shortauthor\ifx\beamer@shortauthor\empty\else: \fi\beamer@shorttitle%
\vfill}%
\end{beamercolorbox}%
\ifdefined\@groupname%
\begin{beamercolorbox}[wd=\kitfootergroupwidth, ht=\kitbottom, dp=0mm, rightskip=\kitinnermargin]{}
\vbox to\kitbottom{\vfill\vskip1.5pt%
\raggedleft\@groupname%
\vfill}%
\end{beamercolorbox}%
\fi%
}%
}
%% Option "navbarside"
\ifnavbarside
\useoutertheme[height=0cm,width=3.5cm,left]{sidebar}
\setbeamerfont{title in sidebar}{family=\sffamily,series=\mdseries,size={\fontsize{10pt}{11pt}}}
\setbeamerfont{section in sidebar}{family=\sffamily,series=\mdseries,size={\fontsize{9pt}{9.9pt}}}
\setbeamerfont{subsection in sidebar}{family=\sffamily,series=\mdseries,size={\fontsize{8pt}{8.8pt}}}
\setbeamertemplate{sidebar \beamer@sidebarside}
{\vskip1.5cm%
\hskip6.5mm%
\advance\beamer@sidebarwidth by -5mm%
\insertverticalnavigation{\beamer@sidebarwidth}%
}%
\fi
%% Hintergrund
\usebackgroundtemplate{
% Trennlinie nicht bei "plain"-Frames
\ifbeamer@plainframe\else\kitseparationline\fi
}
% Trennlinie
\newcommand{\kitseparationline}{
\begin{pgfpicture}{0mm}{0mm}{\paperwidth}{\paperheight}
\pgfsetstrokecolor{black!15}
\pgfsetlinewidth{.5pt}
\pgfpathmoveto{\pgfpoint{\kitoutermargin}{\kitinnermargin}}
\pgfpathlineto{\pgfpoint{\paperwidth-\kitoutermargin}{\kitinnermargin}}
\pgfusepath{stroke}
\end{pgfpicture}%
}
%% --------------
%% | Titelseite |
%% --------------
\def\titleimage#1{\def\@titleimage{#1}}
\def\grouplogo#1{\def\@grouplogo{#1}}
\newcommand{\KITtitleframe}{
\begin{frame}[plain]
\titlepage
\end{frame}
}
\newlength{\kittitleimageheight}
\setbeamertemplate{title page}{
% From textpos documentation (https://ctan.org/pkg/textpos)
%
% \begin{textblock}{<hsize>}[<ho>,<vo>](<hpos>,<vpos>)
% The coordinates <ho> and <vo> are fractions of the width and height of the text
% box, respectively, and state that the box is to be placed so that the reference point
% (<ho>,<vo>) within the box is to be placed at the point (<hpos>,<vpos>) on the page.
% KIT-Logo
\begin{textblock*}{30mm}(\kitinnermargin,6.7mm)
\includegraphics[width=30mm]{logos/\@kitlogo}
\end{textblock*}
% Gruppenlogo
\ifdefined\@grouplogo
\ifx\@grouplogo\empty \else
\begin{textblock*}{20mm}(\dimexpr\paperwidth-24mm\relax,6.7mm)
\includegraphics[width=20mm,height=20mm,keepaspectratio]{logos/\@grouplogo}
\end{textblock*}
\fi % falls \grouplogo{} aufgerufen wird, kein Gruppenlogo einbinden
\else
\begin{textblock*}{20mm}(\dimexpr\paperwidth-24mm\relax,6.7mm)
\colorbox{kit-purple100!20}{\parbox[t][12mm][c]{19mm}{\color{kit-purple100}\scriptsize\centering
\ifgerman
Bitte Logo über \texttt{\textbackslash grouplogo\{\}} festlegen.
\else
Please set a logo using \texttt{\textbackslash grouplogo\{\}}.
\fi
}}
\end{textblock*}
\fi
% Titel
\begin{textblock*}{\dimexpr\paperwidth-8mm\relax}[0,.5](\kitinnermargin,28mm)
\usebeamerfont*{title}\inserttitle
\end{textblock*}
% Untertitel
\begin{textblock*}{\dimexpr\paperwidth-8mm\relax}(\kitinnermargin,36mm)
\small\textbf{\insertsubtitle}
\end{textblock*}
% Autor
\begin{textblock*}{\dimexpr\paperwidth-8mm\relax}(\kitinnermargin,41mm)
\small\insertauthor~\textbar~\insertdate
\end{textblock*}
% Titelbild
\setlength{\kittitleimageheight}{40mm}
\begin{textblock*}{\paperwidth}(\kitoutermargin,\dimexpr\paperheight-\kitbottommargin-\kittitleimageheight)
\begin{pgfpicture}{0mm}{0mm}{\paperwidth}{\kittitleimageheight}
% Clipping-Pfad um titelbild
\pgfsetstrokecolor{black!15}
\pgfsetlinewidth{1pt}
\pgfsetcornersarced{\pgfpoint{3mm}{3mm}}
\pgfpathmoveto{\pgfpoint{\paperwidth-2\kitoutermargin}{0mm}}
\pgfpathlineto{\pgfpoint{\paperwidth-2\kitoutermargin}{\kittitleimageheight}}
\pgfsetcornersarced{\pgfpointorigin}
\pgfpathlineto{\pgfpoint{0mm}{\kittitleimageheight}}
\pgfsetcornersarced{\pgfpoint{3mm}{3mm}}
\pgfpathlineto{\pgfpointorigin}
\pgfsetcornersarced{\pgfpointorigin}
\pgfpathclose
\pgfusepath{stroke,clip}
% Titelbild
\ifdefined\@titleimage
\ifx\@titleimage\empty \else%
\pgftext[at=\pgfpoint{.5\paperwidth}{0mm},center,bottom]{%
\includegraphics[height=40mm]{logos/\@titleimage}
}
\fi % Bei Aufruf von \titleimage{} leeren Rahmen anzeigen.
\else
\pgftext[at=\pgfpoint{.5\paperwidth}{.5\kittitleimageheight},center,base]{%
\colorbox{kit-purple100!20}{\parbox[c][\kittitleimageheight][c]{\paperwidth}{\color{kit-purple100}\centering Bitte Titelbild über \texttt{\textbackslash titleimage\{\}} festlegen.
}}%
}
\fi
\end{pgfpicture}%
\end{textblock*}
% KIT slogan
\begin{textblock*}{80mm}[0,.5](\kitoutermargin,\dimexpr\paperheight-.5\kitbottommargin)
\fontsize{5.5pt}{5.5pt}\selectfont\@kitslogan
\end{textblock*}
\begin{textblock*}{30mm}[1,.5](\dimexpr\paperwidth-\kitoutermargin\relax,\dimexpr\paperheight-.5\kitbottommargin)
\fontsize{11pt}{11pt}\selectfont\bfseries\raggedleft%
{\href{https://www.kit.edu}{www.kit.edu}}
\end{textblock*}
}
%% ---------------
%% | /Titelseite |
%% ---------------
%% ----------
%% | Farben |
%% ----------
%% KIT-Farbschema
% KIT color green :
\definecolor{kit-green}{RGB}{0, 150, 130}
\definecolor{kit-green100}{RGB}{0, 150, 130}
\definecolor{kit-green90}{rgb}{0.1, 0.6294, 0.5588}
\definecolor{kit-green80}{rgb}{0.2, 0.6706, 0.6078}
\definecolor{kit-green75}{rgb}{0.25, 0.6912, 0.6324}
\definecolor{kit-green70}{rgb}{0.3, 0.7118, 0.6569}
\definecolor{kit-green60}{rgb}{0.4, 0.7529, 0.7059}
\definecolor{kit-green50}{rgb}{0.5, 0.7941, 0.7549}
\definecolor{kit-green40}{rgb}{0.6, 0.8353, 0.8039}
\definecolor{kit-green30}{rgb}{0.7, 0.8765, 0.8529}
\definecolor{kit-green25}{rgb}{0.75, 0.8971, 0.8775}
\definecolor{kit-green20}{rgb}{0.8, 0.9176, 0.902}
\definecolor{kit-green15}{rgb}{0.85, 0.9382, 0.9265}
\definecolor{kit-green10}{rgb}{0.9, 0.9588, 0.951}
\definecolor{kit-green5}{rgb}{0.95, 0.9794, 0.9755}
% KIT color blue:
\definecolor{kit-blue}{RGB}{70, 100, 170}
\definecolor{kit-blue100}{RGB}{70, 100, 170}
\definecolor{kit-blue90}{rgb}{0.3471, 0.4529, 0.7}
\definecolor{kit-blue80}{rgb}{0.4196, 0.5137, 0.7333}
\definecolor{kit-blue75}{rgb}{0.4559, 0.5441, 0.75}
\definecolor{kit-blue70}{rgb}{0.4922, 0.5745, 0.7667}
\definecolor{kit-blue60}{rgb}{0.5647, 0.6353, 0.8}
\definecolor{kit-blue50}{rgb}{0.6373, 0.6961, 0.8333}
\definecolor{kit-blue40}{rgb}{0.7098, 0.7569, 0.8667}
\definecolor{kit-blue30}{rgb}{0.7824, 0.8176, 0.9}
\definecolor{kit-blue25}{rgb}{0.8186, 0.848, 0.9167}
\definecolor{kit-blue20}{rgb}{0.8549, 0.8784, 0.9333}
\definecolor{kit-blue15}{rgb}{0.8912, 0.9088, 0.95}
\definecolor{kit-blue10}{rgb}{0.9275, 0.9392, 0.9667}
\definecolor{kit-blue5}{rgb}{0.9637, 0.9696, 0.9833}
% KIT color red :
\definecolor{kit-red}{RGB}{162, 34, 35}
\definecolor{kit-red100}{RGB}{162, 34, 35}
\definecolor{kit-red90}{rgb}{0.6718, 0.22, 0.2235}
\definecolor{kit-red80}{rgb}{0.7082, 0.3067, 0.3098}
\definecolor{kit-red75}{rgb}{0.7265, 0.35, 0.3529}
\definecolor{kit-red70}{rgb}{0.7447, 0.3933, 0.3961}
\definecolor{kit-red60}{rgb}{0.7812, 0.48, 0.4824}
\definecolor{kit-red50}{rgb}{0.8176, 0.5667, 0.5686}
\definecolor{kit-red40}{rgb}{0.8541, 0.6533, 0.6549}
\definecolor{kit-red30}{rgb}{0.8906, 0.74, 0.7412}
\definecolor{kit-red25}{rgb}{0.9088, 0.7833, 0.7843}
\definecolor{kit-red20}{rgb}{0.9271, 0.8267, 0.8275}
\definecolor{kit-red15}{rgb}{0.9453, 0.87, 0.8706}
\definecolor{kit-red10}{rgb}{0.9635, 0.9133, 0.9137}
\definecolor{kit-red5}{rgb}{0.9818, 0.9567, 0.9569}
% KIT color yellow :
\definecolor{kit-yellow}{RGB}{252, 229, 0}
\definecolor{kit-yellow100}{RGB}{252, 229, 0}
\definecolor{kit-yellow90}{rgb}{0.9894, 0.9082, 0.1}
\definecolor{kit-yellow80}{rgb}{0.9906, 0.9184, 0.2}
\definecolor{kit-yellow75}{rgb}{0.9912, 0.9235, 0.25}
\definecolor{kit-yellow70}{rgb}{0.9918, 0.9286, 0.3}
\definecolor{kit-yellow60}{rgb}{0.9929, 0.9388, 0.4}
\definecolor{kit-yellow50}{rgb}{0.9941, 0.949, 0.5}
\definecolor{kit-yellow40}{rgb}{0.9953, 0.9592, 0.6}
\definecolor{kit-yellow30}{rgb}{0.9965, 0.9694, 0.7}
\definecolor{kit-yellow25}{rgb}{0.9971, 0.9745, 0.75}
\definecolor{kit-yellow20}{rgb}{0.9976, 0.9796, 0.8}
\definecolor{kit-yellow15}{rgb}{0.9982, 0.9847, 0.85}
\definecolor{kit-yellow10}{rgb}{0.9988, 0.9898, 0.9}
\definecolor{kit-yellow5}{rgb}{0.9994, 0.9949, 0.95}
% KIT color orange :
\definecolor{kit-orange}{RGB}{223, 155, 27}
\definecolor{kit-orange100}{RGB}{223, 155, 27}
\definecolor{kit-orange90}{rgb}{0.8871, 0.6471, 0.1953}
\definecolor{kit-orange80}{rgb}{0.8996, 0.6863, 0.2847}
\definecolor{kit-orange75}{rgb}{0.9059, 0.7059, 0.3294}
\definecolor{kit-orange70}{rgb}{0.9122, 0.7255, 0.3741}
\definecolor{kit-orange60}{rgb}{0.9247, 0.7647, 0.4635}
\definecolor{kit-orange50}{rgb}{0.9373, 0.8039, 0.5529}
\definecolor{kit-orange40}{rgb}{0.9498, 0.8431, 0.6424}
\definecolor{kit-orange30}{rgb}{0.9624, 0.8824, 0.7318}
\definecolor{kit-orange25}{rgb}{0.9686, 0.902, 0.7765}
\definecolor{kit-orange20}{rgb}{0.9749, 0.9216, 0.8212}
\definecolor{kit-orange15}{rgb}{0.9812, 0.9412, 0.8659}
\definecolor{kit-orange10}{rgb}{0.9875, 0.9608, 0.9106}
\definecolor{kit-orange5}{rgb}{0.9937, 0.9804, 0.9553}
% KIT color lightgreen :
\definecolor{kit-lightgreen}{RGB}{140, 182, 60}
\definecolor{kit-lightgreen100}{RGB}{140, 182, 60}
\definecolor{kit-lightgreen90}{rgb}{0.5941, 0.7424, 0.3118}
\definecolor{kit-lightgreen80}{rgb}{0.6392, 0.771, 0.3882}
\definecolor{kit-lightgreen75}{rgb}{0.6618, 0.7853, 0.4265}
\definecolor{kit-lightgreen70}{rgb}{0.6843, 0.7996, 0.4647}
\definecolor{kit-lightgreen60}{rgb}{0.7294, 0.8282, 0.5412}
\definecolor{kit-lightgreen50}{rgb}{0.7745, 0.8569, 0.6176}
\definecolor{kit-lightgreen40}{rgb}{0.8196, 0.8855, 0.6941}
\definecolor{kit-lightgreen30}{rgb}{0.8647, 0.9141, 0.7706}
\definecolor{kit-lightgreen25}{rgb}{0.8873, 0.9284, 0.8088}
\definecolor{kit-lightgreen20}{rgb}{0.9098, 0.9427, 0.8471}
\definecolor{kit-lightgreen15}{rgb}{0.9324, 0.9571, 0.8853}
\definecolor{kit-lightgreen10}{rgb}{0.9549, 0.9714, 0.9235}
\definecolor{kit-lightgreen5}{rgb}{0.9775, 0.9857, 0.9618}
% KIT color purple :
\definecolor{kit-purple}{RGB}{163, 16, 124}
\definecolor{kit-purple100}{RGB}{163, 16, 124}
\definecolor{kit-purple90}{rgb}{0.6753, 0.1565, 0.5376}
\definecolor{kit-purple80}{rgb}{0.7114, 0.2502, 0.589}
\definecolor{kit-purple75}{rgb}{0.7294, 0.2971, 0.6147}
\definecolor{kit-purple70}{rgb}{0.7475, 0.3439, 0.6404}
\definecolor{kit-purple60}{rgb}{0.7835, 0.4376, 0.6918}
\definecolor{kit-purple50}{rgb}{0.8196, 0.5314, 0.7431}
\definecolor{kit-purple40}{rgb}{0.8557, 0.6251, 0.7945}
\definecolor{kit-purple30}{rgb}{0.8918, 0.7188, 0.8459}
\definecolor{kit-purple25}{rgb}{0.9098, 0.7657, 0.8716}
\definecolor{kit-purple20}{rgb}{0.9278, 0.8125, 0.8973}
\definecolor{kit-purple15}{rgb}{0.9459, 0.8594, 0.9229}
\definecolor{kit-purple10}{rgb}{0.9639, 0.9063, 0.9486}
\definecolor{kit-purple5}{rgb}{0.982, 0.9531, 0.9743}
% KIT color brown :
\definecolor{kit-brown}{RGB}{167, 130, 46}
\definecolor{kit-brown100}{RGB}{167, 130, 46}
\definecolor{kit-brown90}{rgb}{0.6894, 0.5588, 0.2624}
\definecolor{kit-brown80}{rgb}{0.7239, 0.6078, 0.3443}
\definecolor{kit-brown75}{rgb}{0.7412, 0.6324, 0.3853}
\definecolor{kit-brown70}{rgb}{0.7584, 0.6569, 0.4263}
\definecolor{kit-brown60}{rgb}{0.7929, 0.7059, 0.5082}
\definecolor{kit-brown50}{rgb}{0.8275, 0.7549, 0.5902}
\definecolor{kit-brown40}{rgb}{0.862, 0.8039, 0.6722}
\definecolor{kit-brown30}{rgb}{0.8965, 0.8529, 0.7541}
\definecolor{kit-brown25}{rgb}{0.9137, 0.8775, 0.7951}
\definecolor{kit-brown20}{rgb}{0.931, 0.902, 0.8361}
\definecolor{kit-brown15}{rgb}{0.9482, 0.9265, 0.8771}
\definecolor{kit-brown10}{rgb}{0.9655, 0.951, 0.918}
\definecolor{kit-brown5}{rgb}{0.9827, 0.9755, 0.959}
% KIT color cyan :
\definecolor{kit-cyan}{RGB}{35, 161, 224}
\definecolor{kit-cyan100}{RGB}{35, 161, 224}
\definecolor{kit-cyan90}{rgb}{0.2235, 0.6682, 0.8906}
\definecolor{kit-cyan80}{rgb}{0.3098, 0.7051, 0.9027}
\definecolor{kit-cyan75}{rgb}{0.3529, 0.7235, 0.9088}
\definecolor{kit-cyan70}{rgb}{0.3961, 0.742, 0.9149}
\definecolor{kit-cyan60}{rgb}{0.4824, 0.7788, 0.9271}
\definecolor{kit-cyan50}{rgb}{0.5686, 0.8157, 0.9392}
\definecolor{kit-cyan40}{rgb}{0.6549, 0.8525, 0.9514}
\definecolor{kit-cyan30}{rgb}{0.7412, 0.8894, 0.9635}
\definecolor{kit-cyan25}{rgb}{0.7843, 0.9078, 0.9696}
\definecolor{kit-cyan20}{rgb}{0.8275, 0.9263, 0.9757}
\definecolor{kit-cyan15}{rgb}{0.8706, 0.9447, 0.9818}
\definecolor{kit-cyan10}{rgb}{0.9137, 0.9631, 0.9878}
\definecolor{kit-cyan5}{rgb}{0.9569, 0.9816, 0.9939}
% KIT color gray :
\definecolor{kit-gray}{RGB}{0, 0, 0}
\definecolor{kit-gray100}{RGB}{0, 0, 0}
\definecolor{kit-gray90}{rgb}{0.1, 0.1, 0.1}
\definecolor{kit-gray80}{rgb}{0.2, 0.2, 0.2}
\definecolor{kit-gray75}{rgb}{0.25, 0.25, 0.25}
\definecolor{kit-gray70}{rgb}{0.3, 0.3, 0.3}
\definecolor{kit-gray60}{rgb}{0.4, 0.4, 0.4}
\definecolor{kit-gray50}{rgb}{0.5, 0.5, 0.5}
\definecolor{kit-gray40}{rgb}{0.6, 0.6, 0.6}
\definecolor{kit-gray30}{rgb}{0.7, 0.7, 0.7}
\definecolor{kit-gray25}{rgb}{0.75, 0.75, 0.75}
\definecolor{kit-gray20}{rgb}{0.8, 0.8, 0.8}
\definecolor{kit-gray15}{rgb}{0.85, 0.85, 0.85}
\definecolor{kit-gray10}{rgb}{0.9, 0.9, 0.9}
\definecolor{kit-gray5}{rgb}{0.95, 0.95, 0.95}
\setbeamercolor*{normal text}{fg=black}
\setbeamercolor*{alerted text}{fg=kit-red100}
\setbeamercolor*{example text}{fg=black}
\setbeamercolor*{structure}{fg=black}
\setbeamercolor*{palette primary}{fg=black,bg=black!15}
\setbeamercolor*{palette secondary}{fg=black,bg=black!15}
\setbeamercolor*{palette tertiary}{fg=black,bg=black!15}
\setbeamercolor*{palette quaternary}{fg=black,bg=black!15}
\setbeamercolor*{palette sidebar primary}{fg=black!75}
\setbeamercolor*{palette sidebar secondary}{fg=black!75}
\setbeamercolor*{palette sidebar tertiary}{fg=black!75}
\setbeamercolor*{palette sidebar quaternary}{fg=black!75}
\setbeamercolor*{item projected}{fg=white,bg=kit-green100}
\setbeamercolor*{block title}{fg=white,bg=kit-green100}
\setbeamercolor*{block title alerted}{use=alerted text,fg=white,bg=alerted text.fg!75!black}
\setbeamercolor*{block title example}{fg=white,bg=kit-blue100}
\setbeamercolor*{block body}{fg=black,bg=kit-green15}
\setbeamercolor*{block body alerted}{parent=normal text,use=block title alerted,bg=block title alerted.bg!10!bg}
\setbeamercolor*{block body example}{fg=black,bg=kit-blue15}
\setbeamercolor*{separation line}{}
\setbeamercolor*{fine separation line}{}
\setbeamercolor*{background canvas}{bg=white}
%% -----------
%% | /Farben |
%% -----------
%% -----------------------------------
%% | halbgerundete Aufzählungspunkte |
%% -----------------------------------
% KIT-Aufzählungszeichen
\newcommand{\KITmark}{%
\begin{pgfpicture}{0mm}{0mm}{1ex}{1ex}
{\pgfsetcornersarced{\pgfpoint{.3ex}{.3ex}}
\pgfpathmoveto{\pgfpoint{0cm}{1ex}}
\pgfpathlineto{\pgfpoint{1ex}{1ex}}
\pgfpathlineto{\pgfpoint{1ex}{0cm}}}
{\pgfsetcornersarced{\pgfpoint{.3ex}{.3ex}}
\pgfpathmoveto{\pgfpoint{1ex}{0cm}}
\pgfpathlineto{\pgfpointorigin}
\pgfpathlineto{\pgfpoint{0cm}{1ex}}}
\color{kit-green100}
\pgfusepath{fill}
\end{pgfpicture}%
}
\setbeamertemplate{itemize items}{\raisebox{.2ex}{\KITmark}}
%% ----------------------
%% | Inhaltsverzeichnis |
%% ----------------------
\setbeamertemplate{section in toc}{\normalsize\textbf{\textcolor{kit-blue}{\inserttocsectionnumber.~\inserttocsection}}\par}
\setbeamertemplate{subsection in toc}{\small\hspace{1.2em}\raisebox{.2ex}{\KITmark}\hspace{\labelsep}\inserttocsubsection\par}
%% ------------------------------
%% | halbgerundete Beamer-Boxen |
%% ------------------------------
\renewcommand\beamerboxesrounded[2][]{%
\global\let\beamer@firstlineitemizeunskip=\relax%
\vbox\bgroup%
\setkeys{beamerboxes}{upper=block title,lower=block body,width=\textwidth,shadow=false}%
\setkeys{beamerboxes}{#1}%
{%
\usebeamercolor{\bmb@lower}%
\globalcolorstrue%
\colorlet{lower.bg}{bg}%
}%
{%
\usebeamercolor{\bmb@upper}%
\globalcolorstrue%
\colorlet{upper.bg}{bg}%
}%
%
% Typeset head
%
\vskip4bp
\setbox\bmb@box=\hbox{%
\begin{minipage}[b]{\bmb@width}%
\usebeamercolor[fg]{\bmb@upper}%
#2%
\end{minipage}}%
\ifdim\wd\bmb@box=0pt%
\setbox\bmb@box=\hbox{}%
\ht\bmb@box=1.5pt%
\bmb@prevheight=-4.5pt%
\else%
\wd\bmb@box=\bmb@width%
\bmb@temp=\dp\bmb@box%
\ifdim\bmb@temp<1.5pt%
\bmb@temp=1.5pt%
\fi%
\setbox\bmb@box=\hbox{\raise\bmb@temp\hbox{\box\bmb@box}}%
\dp\bmb@box=0pt%
\bmb@prevheight=\ht\bmb@box%
\fi%
\bmb@temp=\bmb@width%
\bmb@dima=\bmb@temp\advance\bmb@dima by2.2bp%
\bmb@dimb=\bmb@temp\advance\bmb@dimb by4bp%
\hbox{%
\begin{pgfpicture}{0bp}{+-\ht\bmb@box}{0bp}{+-\ht\bmb@box}
\ifdim\wd\bmb@box=0pt%
\color{lower.bg}%
\else%
\color{upper.bg}%
\fi%
\pgfpathqmoveto{-4bp}{-1bp}
% Adaption for "KIT-Design"
\pgfpathlineto{\pgfpoint{-4bp}{3bp}}
%\pgfpathqcurveto{-4bp}{1.2bp}{-2.2bp}{3bp}{0bp}{3bp}
\pgfpathlineto{\pgfpoint{\bmb@temp}{3bp}}
\pgfpathcurveto%
{\pgfpoint{\bmb@dima}{3bp}}%
{\pgfpoint{\bmb@dimb}{1.2bp}}%
{\pgfpoint{\bmb@dimb}{-1bp}}%
\bmb@dima=-\ht\bmb@box%
\advance\bmb@dima by-2pt%
\pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
\pgfpathlineto{\pgfpoint{-4bp}{\bmb@dima}}
\pgfusepath{fill}
\end{pgfpicture}%
\copy\bmb@box%
}%
\nointerlineskip%
\vskip-1pt%
\ifdim\wd\bmb@box=0pt%
\else%
\hbox{%
\begin{pgfpicture}{0pt}{0pt}{\bmb@width}{6pt}
\bmb@dima=\bmb@width%
\advance\bmb@dima by8bp%
\pgfpathrectangle{\pgfpoint{-4bp}{-1bp}}{\pgfpoint{\bmb@dima}{8bp}}
\pgfusepath{clip}
{\pgftransformshift{\pgfpoint{-4bp}{0bp}}\pgftext[left,base]{\pgfuseshading{bmb@transition}}}%
\end{pgfpicture}%
}%
\nointerlineskip%
\vskip-0.5pt%
\fi%
\ifbmb@shadow%
\setbox\bmb@boxshadow=\hbox{\pgfuseshading{bmb@shadow}}%
\setbox\bmb@boxshadowball=\hbox{\pgfuseshading{bmb@shadowball}}%
\setbox\bmb@boxshadowballlarge=\hbox{\pgfuseshading{bmb@shadowballlarge}}%
\fi%
\setbox\bmb@colorbox=\hbox{{\pgfpicturetrue\pgfsetcolor{lower.bg}}}%
\setbox\bmb@box=\hbox\bgroup\begin{minipage}[b]{\bmb@width}%
\vskip2pt%
\usebeamercolor[fg]{\bmb@lower}%
\colorlet{beamerstructure}{upper.bg}%
\colorlet{structure}{upper.bg}%
%\color{.}%
}
\def\endbeamerboxesrounded{%
\end{minipage}\egroup%
\wd\bmb@box=\bmb@width%
\bmb@temp=\dp\bmb@box%
\advance\bmb@temp by.5pt%
\setbox\bmb@box=\hbox{\raise\bmb@temp\hbox{\box\bmb@box}}%
\dp\bmb@box=0pt%
\bmb@temp=\wd\bmb@box%
\bmb@dima=\bmb@temp\advance\bmb@dima by2.2bp%
\bmb@dimb=\bmb@temp\advance\bmb@dimb by4bp%
\hbox{%
\begin{pgfpicture}{0bp}{0bp}{0bp}{0bp}
\ifbmb@shadow%
{\pgftransformshift{\pgfpoint{4bp}{-3bp}}\pgftext{\copy\bmb@boxshadowball}}
\begin{pgfscope}
{%
\advance\bmb@temp by-1bp%
\pgfpathrectangle{\pgfpoint{\bmb@temp}{-7bp}}{\pgfpoint{9bp}{9bp}}%
\pgfusepath{clip}
}%
{\pgftransformshift{\pgfpoint{\bmb@temp}{1bp}}\pgftext{\box\bmb@boxshadowballlarge}}
\end{pgfscope}
\begin{pgfscope}
\advance\bmb@temp by-4bp%
\pgfpathrectangle{\pgfpoint{4bp}{-7bp}}{\pgfpoint{\bmb@temp}{5bp}}
\pgfusepath{clip}
{\pgftransformshift{\pgfpoint{4bp}{-7bp}}\pgftext[left,base]{\copy\bmb@boxshadow}}%
\end{pgfscope}
\begin{pgfscope}
\advance\bmb@temp by 4bp%
\bmb@dima=\ht\bmb@box%
\advance\bmb@dima by\bmb@prevheight%
\advance\bmb@dima by 4bp%
\pgfpathrectangle{\pgfpoint{\bmb@temp}{1bp}}{\pgfpoint{4bp}{\bmb@dima}}
\pgfusepath{clip}
\advance\bmb@dima by-4bp%
{\pgftransformshift{\pgfpoint{\bmb@temp}{\bmb@dima}}\pgftext{\box\bmb@boxshadowball}}
\advance\bmb@dima by-1bp%
\pgfpathrectangle{\pgfpoint{\bmb@temp}{1bp}}{\pgfpoint{4bp}{\bmb@dima}}
\pgfusepath{clip}
\advance\bmb@temp by4bp%
{\pgftransformshift{\pgfpoint{\bmb@temp}{-3bp}}%
\pgftransformrotate{90}%
\pgftext[left,base]{\box\bmb@boxshadow}}%
\end{pgfscope}
\fi%
\unhbox\bmb@colorbox%
\pgfpathqmoveto{-4bp}{1bp}
\pgfpathqcurveto{-4bp}{-1.2bp}{-2.2bp}{-3bp}{0bp}{-3bp}
\pgfpathlineto{\pgfpoint{\the\bmb@dimb}{-3bp}}
{
\bmb@dima=\ht\bmb@box%
\pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
\pgfpathlineto{\pgfpoint{-4bp}{\bmb@dima}}
\pgfusepath{fill}
}
\ifbmb@shadow%
{
\color{black!50!bg}
\pgfsetlinewidth{0pt}
\pgfpathmoveto{\pgfpoint{\bmb@dimb}{-.5bp}}
\bmb@dima=\ht\bmb@box%
\advance\bmb@dima by\bmb@prevheight%
\advance\bmb@dima by 1bp%
\pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
\pgfusepath{stroke}
\bmb@temp=\bmb@dima
\advance\bmb@dima by 1bp%
\color{black!31!bg}
\pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}}
\pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
\pgfusepath{stroke}
\advance\bmb@dima by 1bp%
\advance\bmb@temp by 1bp%
\color{black!19!bg}
\pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}}
\pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
\pgfusepath{stroke}
\advance\bmb@dima by 1bp%
\advance\bmb@temp by 1bp%
\color{black!6!bg}
\pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}}
\pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
\pgfusepath{stroke}
\advance\bmb@dima by 1.5bp%
\advance\bmb@temp by 1bp%
\color{bg}
\pgfpathmoveto{\pgfpoint{\bmb@dimb}{\bmb@temp}}
\pgfpathlineto{\pgfpoint{\bmb@dimb}{\bmb@dima}}
\pgfusepath{stroke}
}
\fi
\end{pgfpicture}%
\box\bmb@box%
}%
\ifbmb@shadow%
\vskip4bp minus 2bp%
\else%
\vskip2bp%
\fi%
\egroup% of \vbox\bgroup
}
%% -------------------------------
%% | /halbgerundete Beamer-Boxen |
%% -------------------------------
%% ----------------------
%% | Block-Definitionen |
%% ----------------------
% Content environment for structuring. Basically a headline followed by text
\newenvironment<>{contentblock}[1]{\begingroup%
\setbeamertemplate{blocks}[default]
\setbeamercolor{block body}{fg=black,bg=}%
\setbeamercolor{block title}{fg=black,bg=}%
\setbeamerfont*{block title}{family=\sffamily,series=\bfseries,size=\large}
\begin{block}#2{#1}%
}{\end{block}%
\endgroup}
\newenvironment<>{greenblock}[1]{\begingroup%
\setbeamercolor{block body}{fg=black,bg=kit-green15}%
\setbeamercolor{block title}{fg=white,bg=kit-green100}%
\begin{block}#2{#1}%
}{\end{block}
\endgroup}
\newenvironment<>{blueblock}[1]{\begingroup%
\setbeamercolor{block body}{fg=black,bg=kit-blue15}%
\setbeamercolor{block title}{fg=white,bg=kit-blue100}%
\begin{block}#2{#1}%
}{\end{block}
\endgroup}
\newenvironment<>{redblock}[1]{\begingroup%
\setbeamercolor{block body}{fg=black,bg=kit-red15}%
\setbeamercolor{block title}{fg=white,bg=kit-red100}%
\begin{block}#2{#1}%
}{\end{block}%
\endgroup}
\newenvironment<>{brownblock}[1]{\begingroup%
\setbeamercolor{block body}{fg=black,bg=kit-brown15}%
\setbeamercolor{block title}{fg=white,bg=kit-brown100}%
\begin{block}#2{#1}%
}{\end{block}%
\endgroup}
\newenvironment<>{purpleblock}[1]{\begingroup%
\setbeamercolor{block body}{fg=black,bg=kit-purple15}%
\setbeamercolor{block title}{fg=white,bg=kit-purple100}%
\begin{block}#2{#1}%
}{\end{block}%
\endgroup}
\newenvironment<>{grayblock}[1]{\begingroup%
\setbeamercolor{block body}{fg=black,bg=kit-gray15}%
\setbeamercolor{block title}{fg=white,bg=kit-gray70}%
\begin{block}#2{#1}%
}{\end{block}%
\endgroup}
\newenvironment<>{yellowblock}[1]{\begingroup%
\setbeamercolor{block body}{fg=black,bg=kit-yellow30}%
\setbeamercolor{block title}{fg=black,bg=kit-yellow100}%
\begin{block}#2{#1}%
}{\end{block}%
\endgroup}
\newenvironment<>{lightgreenblock}[1]{\begingroup%
\setbeamercolor{block body}{fg=black,bg=kit-lightgreen15}%
\setbeamercolor{block title}{fg=white,bg=kit-lightgreen100}%
\begin{block}#2{#1}%
}{\end{block}%
\endgroup}
\newenvironment<>{orangeblock}[1]{\begingroup%
\setbeamercolor{block body}{fg=black,bg=kit-orange15}%
\setbeamercolor{block title}{fg=white,bg=kit-orange100}%
\begin{block}#2{#1}%
}{\end{block}%
\endgroup}
\newenvironment<>{cyanblock}[1]{\begingroup%
\setbeamercolor{block body}{fg=black,bg=kit-cyan15}%
\setbeamercolor{block title}{fg=white,bg=kit-cyan100}%
\begin{block}#2{#1}%
}{\end{block}%
\endgroup}
%% ------------------------------
%% | /Block-Definitionen |
%% ------------------------------
%% use this for setting the total page number
\newcommand{\beginbackup}{
\newcounter{framenumbervorappendix}
\setcounter{framenumbervorappendix}{\value{framenumber}}
}
\newcommand{\backupend}{
\addtocounter{framenumbervorappendix}{-\value{framenumber}}
\addtocounter{framenumber}{\value{framenumbervorappendix}}
}