+ Reply
Page 1 of 2 12 LastLast
  1. #1
    Emperor Apprentice
    Joined
    Jun 2001
    Posts
    9,315

    What is "Shimmering"?

    Thought I'd explain what it is since it may be of interest to some of you. It's a long read but I put a lot of time writing this dammit. Read it!

    "Shimmering" is a term used by some to describe the appearance of speckled, jittery or otherwise shimmery appearance of surfaces in a game.

    Shimmering is actually a form of aliasing. No, aliasing does not only mean the stair-stepping effect of polygon edges.

    Okay so what is aliasing? In the most generic sense, aliasing is a possible byproduct of any sampled data system. Aliasing happens when the source signal is undersampled by the data system. Unless you took some electrical engineering or digital signal processing course before, this description may not help. And if you understood this you wouldn't need me to explain this to you. So I will use hopefully more useful examples to illustrate the concept. I will omit certain nuances to make the explanations easier to write without a whole bunch of caveats - those of you who understand sampling theory like the back of your hand will know it when you read it.

    Let's consider an audio system example to begin with. Say your source signal is a 10kHz sine wave that you want to record with your digital sound recorder. The digital sound recorder is a sampled data system because it attempts to represent the continuous sine wave in the form of discrete data points (sample) every x seconds. Say the digital sound recorder has a sampling rate of 8kHz (visualize the data points as a dot on the sine wave every 1/8000th of a second). It has been proven by smart folks many years go that in order to record the 10kHz sine wave completely and be able to reconstruct it as exactly before, a minimum sample rate of 20kHz is required. Since your digital sound recorder only operates with a sample rate of 8kHz, you would not meet this requirement and this is called undersampling. The converse (if your digital recorder has a sample rate of > 20kHz) is you are oversampling the signal; oversampling in general is good if you can afford it in a system). So why is undersampling bad? Going back to our audio example, sampling a 10kHz sine wave with an 8kHz sampling rate would result in the data points appearing to represent a lower frequency 6kHz sine wave! Clearly this result is wrong.

    Now we can extrapolate the previous example to video systems, specifically in our case the graphics rendering of games. Let's consider the graphics rendering resolution of 1920x1200 and resulting LCD display the sampled data system in this case. In our audio recording example before, the source signal was a simple 10kHz sine wave. What is our source signal in this case? Why, it's the game graphics that need to be displayed on your LCD display! What is the source frequency in this case? Potentially infinity. Now you see the problem. Any diagonal polygon edge, for example, always face aliasing (which is why they are so connected to the term aliasing in games). Polygon edges are described by straight lines which are defined mathematically and is an infinite frequency signal. To represent straight lines on your LCD screen, you use pixels (the analogous of the digital recorder data points in the audio case). The rendering resolution, which is at max the LCD native resolution, samples the infinite frequency polygon edge. Thus your sampled data system is always undersampling the source signal. And the result is an apparently low frequency version of it that appears as a jagged line on your LCD screen (recall in the audio case this would be the 6kHz sine wave).

    We're getting there now. As mentioned before, polygon edge spatial aliasing is not the only form of aliasing in graphics. Any graphical texture, for example, if distant enough from the player POV will start to be of higher frequency than the data sampled system sampling rate of your 1920x1200 resolution and LCD screen. Taking a page out of wikipedia, here's what a undersampling does to a texture (in this case the texture is a photo of a building):


    Now imagine that waving, speckly pattern moving around as you move your character in the game. This is what is known as shimmering.

    Early on in 3D graphics rendering, mip-maps were devised to circumvent texture aliasing. Remember how I said if textures are placed distant enough from your POV it would start to cause visual aliasing? Well the mip-map solution is to generate increasingly low resolution versions of that texture and use those in progressively farther distances. Of course, if one messed around with Level-of-Detail (LOD) settings for textures one could cause textures to appear blurrier or start to show shimmering.

    With the advent of anisotropic filtering, we welcomed much sharper textures than afforded by old techniques like bilinear filtering. This is actually a byproduct of improved accuracy of representing distant textures. But the downside is that if too aggressive of anisotropic filtering is used without any control, the result is again shimmering because you are trying to increase the source frequency beyond the capabilities of the sampled data system of the graphics resolution and LCD screen.

    So is shimmering bad? In the strictest sense yes it is undesirable because it falsely represents the source signal. Part of the rendering goal for graphics card is to render the scene on the hairy edge of aliasing (ie on the verge of shimmering) because that is when you get the greatest perceptual sharpness. But step even a little above that limit and you start to get the artifacts like shimmering. And if you stop too short of that you appear blurrier than you have to be. Depending on the algorithm used to produce the result there may be performance loss/gained (ie lower or higher framerate).
    Last edited by YCH; December 15, 2010 at 05:51.

  2. #2
    Veteran Firefly
    Joined
    Aug 2002
    Location
    Tel Aviv, Israel
    Posts
    2,073

    Re: What is "Shimmering"?

    It is also referred to as Moir isn't it?

  3. #3
    Emperor Apprentice
    Joined
    Jun 2001
    Posts
    9,315

    Re: What is "Shimmering"?

    Quote Originally posted by Bi0hazarD View Post
    It is also referred to as Moir isn't it?
    Its appearance is similar to a Moire pattern hence the association.

  4. #4
    Veteran Firefly
    Joined
    Aug 2002
    Location
    Tel Aviv, Israel
    Posts
    2,073

    Re: What is "Shimmering"?

    Quote Originally posted by YCH View Post
    Its appearance is similar to a Moire pattern hence the association.
    Was a good read, thanks!

  5. #5
    Junior Onion
    Joined
    Dec 2004
    Posts
    2,523

    Re: What is "Shimmering"?

    Indeed. Thanks for the post! I tried asking what Shimmering was in another thread, but they were too busy having an AMD/Nvidia b**ch fight to answer my question. But you sir did in a very educational fashion! [thumbup]

    Now that I understand what it is, how is it a video card's fault when shimmering occurs? It seems like a natural result of high res texturing on unavoidably (and this infinitely) limited display technology. In which case when shimmering does occur, does that mean the only thing people have to complain about is the GPUs ability to render a scene too well?

  6. #6
    Emperor Apprentice
    Joined
    Jun 2001
    Posts
    9,315

    Re: What is "Shimmering"?

    Quote Originally posted by _Cubase_ View Post
    Indeed. Thanks for the post! I tried asking what Shimmering was in another thread, but they were too busy having an AMD/Nvidia b**ch fight to answer my question. But you sir did in a very educational fashion! [thumbup]

    Now that I understand what it is, how is it a video card's fault when shimmering occurs? It seems like a natural result of high res texturing on unavoidably (and this infinitely) limited display technology. In which case when shimmering does occur, does that mean the only thing people have to complain about is the GPUs ability to render a scene too well?
    Fortunately there are ways to prevent aliasing effects like shimmering. In the most general sense, you would have to use a low-pass filter to eliminate any source signal frequency that is higher than your sampled data system's sampling rate, thus preventing undersampling.

    In games' graphics rendering, part of this duty lies in the algorithm used for texture filtering (MSAA handles only polygon edge aliasing). And...the texture filtering algorithm is controlled by the chip architecture and the software driver of the video card.

    Slight shimmering, though false information it is, may seem to some as some kind of extra sharpness which may be a reason they don't mind it. It's not a GPU rendering the scene too well - more like miscalculating the bounds of the the render resolution and not handling the filtering appropriately for the mip map used. However, keep in mind that the converse would result in more blurriness. The downside is that perfectly hitting that optimal sharpness without going too sharp (with resulting shimmering) and too soft is not easy. It's probably like choosing between the lesser of two evils. I don't know enough about graphics chip architecture and filtering algorithms to answer this definitively :(

    EDIT: On a side note, supersampling anti-aliasing (SSAA), the oldest of anti-aliasing options in video cards...is actually the simplest and most robust version of anti-aliasing. It actually reduces all forms of visual aliasing - polygon edges, shaders, textures etc! One day maybe video cards will return to this brute force but awesome method of anti-aliasing. Maybe when we have enough rendering horsepower than we know what to do with.
    Last edited by YCH; December 15, 2010 at 07:02.

  7. #7
    Junior Proxycon Emperor
    • Computer Specs
      • Motherboard or Laptop:
      • GA-Z68X-UD3P-B3
      • Motherboard BIOS:
      • UEFI Beta F
      • Chipset:
      • Intel Z68
      • CPU:
      • Intel i5 2500K
      • CPU Overclock Speed:
      • 4.4Ghz
      • CPU Cooler:
      • CM Hyper 212+
      • Memory:
      • 8GB Corsair XMS
      • Memory Speed:
      • 1866Mhz
      • Video Card(s):
      • Inno3D iChill GTX 970 OC
      • Video Card Speed:
      • 1088/1228/7010
      • Sound Card:
      • Soundblaster Z
      • PSU:
      • PCandP 610 Silencer
      • Hard Drive(s):
      • Samsung 840 Pro 128GB, 1TB WD Steam Drive, 1TB Seagate ST1000DX001 SSHD
      • Optical Drives:
      • DVD RW
      • Operating System:
      • Win 7 Ultimate SP1

    Joined
    Nov 2001
    Location
    UK, England.
    Posts
    12,368

    Re: What is "Shimmering"?

    Excellent explanation YCH. [thumbup]

    Just to add a little something, SSAA actually applies it's own level of AF too, used to reduce the blurring resulting from SSAA, so as an added bonus using SSAA can also help to reduce texture aliasing because of the extra layer of filtering, filtering that should be unadulterated.
    Last edited by Chade; December 15, 2010 at 11:48.

  8. #8
    Firefly
    • Computer Specs
      • Motherboard or Laptop:
      • EVGA SLI3
      • CPU:
      • I7 950
      • CPU Overclock Speed:
      • 4.1 ghz
      • CPU Cooler:
      • Corsair H50
      • Memory:
      • 24GB DDR3
      • Memory Speed:
      • 1600
      • Video Card(s):
      • EVGA GTX 580
      • Sound Card:
      • Asus Essence STX
      • PSU:
      • Corsair HX1000
      • Hard Drive(s):
      • 2x Corsair Force SSD, 2x 1TB Seagate Constellation
      • Operating System:
      • Windows 7 Enterprise X64

    Joined
    Jun 2004
    Location
    Prague
    Posts
    837

    Re: What is "Shimmering"?

    gj YCH!

  9. #9
    Onion Emperor
    • Computer Specs
      • Motherboard or Laptop:
      • Asus Rampage IV Black
      • Motherboard BIOS:
      • 0701 - 6/04/2014
      • Chipset:
      • x79
      • CPU:
      • Intel Core i7-3930K
      • CPU Overclock Speed:
      • 4.0GHz+
      • CPU Cooler:
      • Corsair H60
      • Memory:
      • 32GB Corsair DDR3 XMP
      • Video Card(s):
      • GeForce GTX 770 4GB
      • Sound Card:
      • SoundBlaster Z
      • PSU:
      • Corsair 1000W Modular
      • Hard Drive(s):
      • Samsung 840 Pro 512GB
      • Optical Drives:
      • LG Blu-Ray BD-ROM
      • Operating System:
      • Windows 8.1 Professional x64

    Joined
    Jan 2001
    Location
    Winnipeg, MB
    Posts
    23,027

    Re: What is "Shimmering"?

    A nice read, thanks!

  10. #10
    Omnipotent
    • Computer Specs
      • Motherboard or Laptop:
      • Asrock Z77 Extreme4-M
      • Chipset:
      • Intel Z77
      • CPU:
      • Intel Core i5 3570K
      • CPU Overclock Speed:
      • 4GHz
      • Memory:
      • 8GB
      • Memory Speed:
      • 1600MHz DDR3
      • Video Card(s):
      • AMD (Gigabyte) Radeon HD 7970
      • Video Card Speed:
      • 1.5GHz mem / 1GHz core
      • Hard Drive(s):
      • Samsung 830 256GB
      • Operating System:
      • Windows 8.1 Pro x64 with Media Center

    Joined
    Dec 2001
    Location
    Turku, Finland, Finland
    Posts
    33,459

    Re: What is "Shimmering"?

    Great write YCH, vote for sticky! [thumbup]

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts