Take up - Page 2
September 16, 2002
So how come we're not enveloped by fascinating 3D worlds at every
click and turn? There are two big reasons. The first is that
plug-ins are usually needed to view 3D, and the second is that no
single 3D format has shown itself to be a clear champion and
worthy leader.
Open-standard VRML was always touted as the main contender, but
it's been around for years and never quite made it. Too fat and
clumsy, say the experts. Yet recently it's been on a fitness
program and emerged leaner and stronger as the new
X3D format. High
hopes for this may be more justified.
There are also various proprietary 3D formats out there, mostly
requiring different plug-ins, and this messy situation is one of
the reasons why 3D has never become mainstream. At one stage
Java looked like it might become
the saviour of 3D, with no requirements for plug-ins, but the
applet solution is too clumsy, and everybody got in a muddle when
Java3D came along, requiring Java 1.2. Although Java is still
important in the world of 3D, it hasn't provided a killer solution.
At least the plug-in situation has recently improved. One of the
big problems with VRML was the size of the browser plug-ins
required to view it. A dozen or more companies made VRML plug-ins,
and they were all discouragingly large for regular dial-up users
to download. Under the new X3D protocol, there are different
levels of complexity, so a bare-bones 3D application can be
viewed with a much smaller bare-bones X3D plug-in.
The plug-in required to view Adobe Atmoshere files
(Viewpoint)
is also encouragingly small, taking five minutes to download on
a mediocre dial-up connection.
Two new formats with small plug-ins is good news, but maybe it
would be even better news if there was just one format, not two.
That would certainly encourage the browser manufacturers,
especially Microsoft, to include a plug-in as standard within
their browers. There's no clear indication that that's going to
happen soon.
At least the two formats just mentioned probably won't get
involved in a war of attrition that succeeds in killing them both.
They appear to be aimed at slightly different market segments.
There's certainly some overlap, but in general Adobe Atmosphere
is aimed at simpler applications than X3D. For example, Atmosphere
is ideal for 3D chatrooms but won't be much use for 3D games.
So it looks likely that there's a place on the Web for both formats.
In order to understand X3D it's worth grasping the basics of VRML,
so that's what we'll look at next. If you want a more detailed
introduction, try the fine
WDVL tutorial.
VRML
There are a couple of different versions of VRML (often pronounced
'vermal'), but it's best to concentrate on VRML97 (effectively
the same as VRML 2.0) and ignore anything else. It's a programming
language used to describe 3D scenes and a modest amount of
animation and interaction within those scenes.
In VRML parlance, program objects are called nodes, and this
terminology helps to distinguish the viewable objects from the
program objects that create them. There are many nodes available,
including basic shapes, transforms and text.
Here's a small example of VRML:
#VRML V2.0 utf8
Transform {
children [
Transform {
translation 3 0 0
children [
Shape {
geometry Sphere {radius 2}
appearance Appearance {
material Material { diffuseColor 0 1 0 }
}
}
]
}# end of sphere transform
Transform {
translation -3 0 0
children [
Shape {
geometry Box {}
appearance Appearance {
material Material {diffuseColor 0 0 1}
}
} #end of shape
] #end of children of box transform
} #end of Box transform
]#end of children of world transform
} #end of world transform
Note that text after a hash # is comment.
This VRML code creates a blue box and green sphere side by side.
For more details, visit the
webreference page from where the example was taken.
If you're familiar with
XML, you'll see how
closely the VRML code resembles XML, especially in its hierarchical
structure. It's this resemblance that has made it relatively
straightforward to make the new X3D standard backwards-compatible
with VRML.
It's possible to add simple animations within the VRML code, but
when there's a need for more complicated movement, it's time to
add in other programming languages to mess those nodes around.
An interactive game based on VRML would also include many pages
of Java code to deal with the complicated bits. Simpler
applications can use
JavaScript - which in the
VRML world often goes by its more formal name of ECMAScript.
Overall, VRML is unwieldy, but is still used a lot in CAD, where
computer power and bandwidth aren't seen as limitations.
An Introduction to 3D, X3D and Atmosphere
An Introduction to 3D, X3D and Atmosphere
X3D - Page 3
|