Skip to content

GLSL Noise Woes

by Adam on September 26th, 2005

After battling with my code for a week or so it has come to my attention that the noise functions of GLSL are not implemented correctly or at all on any current hardware (except, I assume, 3D Labs stuff).

I have an ATI Mobility 9600 and after fixing a few bugs all of a sudden my research was not running at interactive frame rates any longer. The frame time was several seconds for a page of 100 different shaders where before it was several milliseconds. So I ran out and bought an X850 Pro on sale at Future Shop and threw together a computer with it inside. I re-ran my experiment with the EXACT same results. I had a suspicion already that noise was the root problem so I disabled it and everything ran lightning fast.

After a bit of research (thanks to the GameDev.net forums and google) I learned that ATIs implementation is terrible and the NVidia’s always returns Zero. Both are very bad options as they both say on the box they support OpenGL 2.0. Neither company documents the issue officially. Mark Kilgard of NVidia does maintain a document on NVidia’s OpenGL support which mentions the problem. ATI did not respond to inquiry on the subject.

The solution that I was pointed to by the fine people on the GameDev.net forums was to use SimpleX Noise. This version of noise was created by Ken Perlin (of Perlin Noise fame) to combat known issues with his original algorithm. It has lower computational complexity, less artifacts and is easy to implement in hardware. For more information see this article which has source code.

I’ll try to get some feedback up on SimpleX noise once I progress further.

From → Uncategorized

No comments yet

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS