\documentclass[conference]{IEEEtran}
\IEEEoverridecommandlockouts
\usepackage[letterpaper, left=2cm, right=2cm]{geometry}
\makeatletter

\def\ps@IEEEtitlepagestyle{
  \def\@oddfoot{\mycopyrightnotice}
  \def\@evenfoot{}
}
\def\mycopyrightnotice{
  {} % <--- Change here
}


\@ifundefined{showcaptionsetup}{}{
 \PassOptionsToPackage{caption=false}{subfig}}
\usepackage{subfig}
\makeatother

\usepackage{eso-pic}
\newcommand\AtPageUpperMyright[1]{\AtPageUpperLeft{
 \put(\LenToUnit{0.5\paperwidth},\LenToUnit{-1cm}){
     \parbox{0.5\textwidth}{\raggedleft\fontsize{9}{11}\selectfont #1}}
 }}
\newcommand{\conf}[1]{
\AddToShipoutPictureBG*{
\AtPageUpperMyright{#1}
}
}

\definecolor{faublue}{RGB}{0,49,106}
\definecolor{faudarkblue}{RGB}{4, 33, 66}
\definecolor{faubgrey}{RGB}{162, 168, 168}
% 162, 168, 168
\usepackage{pgfgantt}
\usepackage[colorlinks]{hyperref}
 \hypersetup{
     colorlinks=true,
     linkcolor=faublue,
     filecolor=faublue,
     citecolor=faublue,      
     urlcolor=faublue
     }
% The preceding line is only needed to identify funding in the first footnote. If that is unneeded, please comment it out.
\usepackage[backend=biber,natbib=true]{biblatex} %Imports biblatex package
\usepackage[nolist]{acronym}
\addbibresource{2025-Denhof-BA-Unity-Pathtracing.bib} %Import the bibliography file
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithmic}
\usepackage{graphicx}
\usepackage{textcomp}
\usepackage{xcolor}
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}

\usepackage{tikz}
\def\checkmark{\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;} 

% \usepackage{background}
% \backgroundsetup{contents=\includegraphics{figures/hex-petrol-newCI.jpg}, scale=.1, opacity=0.2, angle=0.0000001, position={-0.1,-10.65\textheight}}

\usepackage{geometry}


\geometry{
  a4paper,
  left=20mm,
  right=20mm,
  headheight=30mm,
  top=40mm,
  bottom=45mm,
  footskip=25mm
}

\usepackage{multicol}

\input{header_footer}


\begin{document}


\input{acronyms}

% \author{Lucas, Denhof}
\title{Exposé: Volumetric Path Tracing inside the Unity Game Engine Extended}
%Shader Based Volumetric Path Tracing of Medical Data
%Shader Based Volumetric Path Tracing of Medical Data in Unity
%Volumetric Path Tracing inside the Unity Game Engine Extended
%Volumetric Path Tracing inside the Unity Game Engine Continued
%Extended Volumetric Path Tracing inside the Unity Game Engine

\maketitle
\vspace{-6ex}
\begin{center}
\noindent \textbf{Research Lead:} \textit{Prof. Dr. Daniel Roth}  \hspace{6pt}
\textbf{Type:} \textit{Bachelor Thesis Exposé} %\hspace{6pt}
%\textbf{Type:} \textit{Master Thesis} \hspace{6pt}
% \textbf{Type:} \textit{Bachelor Thesis} \hspace{6pt}
%\textbf{Type:} \textit{IDP/CAP} \hspace{6pt}
% Shader Based Volumetric Path Tracing
% of Medical Data
\par\noindent
\textbf{Date:} \textit{19.05.2025}  \hspace{6pt} %\\ \vspace{-2ex}
\textbf{Supervisor:} \textit{Constantin Kleinbeck}  %\\
\hspace{6pt}
\textbf{Author:} \textit{Lucas Denhof}
\end{center}

% \noindent \textbf{(Potential) Partner:} \textit{} \hspace{6pt}
% \textbf{Medical Expert(s):} \textit{}  \hspace{6pt}



% \begin{abstract}
 % 
% \end{abstract}

%\begin{IEEEkeywords}

%\end{IEEEkeywords}
\thispagestyle{fancy}

\vspace{3ex}

\section{Project Abstract}

In this thesis, the VolRen\cite{hofmann_nihofmvolren_2025} volume path tracer will be ported into the Unity game engine. The goal is to make it seamlessly connect to the rest of Unity's systems. Additional rendering effects such as depth of field are planned to be implemented, and once optimized, it will be investigated whether a variant can be made for rendering in real-time, for example in VR. Finally, it will be compared with other state-of-the-art volumetric renderers in rendering speed and output quality.
%Porting the VolRen volume path tracer into Unity and potentially expanding upon its capabilities. Aimed at use in the medical field. Investigating the benefits and drawbacks compared to two-dimensional variants.


\section{Introduction}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Motivation, Problem Statement
\begin{figure}[ht]
    \centering
    % \includegraphics[width=.2\columnwidth]{figures/2dvs3d.png}
    \includegraphics[width=1\columnwidth]{figures/2dvs3d.png}
    \caption{Left: Original CT data. Right: Cinematic rendering of the same dataset.\cite{comaniciu_shaping_2016}}
    \label{fig:mri2d}
\end{figure}

For a long time, doctors have been using two-dimensional slices of MRI scans to glean information out of the injuries their patients have suffered. However, this approach is flawed: We are three-dimensional creatures, and so are our injuries. The absence of an extra dimension is limiting doctors and their diagnoses.\par

Why not leverage the vision we have evolved with, and use realistic three-dimensional renders to create more intuitive and helpful tools for doctors? Such photorealistic renders will aid with our natural object recognition and depth perception, helping doctors reach the correct diagnosis. These images may also prove to be more intuitive for people who aren't familliar with interpreting 2D scans, such as young or inexperienced doctors, or even the patients themselves.\par

%maybe add the actual year it was invented/adopted
As it stands, two-dimensional renderers have been used for decades and many doctors have familiarised themselves with these slices. Three-dimensional renderers have also existed for some time, but they didn't always look photorealistic. Only in recent years have graphics cards, that are capable of rendering complex ray-traced 4K scenes in realtime or even faster, become so ubiquitous. The quality and interactivity of renderers powered by these graphics cards warrents investigating photorealistic renderers as a supplement, or alternative to the currently used two-dimensional renderers.\par

This thesis aims to investigate the feasibility of using volumetric path tracing to create three-dimensional renders. We seek to integrate them into the Unity game engine, allowing for easy, cross-platform, and real-time use in a variety of applications, perhaps even VR.\par
%Standard medical formats for Compute Tomography (CT) and Magnetic Resonance Imaging (MRI) scans
Standard medical formats for CT and MRI scans, such as DICOM, are to be easily imported, and the Transfer Function, which maps color and opacity, should should be freely editable in the build.\par

By doing all this, we wish to provide an simple but powerful tool for the medical world. Our hope is to provide an easy stepping stone for others who wish to do research in this area.


% \begin{figure}[ht]
%     \centering
%     \includegraphics[width=.2\columnwidth]{figures/manix.png}
%     \caption{Example 3D render from Exposure Render.\cite{kroes_exposure_2012}}
%     % \label{fig:enter-label}
% \end{figure}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Related Work}
% state of the art work
% 
%todo maybe add more generel ones
\citet{hofmann_efficient_2021} created the structure for a volumetric path tracer which was implemented in VolRen in OpenGL, and it is the core for much that will be built in this paper.\par
\citet{giesse_volumetric_nodate} implemented the VolRen in the Unity game engine with room for further research. His work will be continued in this paper.\par
%https://github.com/nihofm/volren\par
% Breen et al. worked with the cinematic renderer from Siemens\cite{breen_3d_2022} to ...\par
% https://www.siemens-healthineers.com/digital-health-solutions/cinematic-rendering\par
% https://github.com/ThomasKroes/exposure-render\par
\citet{lavik_mlavik1unityvolumerendering_2025} created UnityVolumeRendering, where inspiration will be taken from the successful integration of a ray marching algorithm in Unity.\par
% https://github.com/mlavik1/UnityVolumeRendering\par
\par
\citet{comaniciu_shaping_2016} explore various techniques to improve medical imaging. Among other things, they discuss their Cinematic Rendering renderer which creates impressive images using Monte Carlo path
tracing.\par %their fig. 1 is really really cool, and I want to use it.
% D. Comaniciu, K. Engel, B. Georgescu, and T. Mansi, “Shaping the future through innovations: From medical imaging to precision medicine,” Medical Image Analysis, vol. 33, pp. 19–26, Oct. 2016, doi: 10.1016/j.media.2016.06.016
\par
\citet{kroes_exposure_2012} show the approach they used for Exposure Render, which uses Monte Carlo ray tracing to render volumes, and thereby allows a large variety of effects to be easily and flexibly implemented.\par
% T. Kroes, F. H. Post, and C. P. Botha, “Exposure Render: An Interactive Photo-Realistic Volume Rendering Framework,” PLOS ONE, vol. 7, no. 7, p. e38586, Jul. 2012, doi: 10.1371/journal.pone.0038586.
\par
\citet{ljung_state_2016} report on the state-of-the-art research on transfer functions, which provide a conversion to show the data inside of a volume as color and opacity.\par
% P. Ljung, J. Krüger, E. Groller, M. Hadwiger, C. D. Hansen, and A. Ynnerman, “State of the Art in Transfer Functions for Direct Volume Rendering,” Computer Graphics Forum, vol. 35, no. 3, pp. 669–691, 2016, doi: 10.1111/cgf.12934.
% T. Kroes also worked on ...\cite{kroes_visibility_nodate}\par

%if I need more related works, put in this ig https://github.com/Pjbomb2/TrueTrace-Unity-Pathtracer
% or this https://onlinelibrary.wiley.com/doi/full/10.1111/cgf.13383

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Approach}
% how is the problem adresses, short outline
This thesis plans to build off of and continue Giesse's work\cite{giesse_volumetric_nodate} in porting the VolRen\cite{hofmann_efficient_2021} renderer into the Unity game engine.\par
After conducting sufficient research into the current state-of-the-art shaders, VolRen will be finished being ported into Unity. Bugs and other issues that were identified by Giesse, and that we will identify, will be fixed. Examples include problems with the chunk boundaries, extending the RGB output with e.g. specular, and making data importing and changing of the transfer function work in the build, and not just in the editor.\par
Once it has been properly integrated into all of Unity's systems, new effects will be added, such as depth of field or denoising.\par
Finally, the implementation will be optimized, and it will be investigated whether a simplified version can be made for realtime rendering. The goal would be to get the best possible quality in the shortest possible time, likely sacrificing some rendering effects for speed, and trying out optimizations like denoising, biased rendering, and deduplication.\par

Our solution will then be compared with various other state-of-the-art volumetric renderers.
% The advantages and disadvantages of such a solution will then be compared with various other state-of-the-art shaders. %The metrics used to compare the shader are speed, for example with the time it takes to render a frame in milliseconds, and the quality of the render, by looking at the peak signal-to-noise ratio (PSNR) and the structural similarity index measure (SSIM).\par
% Convergence will be measured
% Since no ground truth is available, we cannot accurately only accurately compare
It will be measured how long it takes our renderer to converge on an image in frames and samples. Various scenes of different complexity will be used, and benchmarking will be done with and without the rendering effects that were implemented. It will be calculated how accurate the first noisy samples are, compared to the converged image, by looking at the peak signal-to-noise ratio (PSNR) and the structural similarity index measure (SSIM).\par
Since no ground truth is available, we cannot accurately use PSNR or SSIM to calculate how physically accurate the renderer is, and therefore we cannot numerically compare it to other volumetric renderers. A mere visual comparison with these other renderers will have to suffice, along with the rendering time.

% The metrics used to compare the shader are speed, for example with the time it takes to render a frame in milliseconds, and the quality of the render, by looking at the peak signal-to-noise ratio (PSNR) and the structural similarity index measure (SSIM).\par
%and if possible, user tests will be made to see if medical professionals prefer working with three-dimensional renders of MRI scans as opposed to two-dimensional ones.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Goals/Objective}
% define goals very clearly. goals equal expected results, and are not the tasks that lead to these results.
% what i aim to do\par
\begin{itemize}
    \item Finish porting VolRen into Unity.
    \item Make it interact well with all of Unity's systems, such as:
    \begin{itemize}
        \item Rendering
        \item Occlusion
        \item Lighting            
        \item Colliders
        \item Physics
        \item The inspector/scene view
        \item etc.
    \end{itemize}
    \item Fix bugs in, and expand upon the existing implementation.
    \item Add new features, such as depth of field or denoising.
    \item Optimize the existing implementation. 
    \item Investigate whether a simplified version can be made for realtime rendering or virtual reality.
    \item Add importing of standard files for medical scans during runtime.
    \item Add an editor for transfer functions in the build.
    \item Benchmark and compare with state-of-the-art.
\end{itemize}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \section{Schedule/Time Plan}
% maybe add a GANT show your milestones
% list the tasks along your path as precise as possible and in small work packages
%\noindent\resizebox{0.5\textwidth}{!}{

%\input{gantt}

%}

\section{AI Usage}
Over the course of writing this document, QuillBot has been used in order to correct various minor spelling and grammar mistakes.\par
ChatGPT-4o has also been used to display possible completions of sentences when looking for a certain word but unable to find it, or to help learn about some \LaTeX commands.\par
%for the future ill just premptively write this
%Additionally, the IntelliCode AI in Visual Studio Code was used to provide code autocompletions, and thereby accelerate development and integration of the shader.
Otherwise, \textbf{no} other artificial intelligence tools such as ChatGPT, Grammarly, GitHub Copilot, DeepL, DeepSeek, or similar have been used.



\printbibliography
% [
% heading=bibintoc,
% title={Whole bibliography}
% ]

\end{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Notes

% add constantin to sharelatex

% Exposé
% You will write a two page exposé precisely reviewing the state of the art and most important related work, and displaying the goals and approaches of your thesis and discuss it with your supervisor and mentor.

% Summary of the topic including the 10 most related works displaying the state of the art, and clearly defined goals

% add an AI disclosure section (https://confluence.aet.cit.tum.de/pages/viewpage.action?spaceKey=EduResStud&title=AI+Transparency)

% Structure
%     • Title, Name, Date, Partners, Prof
%     • Abstract
%     • Introduction, Motivation, Problem Statement
%     • Related Work
%     • Approach
%     • Goals/Objective
%     • Schedule/Time Plan
%     • References



% -maybe coop with other guy and add some stuff about transfer functions

%look into github links for some more related works