[VTK ARB] Framework for sharing OpenGL resources between several vtkOpenGLRenderWindows

Francois Bertel francois.bertel at kitware.com
Fri May 28 10:05:00 EDT 2010


Hello,

Right now it is not possible to share OpenGL share resources
(textures, shader program, buffer objects (VBO,PBO), display lists)
between OpenGL contexts.

http://www.vtk.org/Bug/view.php?id=9983

Here are examples where sharing resources between contexts make sense.

1. Sharing when the resource is huge.

You have an application with multiple views of the same scene.

1a Each view display the same uniform grid dataset with volume
rendering. The dataset is loaded as a big 3D texture from a different
point of view.
1b. One view display auniform grid dataset with volume rendering.
Another view displays a slice of the same dataset.

1c. Each view display the same big polydata mesh using a set of vertex
buffer objects (VBO).

2. Sharing when streaming.

1a. dataset loading
Thread 2 takes care of loading a dataset using PBO into a big 3D texture.
Thread 1 displays the scene with an outline box until thread 1 is done
with loading the 3D texture.

2b. Video streaming
Thread 1 displays the current video frame as a 2D texture on context1.
Thread 2 loads/uncompress the next frame, send it to a PBO, then send
it to a 2D texture on context2.

3. Sharing when building
Thread 1 displays all the VBOs available at the current time on context1.
Thread 2 build the mesh  (from a VTK pipeline made of several filters)
and create VBOS incrementally on context2.
Interaction is possible during the incremental update.

-- 
François Bertel, PhD  | Kitware Inc. Suite 204
1 (518) 371 3971 x113 | 28 Corporate Drive
                      | Clifton Park NY 12065, USA


More information about the Arb mailing list