• Shawn Hargreaves Blog

    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...
  • Shawn Hargreaves Blog


    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...
  • Shawn Hargreaves Blog


    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...
  • Shawn Hargreaves Blog

    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...
  • Shawn Hargreaves Blog

    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...
  • Shawn Hargreaves Blog


    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...
  • Shawn Hargreaves Blog

    "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...
  • Shawn Hargreaves Blog

    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...
  • Shawn Hargreaves Blog

    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...
  • Shawn Hargreaves Blog

    What's with all the hating on Comic Sans?

    Google's April Fool joke got me reading about why graphic designers hate Comic Sans so much. I can't help being reminded of one of my old college lecturers, a music theory analyst who once told a class I was in that " this composition was very successful...
Page 1 of 1 (10 items)