Occlusion Aware Surface Processing



User-guided surface selection operations which are straightforward in a plane become challenging on non-strictly convex surfaces because of self-occlusions. Since the occlusions change with the view, users have to alternate between moving to an unobstructed view and performing those operations.

We propose a method that enables operations like selecting or cutting in a single view, by mapping a user drawn screen space curve as a continuous projection onto the object’s surface, unaffected by occlusions, to guarantee a seamless manifold cut.


The algorithm is already implemented, and the student will have access to the source code. Only the following tasks remain:

1- Implement a GUI for the demo, using QT libraries.

2- Adding texture painting feature.

3- Implement an acceleration structure, and use ray tracing instead of rasterization to project the 2D curve on the 3D surface.

4- Convert the program into a blender or Maya plugin.

The student will choose one of Tasks 1 and 4. Tasks 2 and 3 are up to discussion.


  • Knowledge of English language (source code comments and final report should be in English)
  • Knowledge of C++
  • Knowledge of GLSL
  • Knowledge of Qt