A Java3D application for visualization and deformation of CAD models in Virtual Reality.
Cioi, Daniel
Abstract: This paper presents a developing application, part of the
author's PhD work title: Virtual Reality for Computer Aided
Design". The application combines two systems: Virtual Reality
system with its special equipments for visualization and manipulation
and CAD system recognized as basic systems in the design process. Based
on the slogan: "Write once, run anywhere", the author chose
Java language and Java3D API to develop this application.
Key words: Java3D, CAD, Virtual Reality, Visualization.
1. INTRODUCTION
Virtual Reality is a computer artificial environment that allows a
user to view, explore, and manipulate the environment. Virtual Reality
is commonly manipulated and explored using various input devices such as
goggles, headphones, gloves, and/or a computer. Using these devices a
user can browse throughout a virtual world or pickup and manipulate
virtual objects (Computer Hope 2007).
CAD is abbreviated from Computer-Aided Design. It's a special
software package which allows engineers and architects to design
products with precise shape of parts. The design is made with part
representation and modular parts in 2D or 3D.
With traditional two-dimensional (2D) based interfaces, such as a
mouse or a keyboard, many CAD models, like automobile bodies, industrial
products, and ship hulls, are difficult to design and edit due to their
three-dimensional (3D) nature. For example, to create and modify a loft
surface or model, designers have to deal with the surface construction
curves. Surface shape is difficult to control, as it depends on the
number, shape, and position of the section curves. Interactively
designing surface is often a tedious, inefficient and iterative process
(Liu et al., 2004).
According to (Bell) there are two main hypotheses that can be made
regarding the advantages which virtual reality could bring to computer
aided design based on the facilities an immersive virtual environment
can provide. These are as follows:
* Improved visualization of product by allowing the user to
co-exist in the same space as the product model therefore gaining a
better appreciation of product geometry and aesthetics.
* Improved interaction with design in terms of more intuitive model
manipulation and functional experimentation, the designer could
effectively interact with the product model directly rather than using
the conventional 2-D mouse and cursor.
The application presented in this paper, named VRforCAD, is a
solution for this problem. The CAD models in DXF and STL formats are
imported and visualized in a Canvas3D in active stereoscopic mode. The
3D models can be manipulate (rotate, zoom, translate) and modify its
surfaces by pushing, pulling and dragging. At the end, the models can be
exported in DXF or STL format to be compatible with CAD system. The
stereoscopic principle is described below.
Stereoscopic display technology family of products enables
high-definition stereoscopic viewing in an electronic environment. This
concept is known as Stereo3D. Stereo3D delivers the most realistic
visual representation possible of complex digital solid models. This
provides engineers and scientists with a significantly better
understanding of three-dimensional information and yields levels of
technical proficiency not available using a typical 2D view
(StereoGraphics Corporation).
The key principle of active stereoscopic visualization is fast
switching between two different images. Monitor, special TV or special
DVD projectors very fast switches during the visualization between left
and right eye images. Special glasses (soled usually shutter-glasses) a
connected through IR or by a cable with the projection device. Odd
images are visible only in one eye; the even images are visible in the
second eye. The glasses use fast switching LCD panel for hiding the
image from opposite eye. For enough high frequencies (100 Hz and higher)
the switching is hard to notice. For lower frequencies, the quality of
stereoscopic perception is affected by flickering problems. This system
could be used in combination with PC monitor efficiently (GALI-3D
Company).
One of the great advantages of active stereoscopic projection is
standard projection screen usage.
2. APPLICATION DESCRIPTION
Java technology is an object-oriented, platform-independent,
multithreaded programming environment.
Platform independence means that programs written in the Java
language must run similarly on any supported hardware/operating-system
platform. One should be able to write a program once, compile it once,
and run it anywhere.
Multithreaded means that a single Java program can have many
different threads executing independently and continuously.
[FIGURE 1 OMITTED]
The Java 3D API is a hierarchy of Java classes which serve as the
interface to a sophisticated three-dimensional graphics rendering and
sound rendering system. The programmer works with high-level constructs
for creating and manipulating 3D geometric objects. These geometric
objects reside in a virtual universe, which is then rendered. The API is
designed with the flexibility to create precise virtual universes of a
wide variety of sizes, from astronomical to subatomic (Java3d, 2007).
The cross-platform capability was the first reason to choose this
language for developing the VRforCAD application. The application
contains a Canvas3D, a SWING panel with buttons and check boxes on the
right, menus on the top and dialogs. Fig.1. shows a screenshot of
application running on WinXp.
When a CAD file is loaded, the application scan the CAD file,
convert it in .vfc file which then is loaded in arrays used to create
the geometry by GeometryArray object with By References method for
rendering it on the Canvas3D.
The CAD applications use parametric surface for describe the 3D
models and the result object still appears smooth when the deformation
is conducted on the control points, while the VRforCAD application use
triangles to draw the geometry where too few point are sampled and
results a non-smooth deformation.
Thus for deformation of 3D models surfaces, the author made a
method which based on the index position of vertex in arrays received
from the picking operation perform a recursive search for the nearest
vertices and move it along the deformation direction. The deep of
recursive search and deformation is controlled by a factor of
dissipation. Fig.2a. and Fig.2b. present the difference between using
and not using this method on a 3D model of a car component: mudguard.
For a better understand on this example is used the wireframe mode for
visualization.
At this moment, for manipulate de 3D models is used a mouse device
and the deformation operation is performed in combination with the
"z" key. At the initial was chose the Meta key for its
presence on any personal computer's keyboard, but on Linux this key
has another function (in combination with mouse perform resize of
desktop windows).
[FIGURE 2 OMITTED]
The current features of VRforCAD application are:
* Rotate, zoom and translate operations for the 3D models;
* Import/Export DXF and STL CAD formats, also the models can be
kept on its own format *.vfc;
* Options for modify material appearance;
* Options for modify the properties of the scene lights. There are
two directional lights, two points light and an ambient light;
* Option for Wireframe visualization;
* Option for Stereoscopic view (on this moment just active
stereoscopic);
* Option for dynamic section;
The application is tested on WinXp, Linux Suse and FreeBSD. The
follow table presents the configuration used for testing and
development.
3. FURTHER WORK
The next step is to add the facility to deform the 3D model
surfaces by a primitive like a ball and a tool like a brush to paint the
surfaces.
The mouse will be replaced by a SpaceBall 5000 (a 6 degrees of
freedom input device developed by 3Dconnexion, the device is designed to
ease navigation in 3D computer models) and a haptic device "Phantom
Desktop".
Also the results of this work will be presented on a web page
(www.vrforcad.org).
4. CONCLUSION
The VRforCAD application makes some steps toward the use Java and
Java3D API to develop more complex Virtual Reality applications.
5. REFERENCES
Bell, M. Available from:
http://www.cs.ucl.ac.uk/staff/M.Bell/prjdef.html Accessed: 2007-05-30
Computer Hope, Available from: www.computerhope.com/jargon/v/vr.htm
Accessed: 2007-05-30
GALI-3D company, Principles of active stereoscopic visualization,
Available from: http://www.gali-3d.com/en/techno-active-stereo/techno-active-stereo.php Accesssed:2007-05-30
Java3D Tutorials, Available from:
http://wiki.java.net/bin/view/Javadesktop/ Java3DBooks
Accesssed:2007-05-30
Liu, X.; Dodds, G.; McCartney, J. & Hinds, B.K. (2004). Virtual
DesignWorks--designing 3D CAD models via haptic interaction,
Computer-Aided Design, Vol. 36, No. 12, (October 2004) 1129-1140.
StereoGraphics Corporation. Stereo3D Hardware Developer's
Handbook, Available from:
www.stereographics.com/x_downloads/guides/hdk.pdf Accessed:2007-05-30
Table 1. The configuration used for testing the VRforCAD application.
OS WinXP Suse SLES 9.3 OpenSuse 10.2
JDK version 1.6 1.4.2 1.5
Java3D version 1.5.1 1.4.1 1.5.0
Video Card ATI ATI FireGL Nvidia
FireGL X3-256 Quadro
2 FX 1400
Procesor 3500 1.6 2.4 P4
AMD IA64 Intel