I'm glad to say that I have solved the last problem with dark scenes when using per pixel lighting. The problem was that I didn't account for the gl_FrontLightModelProduct.sceneColor component when computing the final fragment color. Now I'm trying to implement frustum culling... it's still in the early stages of development. I have sorted my objects into larger cube-sized sectors that are to be culled. I don't think I need an oct- or quad-tree, instead I create a three dimensional grid object on the fly as I place the world objects. I'll be posting the development in the upcoming week. Thanks for the interest.