Explore chapters and articles related to this topic
Graphics Programming
Published in Aditi Majumder, M. Gopi, Introduction to Visual Computing, 2018
OpenGL is one of the oldest cross‐language cross‐platform interfaces for 3D graphics rendering providing a way to interact with GPUs. GLUT is the OpenGL Utility toolkit for writing OpenGL programs independent of the window system used for rendering the scene. It implements a simple windowing API for OpenGL making it much easier to learn OpenGL. GLUT also provides a portable API across multiple OS and PCs. OpenGL is defined as a set of functions which can be called by the client program. The functions are similar superficially to C, but are language independent. OpenGL’s popularity is primarily due to its quality of official documentation which are known by the colors of their covers (the red, orange, green and blue books are the first to fourth edition of the OpenGL Programming Guide). Often accompanying libraries like GLU, GLEE or GLEW bind with OpenGL to support useful features that may not be supported in contemporary hardware like mipmapping or tessellation. OpenGL Shading language (GLSL) is a high level shading language based on the syntax of C, first designed to allow OpenGL to access the programmable GPUs with using assembly level or hardware specific languages. OpenGL ES is an extension of OpenGL API for programming for embedded devices. WebGL is a Javascript API for rendering 3D graphics. Direct3D is a similar API offered by Microsoft which promises better performance on Windows OS while Metal is an API that debuted for Apple’s iOS8.
Hiding Media Data via Shaders: Enabling Private Sharing in the Clouds
Published in Kaikai Liu, Xiaolin Li, Mobile SmartLife via Sensing, Localization, and Cloud Ecosystems, 2017
Fig. 11.3 shows our designed secure media sharing process to open social media channels. We leverage the image key in addition to the normal key for better security. To meet the design objective of easy-to-use and low-complexity computation, we integrate our proposed privacy-preserving techniques into one customized image filter. The image filter works in the raw image domain and does not require image format compliance. A highly integrated block could simplify the integration process to existing code. To improve the efficiency for the pixel-wise computation in our approach, we design and implement this customized image filter in the GPU via the OpenGL Shader. Shader is a program designed to run on some stage of a graphics processor, and written in the OpenGL Shading Language. We utilize the Fragment Shaders in the OpenGL rendering pipeline (after Rasterizer) for the pixel manipulation required in our proposed algorithm. The size covered by a fragment is related to the pixel area. Thus, the computationally intensive pixel-by-pixel operation could be converted to fragment processing with highly paralleled implementation in GPU. The reason that we utilize normalization and block-based processing in algorithm design is to fit the GPU Shader processing framework for high computation efficiency.
SSVEP-based brain–computer interface for music using a low-density EEG system
Published in Assistive Technology, 2022
Satvik Venkatesh, Eduardo Reck Miranda, Edward Braund
In order to utilize hardware-accelerated rendering and vertical synchronization (VSync), the visual stimulus is implemented with the help of Open Graphics Library (OpenGL). Vertex shader and fragment shader programs were written in OpenGL shading language (GLSL). The vertex shader specifies the coordinates of the flashing squares and the fragment shader varies the luminance of the region. The luminance is varied by Equation (1) with the help of sinusoidal stimulation (Manyakov et al., 2013).