4 Computer Graphics
2.2 Web 3D rendering
The fact that the Web and 3D graphics are currently ubiquitous in desktop and handheld
devices makes their integration urgent and important. Several standards and proprietary
solutions for embedding 3D in the Web have been devised, such as VRML, X3D or
vendor-specific Web browser plug-ins, and implementations on general purpose plug-ins, etc.
A review of these techniques can be found in Behr et al. (2009).
In the case of Medical Imaging and other computing-intensive visualization scenarios, a
partial solution has been the use of on-server rendering (Blazona & Mihajlovic (2007)). In
this approach, the rendering process is performed in the server and its resulting image is sent
to the client. This solution increases the load on the server when many clients are present.
In addition, the high latency times make the system unresponsive and unsuitable for smooth
interactive visualization.
Unresolved issues among solutions for Web 3D graphics are: dedicated languages, plug-in
requirements for interpretation, portability across browsers, devices and operating systems,
and advanced rendering support. While writing this chapter, the Khronos Group released
the WebGL 1.0 specification, which has been under development and testing. In practice,
the WebGL 1.0 is a Javascript binding of the OpenGL ES 2.0 API. Calls to the API are
relatively simple and serve to set up vertex and index buffers, to change rendering engine
state such as active texture units, or transform matrices, and to invoke drawing primitives.
Most of the computation is performed in vertex and fragment shaders written in the GLSL
language, which run natively on the GPU hardware. Unlike previous Web 3D standards
which define declarative scene description languages, WebGL is a low-level imperative
graphic programming API. It’s imperative model enables great flexibility and exploits the
advanced features of modern graphics hardware.
The WebGL 1.0 standard takes advantage of already existing OpenGL-based graphics
applications, such as accurate iso-surface computation (Congote et al. (2010)) or optimized
shader programming (Marques et al. (2009)). The usage of an interpreted language to manage
the behavior of scene elements and animations might be considered as a drawback, due
to their low speed. However, the performance of JavaScript interpreters are constantly
improving. Current optimized just-in-time compilation in the latest engines provides
performance not far from that of natively compiled languages.
2.3 Medical visualization
Across different scientific fields, Medical Visualization is one of the most challenging since
the user interpretation directly translates into clinical intervention. Quality is one of the most
important factors, but fast interactive response is also important in this domain. Medical
Visualization has already produced several implementations of volumetric visualization
on the Web, mainly for educational purposes (John et al. (2008)John (2007)). These
approximations require third party systems for the correct visualization, or the presence of
a rendering server (Poliakov et al. (2005), Yoo et al. (2005)), which limits the scalability of
the application. Using standards such as VRML and Texture Mapping (Behr & Alexa (2001)),
visualization of volumes in the Web has been achieved.
160
Computer Graphics