Home Up

Voxel Graphics



Introduction

A design and computer simulation of a modern engineering system requires advanced graphics processing and visualization tools. When the computing facility is located far from the visualization workstation and should be connected through Internet protocols, the issue of simplicity and efficiency of graphics rendering may also become a problem. Even though many engineering graphics system use vectorized graphics, in a number of scientific applications this approach may limit the range of shapes and geometries, as well as complicate the design phase. At the same time, pixel graphics have long demonstrated their versatility and power combined with a great simplicity in a variety of applications. However, most of these applications are usually confined to 2D graphics. 3D pixel graphics were not seriously approached until recently for obvious reasons of high memory requirements. Today the situation may be changing. A complex multi-color scene described by a 100-pixel cube, can already easily fit into a 1GB workstation. This opens an opportunity to revisit simple and robust pixel graphics techniques for complex engineering design and scientific applications that require complex scene setup.

In this work we developed a web-based 3D pixel-graphics system that is a direct extension of 2D graphics packages, such as Xpaint. The package is written in Java and can be enhanced with java3d library for more advanced texture rendering. There are several aspects of developing this system that were the focus of this work: (1) extending simple 2D pixel graphics routines to 3D, (2) augmenting painting tools with 3D controls, (3) implementing 3D surface and volume rendering, (4) transferring pixel representations over slow networks, and (5) creating grid-independent representation of geometry.

The first task of extending 2D pixel graphics to 3D is relatively straightforward. It requires the introduction of the third dimension into the pixel-array and identifying the position and orientation of the drawing plane. Introducing 3D controls can be as simple as changing the position and orientation of the plane. However, to alleviate the frustration of dealing with hundreds of drawing planes in case of large images, more advanced 3D drawing tools and motions controls should be introduced. In essence, each 2D drawing tool can have it's 3D counterpart, with extra spatial dimension added to the tool. For example, the drawing pen can be represented by a color-filled ball of a certain radius. The user selects the color and the radius of the ball. Positioning of the ball in space can be done by selecting the direction vector of ball's motion and then advancing it along this direction. Since there are three parameters required for this operation, it can be done, using only mouse controls: two mouse-position coordinates to set the direction vector, and mouse-wheel motion to set the position along that direction. More sophisticated 3D navigation tools can be developed using prototype controls of a flight-simulator game.

Effective 3D visualization of the drawn scene is the key supplement to successful drawing capabilities. An almost trivial feature in 2D graphics, visualization and surface rendering become a major effort in 3D. For most purposes of engineering design a simple wireframe rendering mode is usually enough. This can be accomplished in a number of ways, and in a manner consistent with the resolution of the image, i.e, the ratio of the image size to the pixel size. Three wireframe rendering models were implemented. One of them is based on a relatively versatile and fast method of constructing cutting-plane contours. The number of planes, their orientations and separations can be set by the user, thus, adjusting the rendering to high vs. low resolution scenes. The advantages of wireframe rendering are that it is relatively simple to handle algorithmically and sufficiently fast to work well even without accelerated graphics. It also provides one with the depth-perspective. Nevertheless, for an accomplished drawing and design package a more advanced surface and texture rendering is needed. For this purpose Java3D graphics library was used, which works best with hardware accelerated graphics. In this combination both wireframe and surface rendering modes are possible.

Even though scenes of relatively high resolution can be created on a modern workstation, when used remotely, pixel graphics can still present a problem because of transferring bulky pixel representations over the slow network. Fortunately, most of the scenes of practical interest can be effectively compressed to many times the size of raw pixel representation. This stems from the fact that the amount of information contained in a scene is independent of whether pixel or vector graphics representation is used to describe it. This information is rather related to the positions and shapes of the few objects populating the scene. From this perspective, the efficient compression algorithms used for pixel-graphics representation will eliminate the inherent redundancy of pixel format and provide the degree of compression that will make the total amount of information to be transmitted similar to that used for vector graphics.

But this is not the only way in which the compactness of representation can be achieved. A more consistent approach is to convert pixel-representation into a so-called grid-independent representation of geometry. Despite simplicity and versatility of pixel graphics, they inherit the anisotropy of the underlying rectangular grid, which is imprinted in any pixel representation. One way to avoid carrying this information over is to convert the 3D pixel-representation into a 2D boundary surface information. This information can be stored, for example, as a set of patches of meshed, triangulated surfaces. There are various ways in which these surfaces can be made insensitive to the three main directions of the underlying pixel-grid. For example, a combination of smoothing and anti-smoothing algorithms can do a good job, which was demonstrated in our applications. A more advanced surface meshing routine with mesh adaptivity features can also be developed, which is the subject of an on-going work.


References

@inproceedings{SmZhSwSCI04,
author={Smirnov, A.V. and Zhang, H. and Sowers, B.},
title={Voxel-Based Volume Graphics System for Multi-Physics
       Modeling},
booktitle={The 8th World Multi-Conference on Systemics, Cybernetics
and Informatics},
series={Computer Science and Engineering},
volume=5,
pages={144-149},
year=2004,
publisher={International Institute of Informatics and Systemics},
ISBN={980-6560-13-2},
}
@article{SmZhetJPS04,
author={Smirnov, A.V. and Zhang, H. and Burt, A. and Celik, I.},
title={Fuel-Cell Simulator Interface},
journal={Journal of Power Sources},
year=2004,
note={Accepted for publication}
}
@conference{SmZhetCIS04,
author={Smirnov, A.V. and Zhang, H. and Burt, A. and Celik, I.},
title={Remote Interface for Geometric Design and Simulation Control},
booktitle={The 2004 International Conference on on Imaging Science, Systems, and Technology: CISST'04},
editor={Arabina, H.R.},
address={Las Vegas, NV},
date={June 21-24},
publisher={CSREA Press},
pages={241-247},
year=2004,
ISBN={1-932415-35-1},
}