Sunday, October 7, 2012

ISMAR 2011

Having nice global illumination between real and virtual objects is not enough to get a plausible illusion. There are still some important points missing that make virtual objects easily distinguishable from real objects:
  • The tracking often jitters or worse gets lost for virtual objects
  • The colors of virtual objects do not match the colors of the surrounding real objects
  • The virtual objects have a perfect appearance while the real objects don't
  • Camera artifacts introduce distortions to the real objects, but normally not to virtual ones as they are rendered on top of the video image
So in order to get a plausible illusion we have to deal with those problems. In our paper "Adaptive Camera-Based Color Mapping For Mixed-Reality Applications" we tried to find an automatic method that adapts the color mapping characteristics of the camera onto the virtual objects.


New Zealand

I had the luck to spend an awesome time in Christchurch, New Zealand at the famous HITLabNZ. During my three month stay we've developed a small user study that analyzed the influences of our differential instant radiosity method for specific task execution in mixed reality scenarios. However, for the chosen tasks no significant differences could be measured.

A big thanks goes to all the people at the HITLabNZ for such a great time!!!

Writing more about New Zealand is pretty much useless - you should pack your stuff and go there: IT IS ABSOLUTELY AMAZING!!! :-)



ISMAR 2010

The first work we tried to publish was called "Differential Instant Radiosity for Mixed Reality". On this paper Christoph Traxler, Werner Purgathofer, Michael Wimmer and myself were working on a real-time global illumination rendering system for mixed reality scenarios. My master thesis already dealed with real-time global illumination by using a method called instant radiosity. It basically places virtual point lights at positions where light hits a surface.
We submitted our work to the ISMAR 2010 conference held in Seoul, South Korea and were happy to hear that it got accepted. We also presented our method on a demo booth and were very happy again about the very positive feedback of the people. However, to our total surprise, we won the "Best Paper Award" for our method - YEAH!!! :-)


Main Features:
  • Real and virtual objects cast shadows onto each other
  • Real and virtual objects may cause indirect illumination onto each other
  • Real and virtual spot light sources are supported
  • Multiple light bounces
Limitations:
  • Real geometry must be pre-modeled
  • Double shadowing artifacts may occur
  • Inconsistent color bleeding may occur

What happened so far....

Okay, so my master thesis was done and the blog - while never really alive - went completely dead.

However, since 2009 lots of stuff happened. One big change was the start of my PhD or Doctoral studies at the Vienna University of Technology. I got the chance to work on a very interesting project called RESHADE. RESHADE means "Reciprocal Shading for Mixed Reality". The main goal of this project is to develop methods that make virtual objects indistinguishable from real objects in mixed reality scenarios. You can find a more detailed description here: http://www.cg.tuwien.ac.at/projects/RESHADE/

Since I started working on this project I also managed to publish some work that I will present in follow up posts...

Tuesday, July 28, 2009

Real Time Global Illumination Using Temporal Coherence

It's done!!! I've finished my master thesis!!! :)

Here's a video about the results of my work:

Saturday, April 4, 2009

Realtime Global Illumination using Temporal Coherence

I'm currently working on my master thesis which performs global illumination in realtime. The thesis is based on the "Imperfect Shadowmap" approach. I also use temporal coherence to reuse as much information as possible from the previous frame. The work is not finished yet, but here's a video with the first results. It was captured on an Intel i7 CPU system with 6GB RAM and two GTX295 graphic cards running in SLI mode. With 3 light bounces the application runs at 60fps.

Main Features:
  • No preprocessing necessary
  • Fully dynamic scenes and lighting
  • Multiple Lightbounces
  • Fast through exploiting temporal coherence

Sunday, August 31, 2008

Gruppenzwang - Realtime Graphics Demo


In the realtime rendering labratory course my brother Wolfgang and I developed the graphics demo called 'Gruppenzwang'. The fun part was, that we could implement whatever effects we wanted and I'm quite proud of the result and this list:
  • Shadowmaps with softshadows
  • Screen spaced ambient occlusion
  • Parallax Occlusion Mapping
  • Swarm simulation
  • Splinemeshes
  • Pixelperfect spheres (with raycasting)
  • Volume renderer
  • Microscope effect
  • Normalmapping microscope effect
  • Motionblur
  • Flow simulation
  • Dynamic cubemap environment mapping
  • Screen distortion
In opposite to the other projects presented on this site, we developed a new rendering framework that was the underlying basis for the demo. It has a better object oriented design and is more flexible than the previous one. We used DirectX9 for rendering and the Fragmentlinker to compose the final material shaders. For example raycasting (for the spheres) combined with three different surface shaders.

>>> Download Demo <<<



Project Members:

Sunday, April 6, 2008

Architectural Visualization

Some shots of architectural visualization I did with my brother Wolfgang.



Monday, December 3, 2007

Fractals

For the Fractals labratory course I developed two small applications. Both were set up on the Engine from the Jungle Rumble game.

Strange Attractors

This program displays the Lorenz or Roessler attractor. You can download it here.


DLA - Diffusion Limited Aggregation

This small application displays the DLA algorithm on a 3D grid. The spheres are rendered using billboards to enable fast rendering. You can download it here.

Saturday, June 30, 2007

Softshadows


In this project we tested an idea to create smooth soft shadows for tube like lights. The basic outline of the algorithm is as followed:

  • Render a shadowmap from the leftmost and rightmost point of the tube light
  • Compare both and use hardware occlusion queries to check if there is to much difference
  • If theres to much difference, generate in the middle of those a new shadowmap
The algorithm recursively generates shadowmaps (the next one is between left/middle and middle/right) according to an error threshold. To get better results the shadowmaps are projected back to camera view so that the real visible difference is taken into account.
This application was developted on top of the Jungle Rumble Engine. You can download a demo here.

Project Members:
  • Michael Schwärzler: Programming
  • Martin Knecht: Programming

Thursday, February 1, 2007

Flow Visualization

In the labratory course Visualization we had to develope two projects: The volume renderer (see topic below) and a program to display flow data sets. You can download it here. There is also a small webpage available that explains the main features. For copyright reasons I'm only allowed to link the website, that provides the volume data sets.


Project Members:
  • Michael Schwärzler
  • Martin Knecht

Volume Renderer

For another labratory course at the Vienna University of Technology we developed a volume renderer. It takes volume data from a CT and displays it using different algorithms. The rendering happens entirely on the GPU and is therefore pretty fast. You can download the application here. For copyright reasons I'm only allowed to link the website, that provides the volume data sets. There is also a webpage available that explains the main features.



Project Members:
  • Michael Schwärzler: Programming
  • Martin Knecht: Programming

Wednesday, January 31, 2007

Ageia PhysX integration into Coin3D

In the labratory course "Virtual and Augmented Reality" we developed a virtual Incredible Machine construction kit. You are able to define some objects and use them to design your own Incredible Machine. Ageia PhysX enabled us to make use of cool physical effects.



The application is based on the studierstube which uses the coin3d (open source implementation of the open inventor api) rendering engine.

Since we did not need every feature of PhysX and time was running out, the implementation is not complete. Although here is a small package with some sourcefiles and a description included.

Project Members:
  • Anita Stritzelberger: Modelling & VR setup
  • Felix Marchtrenker: Modelling & VR setup
  • Michael Schwaerzler: Programming & VR setup
  • Martin Knecht: PhysX integration & VR setup

Saturday, July 8, 2006

Beamtrees

Beamtree is a small project done for the information visualization labratory course. Based on the paper "Beamtrees: Compact Visualization of Large Hierarchies" from Frank van Ham and J. van Wijk. Beamtrees are an enhancement of the well known Treemaps.

Our program is capable of displaying parts of a filesystem as a Beamtree.

The application is build on top of the Jungle Rumble 3D engine which lead to a very short development time.
We used the ray-cylinder intersection algorithm presented at www.geometrictools.com.

Project Members:
  • Michael Schwaerzler: Programming
  • Martin Knecht: Programming

Thursday, June 29, 2006

Game: Jungle Rumble

The game Jungle Rumble is a clone of the Wuermer game. It was developed for the Gametools Project, which goal is to serve the european game industry with a leading edge 3D graphics library. Jungle Rumble should therefore demonstrate some effects in a real game environment.

Although it seems to be quite equal to Wuermer it's a total rewrite. We designed a 3D engine and build Jungle Rumble on top of it. For graphics output we used Direct3D. For physical support we integrated the Ageia PhysX engine.

You can control the nutshell by W, A, S, D and shoot by pressing the left mouse button. Choose your favourite weapon by pressing 1, 2, 3, 4 or 5!

The game shows two effects developed by GTP:
  • An approximate raytrace effect which allows us to render objects with reflection and refraction in realtime
Conventional Environment map

GTP Raytrace Effects

  • Depth imposters: They are used to omit artefacts when a particle intersects with other geometry.
Conventional Decal imposters

GTP Depth imposters

Technical Information:
  • Written in C++
  • Direct3D for graphics output
  • FMOD for some sound
  • PhysX from Ageia is used for everything that belongs to motion
  • Customizeable particlesystem similar to that from Cinema4D
  • Deformable Terrain
  • Materialsystem
  • Resourcemanagementsystem

Project Members:
  • Martin Knecht: Design & Programming
  • Michael Schwaerzler: Design & Programming
  • Jakob Karaszek: Design & Art
  • Markus Giegl: Gametools supervisor

Monday, April 3, 2006

zwischen Welten

In the labratory course "Multimedia I Productions" we had to make a film about the topic [an]other love story. Our contribution had the name "zwischen Welten". Hope you like it!



Project members:
  • Pia Wender: Actress
  • Andreas Bonner: Actor
  • Elvis: The dog
  • Anja Konlechner: Music
  • Martina Berlinger: Script, Director and Cut
  • Lea Zalto: Script, Director and Cut
  • Wolfgang Knecht: Script, Director and Cut
  • Martin Knecht: Script, Director and Cut

Monday, January 31, 2005

Game: Wuermer

The game Wuermer was programmed in about 4 month for the Computergraphics 2 laboratory course at the Technical University of Vienna. It's a small game where you are a worm, riding in a nutshell, trying to shoot your oponent.
It made along with the game The Wacky Professor the first place.



You can control the nutshell by W, A, S, D and shoot by pressing the left mouse button. Choose your favourite weapon by pressing 1, 2 or 3!

Technical Information:
  • Written in C++
  • OpenGL for graphics output
  • GLUT Library
  • FMOD for some sound
  • ColDet for collision detection
  • Customizeable particlesystem similar to that from Cinema4D
  • Deformable Terrain
  • Materialsystem
  • Resourcemanagementsystem
Project Members:
  • Martin Knecht: Programming & Modeldesign
  • Michael Schwaerzler: Programming & Leveldesign
  • Wolfgang Knecht: Modeldesign