Explore chapters and articles related to this topic
From Graphics to Visualization
Published in Alexandru Telea, Data Visualization, 2014
This chapter introduces data visualization in an informal manner and from the perspective of computer graphics. We start with a simple problem that every reader should be familiar with: plotting the graph of a function of two variables f (x, y) = z. We illustrate the classical solution of this problem, the height plot, in full detail. For this, we shall use code fragments written in the C++ programming language. For the graphics functionality, we use the popular OpenGL graphics library.
User experience in VR systems
Published in Jennifer Whyte, Dragana Nikolić, Virtual Reality and the Built Environment, 2018
Jennifer Whyte, Dragana Nikolić
Many of the peripheral applications associated with virtual reality were first commercialized in the 1990s, when its capabilities increased both for high-end VR facilities and personal computing applications. At the same time, VR software protocols were also being developed. For example, SGI developed the non-proprietary Open Graphics Library, or Open GL, which provided an application programming interface (API) for rendering 2D and 3D graphics.
Getting Started with FLAME
Published in Mariam Kiran, X-Machines for Agent-Based Modeling, 2017
FLAME uses C, XML and interacts with generated files. The models can be enhanced by using the same principle and working with additional libraries. For example,More C standard libraries and custom libraries: C Math functions, C memory accessible variables (include the basic int, char, float) or all C functions. Custom libraries are user-defined libraries.MPICH-2 libraries: Implementation of MPI, MPICH2 provides MPI implementations for important platforms and massively parallel processors. It is open-source and freely available for use in parallel programming environments. OpenMP can be used with MPI to allow hybrid parallelization for loop-level parallelism. More information on integrating MPICH with Windows and Linux platforms can be found at [78].OpenGL libraries: Open Graphics Library provides access to functions for high quality graphical image in 2D or 3D. OpenGL is concerned with manipulation of frame buffer for drawing and rendering of images. It can be integrated with C language for its functionality.Libxml2: With XML input and storage format, Libxml2 is an XML C parser toolkit that can be used across various platforms. It provides a variety of language bindings and wrappers making it useful with various languages. It provides support for Document Object Model as well.Interfacing with SBML: Libsbml allows manipulation of various SBML (systems biology markup language) files and data streams. Written in C and C++, it is used as a library for various programming languages (like C/C++, Java, Lisp, Perl, Matlab) and makes the code portable to different platforms of Windows or Linux.HDF5: Hierarchical Data Format 5 is a library used to store various data. It can allow data to be stored as dataset or in groups. A dataset is a multidimensional array of data elements whereas a group is a structure for organizing objects. Using these two storage mechanisms, one can generate any kind of required data structure like images, arrays of vectors or grid structures.GraphViz graph library: FLAME is already using GraphViz for generation of dotty diagrams or graphs showing function dependencies in parallel activity. It can be used for more outputs on networking structures, depicting hierarchy, clusters and more.Sqlite3: A small C library supports the SQL database engine to store data into a single disk file. These files can be shared as a database between various machines.
A review on the applications of virtual reality, augmented reality and mixed reality in surgical simulation: an extension to different kinds of surgery
Published in Expert Review of Medical Devices, 2021
Abel J Lungu, Wout Swinkels, Luc Claesen, Puxun Tu, Jan Egger, Xiaojun Chen
A surgical simulator [3] renders an immersive 3D environment to mimic the real surgical scene. To realize the rendering of the surgical environment, developers use 3D graphical application programming interfaces (APIs). The most common are Direct3D (Microsoft Corporation, US), a Windows dedicated graphics API, OpenGL (Open Graphics Library, the Khronos Group Inc., US), a cross-language, cross-platform graphics API and the more recently introduced Vulkan (The Khronos Group Inc., US), a cross-platform graphics API. Nowadays, there are game engines such as Unreal Engine (Epic Games, US) and Unity (Unity Technologies, US) that support VR application development and operate on top of these graphics APIs. These engines make the creation and deployment of 3D scenes easier and have gained more attention in the build process of surgical simulators, especially Unity [3–6]. When creating a scene based on a 3D graphics API, the developers need to start from scratch, which gives a lot of flexibility and control. Since only the features necessary for the application will be implemented, it is often more lightweight. However, due to its low-level nature, there is a steep learning curve and it is also time-consuming as the developer needs to start from scratch. On the other hand, game engines already include all the features necessary to create 3D scenes. They often have a graphical user interface (GUI) and are easier to learn since the developer does not have to engage in the low-level work involved with the 3D graphical APIs. Consequently, this comes at the cost of being less flexible, having less control and using an integrated development environment (IDE) with many unused features. The technical specifications for making 3D scenes rely on the nature of the scenario (e.g., number of objects, object details, etc.). Hence dedicated workstations with powerful graphics processing units (GPUs) to accelerate virtual scene computations to comply with the update frequency of 30 Hz-120 Hz are used. After rendering, the scene will be shown to the user. The interface to view the created scene can be a monitor [7], but the use of a head-mounted display (HMD) to completely immerse the user in the virtual world is also possible [5]. Commercially available display systems for virtual surgical simulation include the HTC Vive (HTC Corporation, Taiwan and Valve Corporation, US) [5,8], the Display 300 (Sense Graphics, Sweden) [9] and the Oculus Rift (Oculus VR, US) [10]. The advantage of using an HMD over a monitor for displaying the surgical scene lies in the degree of immersion that can be realized. When an HMD is worn, the user will be completely immersed in the created virtual environment. However, based on the intended application, this is not always desirable. When a surgical simulator for minimally invasive surgery is developed, for example, then it can be more useful for the surgical resident to look at a monitor since this resembles the actual conditions in the operation theater where the surgeon looks at a monitor while steering the surgical equipment through the patient’s body.