€1000 Screen-Adaptive Levels-Of-Detail

Bachelor Thesis
Student Project
Master Thesis
1-2

Description

In rasterization, objects which are further away are smaller and usually representations with lesser detailed geometry are used to keep the performance. Levels-of-Detail (LOD) of meshes are computed automatically in order to achieve this goal,.or hand-crafted by artists for importance weighting of salient features within a triangle budget.

LOD creation can be done fast but then requires additional space in memory. We want to render arbitrary LOD from a single data structure on-the-fly, adapted to screen size, and for that augment an existing octree structure with pre-calculated importance weighting and screen-space weights, e.g. for foveated rendering in VR.

Here is source code (and link to paper) for creating an isovalue octree from a mesh: http://www.cs.jhu.edu/~misha/Code/IsoOctree/#DESCRIPTION as a base.

Tasks

What do students have to do?

  1. Familiarize with IsoOctree source code, identify the edge intersection computation which yields the vertices of the mesh-to-compute.
  2. Project all octree nodes which are determined as 'relevant' by a function, depending on size of projected octree node on screen, importance of node, and position on screen for VR devices) until not any more visible (does not subdivide further then.
  3. Stop traversal at relevant nodes, determine their edge intersections and forward these to the marching cubes method for generating triangles.
  4. Evaluation on run-time and image quality, compared with rendering the pre-computed full triangulation.
  5. Optimize: Instead of converting the relevant subset of the octree to a mesh and render the triangles, cast rays for all pixels of the top octree node as rendered on screen, 3D-DDA ray traverse through octree until relevant node is reached, then convert that node into triangles/fragments (eliminates occluded and back facing surface regions) - this can be implemented in parallel in CUDA.
  6. Write up thesis (for praktikum a small report) explaining what you implemented and the results, with some graphs and pictures.

Requirements

  • Knowledge of English language (source code comments and final report should be in English)
  • Knowledge of C++, CUDA or shader programming and good optimizing skills are advantageous, but not necessary

Environment

C/C++ and CUDA, platform-independent

A bonus of €1000 if completed to satisfaction within an agreed time-frame of 1 year (master thesis) or €500 within 6 months (bachelor thesis, praktikum).

Responsible

For more information please contact Stefan Ohrhallinger, Michael Wimmer.