Author Archives: alex

Depth Buffer Sunglassses

Reading the Depth Buffer in Apple’s Metal API

I have been working on a feature that requires reading the depth buffer and storing the data in an image. While this was quickly done in the OpenGL-based renderer, I struggled getting it to work with the Metal-based renderer. Things … Read MoreRead More

Aliasing in stripe shader

Anti-Aliasing Shaders

Somewhat surprisingly, even in an age of retina displays aliasing is still an issue. Writing the stripe light shader was easy enough but creating an anti-aliased version took some research. It’s actually quite easy once you get your head around … Read MoreRead More

Boost logo

Building boost locale on iOS

There are three main aspects in the Core SDK where boost is used: XML parsing, file system and unicode handling. Getting boost to compile correctly for iOS is already something that requires some custom sh scripts but getting “locale” (the … Read MoreRead More

PLMXML Engine example

PLMXML Support

Question: What is procrastination for software developers that do geometry processing? Answer: Writing importers apparently … I had some spare time and didn’t want to tackle the next big feature so I implemented yet another format: PLMXML. … Read More

Shapeflow 3D diagonstic override rendering modes

Diagonstic Rendering: Stripe Lights and U/Vs

The Shapeflow 3D iOS app is nearing feature completion. One big milestone was reworking the user interface concept. It is now easier to add additional features and the handling on the smaller screen devices (e.g. iPhone) has been improved. The … Read MoreRead More

Lego Architecture Model mixed render modes

Rendering Lego bricks with LDraw Import

This one is definitely in the category “just for the fun of it”: I had recently purchased my first Lego model in two decades and was pleasantly surprised to find that it is as fun and relaxing to play with … Read MoreRead More

Rim model light by surrounding

Realtime Image Based Lighting using Spherical Harmonics

When I generated the images for the last blog post, I had the strong feeling that the rendering quality didn’t do the whole thing justice. The IGES importer, repair functionality and tessellation work so nice now, it’s a shame to … Read MoreRead More

Tessellated IGES rim model

Tessellation of IGES Files

For the last couple of days, I’ve finally picked up working on the tessellator code again. After dealing with other parts of the software, the rest of the app now works so nice that the tessellator became the limiting factor. … Read MoreRead More

ISS Lightwave model visualization

Importing Lightwave Object & Scene Format (LWO/LWS)

Writing importer is sort of like knitting: you have all the pieces already their, you just got to the work. It’s not the most exciting or challenging work, rather zen-like to tell the truth, but in the end you get … Read MoreRead More

Metal projection matrices

From OpenGL to Metal – The Projection Matrix Problem

Apple’s Metal API has been designed to make porting your OpenGL/OpenGLES applications easy. In most cases, there is a 1:1 equivalent for each OpenGL call and the only major change is how instead of a state engine one uses RenderState … Read MoreRead More