What is OpenGL an Overview
OpenGL is an open standard, cross platform, advanced graphic library. It uses the graphic cards processor (GPU) and memory, to speed up applications. With OpenCPN a user with a typical modern graphic card will have an enhanced experience. Much faster and smoother zooming and panning as well as clearer and sharper chart rendering.
In OpenCPN OpenGL is a choice, the old graphic engine is still there. OpenGL will not work for everyone. Performance may not be improved with embedded graphics chips, often found in older laptops and netbooks.
Microsoft has gone from support to hostility towards OpenGL. There is currently a lot of trouble with OpenGL on Vista and W7 for all OpenGL applications, not just OpenCPN.
Mac OS X has full supports for OpenGL.
For Linux the situation is slightly different. Linux supports OpenGL, as it generally tends to support open standards. The user is however dependent on a driver from the graphic cards maker, and their support for OpenGL. This may change with projects like nouveau, a free driver for nVidias cards.
Without OpenGL With OpenGL
Heavy over zooming reveals some of the secrets behind OpenGL
Why introduce OpenGL in OpenCPN?
The main reasons are:
- Better performance, leveraging modern PC graphics cards that are ubiquitous and powerful.
- Better "eye candy", such as smooth zoom and pan, with little impact on responsiveness.
- Future cross-platform support (e.g Android/IOS)
- Some features depends on OpenGL, such as horizontal text and numbers on skewed (course up) vectorcharts.
OpenCPNs performance with OpenGL is highly dependent upon your graphics hardware and drivers.
- On some systems using Intel HD Graphics adapters, especially running 64bit editions of Windows 7, OpenCPN gets killed due to errors in the display adapter drivers. You may try to get updated drivers or as a workaround (OpenCPN 3.2.2 only), on Windows run OpenCPN - no OpenGL from Start menu. On Linux, you can use the -no_opengl command line switch.
- Some graphics chip sets (e.g.intel 945G) have rather poor OpenGL driver support, so that we cannot fully utilize the hardware acceleration potential of these systems.
- nVidia graphics, even very old cards, seem to perform very well.
- Performance may not be improved with embedded graphics chips as often found in older laptops and netbooks.
- There is a lot of trouble with OpenGL on Vista and W7. Microsoft implemented a new screen compositing model for Vista and later, which "broke" many OpenGL apps
- Conclusion:Using OpenGL with OpenCPN will be a significant upgrade for some users of OpenCPN, but OpenGL may not be "better" for everyone's OCPN application.
- So, user's choice. If OpenGL works better for you, then use it. If not, the old DC based graphics render system is still in place, with performance equivalent to Version 2.5.0.
- Find the latest driver for your graphic card. The driver that came with your operating system, is not likely to be the best. Start looking at your graphic card makers home page.
- Go to the ToolBox->Settings and tick the two boxes "Use OpenGL" and "Enable Smooth Panning/Zooming".
If you have a lot of graphic memory, or very little, try to add the following to your config (ini on windows) file:
where nnn is graphics card memory size, in MBytes.
256 MBytes is the default.
Go to Table Of Contents