A look at the Bayer Pattern
Have you ever wondered, how a ‘raw’ image file from a camera looks like? I have, so I tried to visualise one. Contrary to popular believe, you actually can do that quite easily… Most digital cameras can not only store the images as JPEGs, but also ‘raw’, in a format that normally has to be [...]
MacOS X OpenGL driver status (10.8.3)
Apples latest software patch for MacOS X 10.8 (Mountain Lion, 10.8.3) fixed some issues related to OpenGL. To recap, my currently known bugs and issues are these: Wrong values from uniform structs (bug id #10518401) - Fixed Wrong names for uniforms in uniform blocks (bug id #11335828) - Still exists (this bug was reported in april 2012) [...]
FPS vs msec/frame
When talking about the performance of graphics applications or algorithms you hear frames per second (FPS for short) as the unit of measurement. This however is wrong most of the time and here’s why: Why we use FPS There are two ways to measure how fast an application can render the virtual world: by giving [...]
Adding analog inputs to your graphics app
When prototyping graphics applications it doesn’t take long until you want to control some parameters during runtime. Using the keyboard is often the first candidate as getting keystrokes is very easy for most toolkits used in graphics like GLFW or GLUT. But it doesn’t take long until the number of keys it so large that [...]
OpenGL conditional rendering bug on MacOS X
At least on Intel HD4000 GPUs there seems to be a bug regarding conditional rendering in OpenGL on 10.8 Mountain Lion: After the conditional rendering the condition state (ignore draw calls or execute them) is ‘stuck’ until the next draw call gets issued – this can ignore glClear calls which shouldn’t get ignored. Here’s an [...]
GLSL Syntax Highlighting for TextWrangler & BBEdit
I hacked together a very simple codeless language module for TextWrangler (also compatible with BBEdit) for GLSL shaders. It is much simpler than the Kate/QTCreator highlighting and only highlights GLSL version 430 (core profile) but it’s better than nothing (In case you are writing shaders for OpenGL ES 3.0, or OpenGL 3.0 – 4.2 it [...]
GLSL Syntax Highlighting for QTCreator (and Kate)
The syntax highlighter in QTCreator for GLSL shaders is currently far from ideal: It’s basically stuck at OpenGL 2.1. If you write shaders for OpenGL 3 (and later) or OpenGL ES 3, you will see a lot of red marks indicating errors in your code simply because QTCreator doesn’t know the latest keywords. On the [...]
Noperspective varying interpolation bug on MacOS X
There seems to be a bug with noperspective varyings in OpenGL 3.2 contexts on MacOS X on Intel HD4000 hardware: The varying does not get interpolated and all fragments of the triangle get the same value (similar to flat interpolation). Note that in the left screen shot the image looks similar to perspective correct interpolated texture [...]
Augmented Reality on a Segway
In september I was in San Francisco for a couple of days to attend the MobileHCI conference and the MobiVis workshop, but not just for fun and looking at cool new stuff, I also presented a work about mobile augmented reality. My colleagues Michael Königs, Prof. Dr. Leif Kobbelt and myself tried out if you [...]
Understanding the parallelism of GPUs
A lot of tasks in (3D) graphics are independent from each other, so the idea to parallelize those tasks is not new. But while parallel processors are nowadays very common in every desktop PC and even on newer smartphones, the way GPUs parallelize there work is quite different. Understanding the ways a GPU works can [...]