Drawing optimizations - jeske/opentk GitHub Wiki
This page is just giving a starting point for optimizations, the links below provide more in-depth information.
- Make sure there are no OpenGL errors. Any error usually kills the framerate.
- Enable backface culling with GL.Enable(EnableCap.CullFace) rather than relying only on the Z-Buffer.
- If you're drawing a scene that covers the whole screen each frame, only clear depth buffer but not the color buffer.
- Organize drawing in a way that requires as few state changes as possible. Don't enable states that are not needed.
- Use GL.Hint(...) wherever applicable.
- Avoid Immediate Mode or Vertex Arrays in favor of Display Lists or Vertex Buffer Objects.
- Use GL.DrawRangeElements instead of GL.DrawElements for a slight performance gain.
- Take advantage of S3TC Texture compression and Vertex Cache optimizing algorithms.
http://www.mesa3d.org/brianp/sig97/perfopt.htm http://ati.amd.com/developer/SDK/AMD_SDK_Samples_May2007/Documentations/ATI_OpenGL_Programming_and_Optimization_Guide.pdf http://developer.nvidia.com/object/gpu_programming_guide.html http://www.opengl.org/pipeline/article/vol003_8/ http://developer.apple.com/graphicsimaging/opengl/
Last edit of Links: March 2008