The Megastrata project started out like any other first-time project: cobbled together from examples found on the internet. One of the long-standing traditions regarding development involve the so-called “hack-n-slash” technique: smash the code around until it works.
Megastrata started life out as the NoiseViewer, which was, true to its name, simply a 2D noise patter viewer. Hence, there was originally no need for a depth buffer.
When the leap was made to 3D, I made it work on Windows. But the OS X version didn’t render the same way. Wolfgang put a lot of effort into debugging it, and after sending screenshots back and forth, we understood that the problem was with the depth buffer.
I saw something suspicious when I looked up the OpenGL FAQ on the subject. Step one reads:
1. Ask for a depth buffer when you create your window.
Evidently, Windows automatically specifies a depth buffer created when initializing the window, whereas OS X does not do this by default.
We changed the line in the code that read:
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
to:
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
and the problem was solved.
]]>This is terribly preliminary!
From what I understand of the licenses, I am allowed to use these libraries. Please understand that the code and programs linked to below are provided “as-is”. Also note that running any program found on the internet carries risk, and the responsible user always scans for viruses, etc.
Click and drag to pan around the noise. CTRL+click-and-drag up and down adjusts the zoom level. Shift+click-and-drag adjusts the noise cutoff point.
Compiled executable (Windows, ~266KB): NoiseViewer_v1.zip
Source code, libraries and projects (Visual Studio 2008, ~1,456KB): NoiseViewer_v1_src.zip
Feedback would be greatly appreciated!!
]]>