*** Wartungsfenster jeden ersten Mittwoch vormittag im Monat ***

Skip to content
Snippets Groups Projects
Commit e380ed02 authored by Bernhard Kerbl's avatar Bernhard Kerbl
Browse files
parents c7d79805 1423e906
No related branches found
No related tags found
No related merge requests found
......@@ -8,12 +8,12 @@
\title{Assignment 2: BVH Building \& Traversal}
\deadline{2021-05-02 23:59}
\deadline{2021-05-12 23:59}
\teaser{
\hspace*{\fill}
\includegraphics[trim={1cm 1cm 1cm 1cm},clip,width=0.42\linewidth]{figures/cbox_ajax_bunny_intersections.png}
\hfill
\includegraphics[trim={1cm 1cm 1cm 1cm},clip,width=0.42\linewidth]{figures/pt_ajax_bunny_2048.png}
\includegraphics[trim={1cm 1cm 1cm 1cm},clip,width=0.42\linewidth]{figures/cbox-ajax-bunny-pt.png}
\hspace*{\fill}
\label{fig:figintro}
}
......@@ -30,6 +30,18 @@ In this task, you will implement a spatial acceleration structure inside the Nor
This will speed up rendering, which is crucial for complex scenes with a lot of geometry.
Proper acceleration structures reduce the number of intersection tests during traversal (see above, red = high, blue = low) and can cut render time, e.g., from 40 minutes to 6 seconds.
\textbf{We have updated the \texttt{assignments} repository. Please merge all upstream changes before starting to work.}
\begin{verbatim}
git checkout master
git pull
git merge submission1 # just to be sure
git push # just in case something fails, make a backup
git remote add upstream git@submission.cg.tuwien.ac.at:rendering-2020/assignments.git
git pull upstream master
# resolve any merge conflict, or just confirm the merge.
git push
\end{verbatim}
\section*{BVH Building + Traversal (up to 25 points)}
Use the information provided in the lecture and accompanying slide set to build a reasonably fast BVH.
Implementing the BVH requires adding two behaviors: BVH building and BVH traversal.
......@@ -45,6 +57,7 @@ Depending on your effort with BVH building, we will award points as follows:
\end{description}
Since there are not that many meshes in our test scenes, it suffices to build a separate BVH for each mesh and perform traversal on them one after the other.
Using the fast traversal presented in the lecture (checking nearest node first) gives 5\ points.
You should also try to optimize for the overall tracing performance for rendering detailed models like the Ajax.
Caching pre-computed, high-quality BHVs is of course not allowed and will not be useful, since we will run our own tests on your code.
......@@ -77,7 +90,6 @@ If you are tired of waiting for your results or going for the high-score, the la
\subsection*{Words of wisdom}
\begin{itemize}
\item Remember, that you need at least 15 points for each assignment!
\item Use \texttt{git clone --recursive <your repo URL>} for cloning your repository, because Nori uses submodules.
\item The framework is using Eigen under the hood for vectors and matrices etc. Be careful when using \texttt{auto} in your code \href{https://eigen.tuxfamily.org/dox/TopicPitfalls.html}{(Read here why)}.
\item The lecture slides should you provide with the information you need to implement a simple or elaborate BVH.
\item If you are having trouble with performance, consider changing the resolution and/or number of samples for your test cases.
......
assignments_2021/assignment2_bvh/figures/cbox-ajax-bunny-pt.png

502 KiB

assignments_2021/assignment2_bvh/figures/pt_ajax_bunny_2048.png

632 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment