Normal Mapping Without Precomputed Tangents

I came across a very interesting post on performing normal mapping without a precalculated tangent frame. The technique is an extension/optimisation to the one presented by the same author in ShaderX5, and it elegantly and efficiently calculates the tangent frame in the pixel shader removing the need for storing tangent and bitangent vectors in each vertex. Continue reading “Normal Mapping Without Precomputed Tangents”

Normal Mapping Without Precomputed Tangents

Order and types of depth testing

Some time ago I did a bit of research to gather some info about the state of depth testing in D3D11 and what new features are supported. I am summarising my findings here as well in case someone finds them useful.

Depth testing by default happens after pixel shading. The aim of the depth testing was originally just to do correct z-sorting while blending the shaded pixel colour with the backbuffer.  The Direct3D and OpenGL specifications dictate this even to this day. With the fixed function pipeline the cost of shading a pixel was small and no one cared to avoid it, even if that meant discarding it later. Continue reading “Order and types of depth testing”

Order and types of depth testing

Tools of the trade

A large part of a graphics programmer’s work revolves around the tools that allow her to create, edit and customise shaders, which in turn define the look of a 3D environment.

Over the years I’ve used many different tools ranging from a simple text editor and a command line compiler to a fully fledged shader graph editor with drag and drop functionality. Which tools will actually be used for a graphics project depends a lot on personal preference, development platform and/or ease (and cost) of development. Continue reading “Tools of the trade”

Tools of the trade

Let there be light!

The world, as we experience it visually, is the result of the interplay between light and matter. This interplay we try to model and replicate, with varying degrees of success, with computer graphics.

I am a graphics programmer working in the games industry. I love learning and trying new graphics techniques and experimenting with new algorithms. This blog will be my scratchpad where i’ll document my little experiments.

Let there be light!