\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}