Distort
Projekt Team
|
Betreuer |

Introduction
Projection mapping is a technology that turns objects into a display surface. Usually one or two video projectors will be used to display rectangular textures like walls or other surfaces onto models of any type.
Distort is a software that simplifies the process of mapping these textures onto the corresponding surface of the model. In contrast to other tools that are either too complex or stationary, Distort consists of an easy-to-use Web application and a corresponding server-part, so that the mapping can be done wirelessly with a tablet, for example.

Goal
The goal of this project was to display different textures that are perspectively distorted on an architectural model. It should appear as a plastic model with changeable surfaces.
After testing some comparable products we decided to build a software that is as flexible as possible and can be used on any object that is on hand. We aimed for a software that is easy to install, to use and to understand.
Since nowadays almost everyone has a smartphone or an tablet at home we decided to use the gain of this devices by building a web-application. This brings the benefit that you can step close to the object and work accurately.

Approach
After getting to know Unity and Angular.js we started developing in parallel on both parts of the App. In order to do so we defined an interface over which the two parts would communicate which each other.
The Angular.js application was functional very early, with many features still missing but enough to create, delete and transform objects. On the unity side we had more problems, although the unity server already could receive commands from the web socket and put them on screen, the perspective transformation was a hard nut to crack. Finally we managed to write a custom shader that transforms the rectangles with the help of a transformation matrix we calculate in a script.
After the cores of both parts were developed we started iterating over our design and interaction choices, and decided to split the main UI in two parts, setup and presentation.
While in setup mode the user can create, move, delete and transform rectangles and map them onto his real life 3D model. We integrated a snap mode which enables the user to connect multiple corners, so that they will always move together if dragged. He can set different textures on different rectangles and save a combination of texture assignments in a so called texture-set. This may come in handy if there is more than one assignment that has to be presented. After having all set up, switching to the presentation mode will allow the user to quickly choose from the preassigned texture-sets, which will then be applied to the scene.