Skip to main content
GameDev.net gamedev.net
🔒 Locked

Example of Specular Aliasing

Started by wil_ Jan 15, 2015 at 2:50 AM 2 replies 15.2k views
Original Post
wil_
wil_

Several articles talk about the difficulty to avoid Specular Aliasing when rendering games:

However, I have trouble understanding in the first place what is the visual appearance of specular aliasing.

Does anyone has a concrete example, for example a screenshot of a scene presenting specular aliasing, side-to-side to a screenshot of the same scene where the specular aliasing has somehow been reduced ?

MJP
MJP

In general, it will manifest as "flickering" specular highlights. Basically you'll have small bright pixels that have specular one frame, and then don't the next frame. If you look at page 20 of our course notes from SIGGRAPH, there's some images showing an image with specular aliasing compared to ground truth as well as two specular antialiasing techniques. You'll notice that compared to the ground truth, there's a lot of areas where the specular is basically "missing". These are areas are where the specular is being undersampled, and is where the image will be most prone to flickering highlights.

If you actually want to see it in action, you can download the corresponding code sample which will let you see the artifacts in motion.

L. Spiro
L. Spiro

our course notes from SIGGRAPH

Not directly related to the topic, but after taking a look, there is an error in how you are transferring energy to the diffuse component based on Fresnel.
You are using the same parameters for both F() functions (equation 15), citing [Shirley 1991]. He is showing this in section 4.3 of his dissertation. His formulation is correct as an expression generally explaining how Snell’s Law works—which he explains in section 2.2.1—which basically states that when light hits a surface, part of it will be reflected and the rest will be transmitted into the surface. Fresnel’s equations can determine the proper ratio for the standard materials we commonly use (I am explaining this for completeness and for other readers’ benefits).

However, how much is transmitted into the surface does not depend on the view angle. He shouldn’t be referring to it as a formulation of a BRDF, at least as we know them in the field of graphics programming, as he is only generalizing for the case where the viewer is the light source (or not including a viewer at all).


The formulation used by [Gotanda 2010] shows this correctly in section 2, equation 5.

For a BRDF useful to computer graphics, your specular value should be using F(V·H) and for diffuse it should be 1-F(N·L).

L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid
wil_
wil_

If you look at page 20 of our course notes from SIGGRAPH, there's some images showing an image with specular aliasing compared to ground truth as well as two specular antialiasing techniques.

Thank you very much for the links. I copy/paste the image here in case other readers want to see the difference:

specular_aliasing.png

specular_aliasing_comment.png

Link to the .pdf one more time: http://blog.selfshadow.com/publications/s2013-shading-course/rad/s2013_pbs_rad_notes.pdf#page=20

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.