Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Using GPU shaders for visualization, part 3
Bailey M. IEEE Computer Graphics and Applications33 (3):5-11,2013.Type:Article
Date Reviewed: Jan 31 2014

Graphics processing unit (GPU) shaders have been proposed for visualization as an extension of the Open Graphics Library (OpenGL). Using non-graphics data-parallel computing (which distributes data across multiple parallel processors) could produce an effective general-purpose GPU (GPGPU) approach, but this requires recasting a data-parallel problem as a pixel-parallel problem.

Bailey introduces compute shaders that manipulate GPU-based data to implement OpenGL pipelining. These shaders use the OpenGL shading language (GLSL) and its programming aspects. Figures 1 and 2 show how compute shaders render data using round-robin program execution to allocate shader storage buffer objects (SSBO) and fill them, respectively. The SSBO implementation differs from the way OpenGL was previously used, facilitating two-way transfer of the data. This adds a new feature to OpenGL, which will expand the use of GPUs for data-parallel visualization techniques such as particle advection and isosurfaces.

The paper compares programming constructs and the implementation of compute shaders with the use of open computing language (OpenCL) to manipulate GPU-based data in a round-robin fashion. The author suggests using OpenCL for large GPU data-parallel computing applications and compute shaders for simpler applications. Figure 3 presents the shader storage buffer objects and the syntax of the GLSL representation. Figure 5 shows the process of invoking the compute shaders before the rendering begins. The paper also introduces several built-in read-only variables available to compute shaders.

As an example of the application of a compute shader to data-parallel visualization, the paper describes the first-order visualization of particle advection including both OpenCL source code and visualization results. When the author tested the code with more than one million particles on an NVIDIA GeForce GTX 480 GPU, he obtained the best performance of 1.3 gigaparticles/second when the problem was partitioned into a 3D array of 64 work groups.

The author presents the theoretical OpenGL and compute shader aspects very well, illustrated with programming constructs wherever applicable, descriptive figures for precise understanding, and some supporting information about particle systems. He describes the advantages of the proposed GLSL shader language, the potential of GPGPUs, and the performance results of compute shaders.

Reviewer:  Lalit Saxena Review #: CR141955 (1405-0384)
Bookmark and Share
 
Graphics Processors (I.3.1 ... )
 
 
Shading (I.4.8 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Graphics Processors": Date
Introduction to volume rendering
Lichtenbelt B., Crane R., Naqvi S., Prentice-Hall, Inc., Upper Saddle River, NJ, 1998. Type: Book (9780138616830)
May 1 1999
Time/space tradeoffs for polygon mesh rendering
Bar-Yehuda R., Gotsman C. ACM Transactions on Graphics (TOG) 15(2): 141-152, 1996. Type: Article
Jul 1 1997
A programmable vertex shader with fixed-point SIMD datapath for low power wireless applications
Sohn J., Woo R., Yoo H.  Graphics hardware (Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Conference on Graphics Hardware, Grenoble, France, Aug 29-30, 2004)107-114, 2004. Type: Proceedings
Jul 8 2005
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy