PDA

View Full Version : Most Efficient way to overlay an indicator over a static background



JADSYS
01-12-2005, 11:27 AM
I am new to OpenGL and need some guidance in respect to speed. I need to build an instrumentation screen with real time indicators.
In the past I did this by creating a background on one plane(s) of a video card then using xor or another plane, I would draw the indicators. This was very efficent for the processor as only positional updates of the indicators needed to be accessed. With OpenGL I can't see an efficient way to do this. With double buffers and primitives I can display a bitmap background and the idicator needles. Right now the speed looks good but it appears from reading the code that the scene (including background via a textmap) must be fully rendered for each frame. Using OpenGL is there a way to do this more efficently? I have other real-time signals in my system that could use the time!

mikael_aronsson
01-12-2005, 09:40 PM
Hi !

There is no way to update just a part of the window, everyting must always be rendered for each frame, but there are a number of ways to speed it up.

For example when you have the background as a texture and can keep that texture in the GPU's memory it will render pretty quick, there are also display lists, vertex buffers and so on to improve on speed.

Also make sure that you disable all unused fatures, turn of lighting if you don't need it and so on.

Mikael

zeckensack
01-13-2005, 08:03 AM
Actually there is a way. WGL_ARB_buffer_region (http://oss.sgi.com/projects/ogl-sample/registry/ARB/wgl_buffer_region.txt) .


The buffer region extension is a mechanism that allows an area of
an OpenGL window to be saved in off-screen memory for quick
restores.Note that this is a WGL extension, so you must check your WGL extension string (http://oss.sgi.com/projects/ogl-sample/registry/ARB/wgl_extensions_string.txt) to detect support.

Intel and NVIDIA support it. ATI doesn\'t (http://www.delphi3d.net/hardware/extsupport.php?extension=WGL_ARB_buffer_region) . No idea why :confused:
ATI supports the (age old) KTX version, but the documentation is no longer available.