Cutout Vis2012
TUWienVisualisierung2(SS2012)-AdaptiveCutaways
 All Classes Namespaces Functions Pages
Adaptive cutaways - Visualization 2012

Motivation

The goal of illustrative visualization is the emphasis of interesting features in data. Typical methods are the blurring of contextual information or exploded views of multi-layered objects. Another possibility to separate primary from secondary information is the use of cutaways. In a complex geometric scene, important objects are often occluded by others, e.g. a room in a building that is occluded by the walls, or the components of a machine that are occluded by the casing. The idea is to construct a volume that that covers the area of the scene in which occluders are positioned and subtract this volume from the scene.

screenshot

An approach that works in real-time is outlined in the article "Adaptive cutaways for comprehensible ren- dering of polygonal scenes" by M. Burns and A. Finkelstein, published in "ACM SIGGRAPH Asia 2008 papers". This project implements the technqiues proposed in the paper and provides simple editing capabilities that allows for testing with different models and environments. Included in the project is a set of two-manifold, closed models that have been assembled into a scene to showcase the functionality.


Features

The application can load models from COLLADA .dae files and render them in NPR style. The user may move and scale the models to build scenes as well as save and load scenes. The workflow is realized as a combination of direct manipulation by transforming gizmos and modifying properties via text commands.

The core function is the demonstration of adaptive cutaways that run in real-time. When the user selects an objects, the application calculates a depth representation of a conical shape with the apex in the object and the base on the near plane. This cone surrounds the area in the scene that could potentially occlude the selected object. By subtracting it from the scene, the user has an unobstructed view on the object.

Several improvements are described in the article by Burns and Finkelstein and have also been implemented:


Manual

Your graphics card must support OpenGL 3.3 for the application to work. The test scene s_test.sce will be loaded upon startup. Use the following controls to manipulate the scene:

The terminal executes commands to load and save scenes and models and to fine-tune the properties of the cutaway effect. The following commands are allowed:


Implementation

The different render passes are implemented in the render() method of the class Vis2Window. It is responsible for binding framebuffers and shaders and calls causes the scene to draw its objects whenever necessary. Render passes: