• #### Texture aliasing

Aliasing can occur any time you resample a texture , for instance to scale it, rotate it, or map it onto a 3D model. Thanks to our friend the Nyquist threshold , the resulting problems get worse the lower a frequency you sample at, ie. the smaller you...
• #### Multisampling

Multisampling is a compromise for people who really want to use supersampling , but can't afford it. The idea is simple: instead of increasing the resolution for all rendering, what if we do triangle rasterization and depth/stencil tests at the higher...
• #### Supersampling

Supersampling is the simple, brute force approach to antialiasing computer graphics. In order to avoid aliasing , the Nyquist theorem says we must take at least twice as many samples as the highest frequency detail in our input signal. So how about we...
• #### How to resample a signal without aliasing

My previous post described how resampling a signal can cause aliasing problems. The worst problems occur when dramatically reducing the number of samples used to represent a signal, or when the source includes lots of high frequency detail. Specifically...
• #### Why sampling a signal causes aliasing

The math behind digital sampling and filtering is fascinating, complex, and full of arcane terms like Nyquist frequency . But I'm barely a good enough mathematician to understand it, let alone try to explain it here! This post is my attempt to describe...
• #### Antialiasing

I've been meaning to write about antialiasing for a while, but now I sit down to do that I realize I have too much to say for a single article. So this post is the introduction to a series. Antialiasing is one of the most important yet least widely understood...
• #### "Code" is a four letter word

"Source code" "Bedroom coder" "Can someone explain why this code isn't working?" "He's such a natural, he thinks directly in code" These are dirty, dirty phrases... code (kohd) noun A system used for brevity or...
• #### Visitor and multiple dispatch via C# 'dynamic'

There is a somewhat convincing argument that software design patterns are really just an attempt to emulate missing language features . Eric Lippert recently wrote a series of articles exploring how one might attempt to implement the "virtual method...
• #### Keyboard macros

I'm sure you've all watched someone who doesn't know keyboard shortcuts struggling to edit a document. It can be frustrating how long even simple things take, and hard not to start shouting advice: ctrl+shift+right, ctrl+x, end, ctrl+v! But I occasionally...