没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
peter gerstmann
may 2000
building games in VRML
I would expressly like to thank the following people for their contributed time,
patience, expertise, and support. It is only with their help that this paper could have been
completed.
Matt Lewis
Lawson Wade
Steve May
Neal McDonald
Wayne Carlson
Susan Roth
Dale Gerstmann
Lucia Gross
Derek Gerstmann
I am also endebted to the pioneers of VRML community, for providing an open
format for Web3D, inspiration, software, and example code. Many thanks to:
The old Cosmo team at SGI
Parallelgraphics
Blaxxun
Shout Interactive
Pioneer Joel
Chris Marrin
Don Brutzman
David Frerichs
Braden McDaniel
Vladimir Bulatov
Michael Wagner
Stephen White
Roland Smeenk
Tom Kaye
acknowledgements
00
the 3D graphics boom
In recent years, the combined availability of faster, cheaper computer processors, less
expensive memory, and more powerful mass market graphics accelerator cards has resulted
in real-time 3D graphics usage becoming widespread among the casual computer user.
3D computer games have flooded the market, becoming the norm rather than the
exception. With more and more complex 3D animation techniques appearing in movies
and on TV, general public exposure to 3D graphics has risen sharply.
Real-time 3D on the web became a reality in 1995 with the VRML 1.0 specification and
several VRML-capable browsers. Since then, VRML 2.0 has become an international
standard (VRML97). VRML2000 is being standardized as X3D. Java3D and a host of
other Web3D technologies are now available. VRML97 is currently the most widely
supported standard open format for complex real-time interactive 3D scenes on the web.
what is
VRML
?
VRML is a scene description language, similar to HTML being a document description
language. A scene is composed of a list of objects, called nodes. Nodes describe things
such as shapes, colors, lights, viewpoints, and transformations. Nodes are grouped and
nested to form a hierarchical structure that defines the scene of interest. The following
is a simple VRML file that describes a cube. (See figure 1)
#VRML V2.0 utf8
Background { skyColor [ 1 1 .9 ] }
Shape {
appearance Appearance { material Material {} }
geometry Box { size 1 1 1 }
}
VRML is an excellent tool for 3D visualization, enabling not only static model representation
with full texturing / coloring capabilities, but also animation and interaction. Furthermore,
VRML scenes can be built from other VRML scenes to achieve arbitrary levels of complexity.
motivation
Robust technology for the delivery of interactive 3D coupled with inexpensive computing
power positions the common computer user to take advantage of 3D over the web.
Given the popularity of off-line 3D games then, one might expect to see an abundance
of on-line 3D games. This is not the case however. There are presently only a handful of
poorly publicized 3D games on the web.
Before online 3D games can begin to compare to their offline relatives, developers will
need access to tools as powerful as those theyve been using for their offline games.
Libraries of reusable code components need to be built to support common functionality
and reduce development effort. Object-oriented programming design methodolgies are
extremely applicable to this type of situation.
abstract
background
01
[02], [03], [04], [05]
[01], [61]
fig01: a simple
VRML file
This research focuses on the process of creating 3D games using VRML, the Virtual Reality
Modeling Language. It presents the Web3D community with a library of components and
utilities to be used together to simplify VRML game production and proposes a tool to
facilitate working with VRML components in general. Design of the components is
inspired by encapsulated model theory and guided by analysis of popular games and the
VRML production process. Illustration of their use is provided in the form of working
examples. Source code for the examples is provided.
thesis
Before online 3D games can become comparable their offline counterparts, appropriate
resources need to be made available to the developer. This research chooses VRML as an
open, standardized format for delivering online 3D content. In this context, encapsulated
model theory can be applied to the game design process to develop modular, reusable,
shareable libraries of VRML components for game production. However, tools that allow
the developer to effectively utilize these libraries will also need to be developed.
what are encapsulated models?
May defines encapsulated models (emodels) as:
...an animated object containing an integrated set of dynamic attributes
e.g. shape, motion,
materials (surface properties), light sources, cameras, user interfaces, sound
represented by
a procedural data format (i.e. a program written in a procedural animation language).
Real-world models almost always employ forms of encapsulation to provide the user with
a simple interface to control a complex object. Consider an electrical toy robot. Any child
can easily get the robot to walk, blink lights, speak, and fire its laser gun, simply by flipping
a power switch from off to on. Its not important that the child know anything about the
complex circuitry that exists inside the robots body.
Virtual-world models can similarly employ encapsulation. As an example, imagine the
case of a 3D artist wanting to animate a modeled characters face. To express an emotion
such as happiness or sadness will require the manipulation of several, if not hundreds,
of points on the surface of the model. These same points will need to be manipulated
every time the characters expression changes. Suppose instead of maneuvering each
individual point, the animator could instead adjust a single simple value that would
indicate the degree of happiness; maybe 0 for frowning, .5 for neutral, and 1 for a big
smile, with smooth transitions for all the values in between. Obviously, the process of
completing the animation will be much shorter and more efficient. Even if the artist
knows all there is to know about character animation, it will still be beneficial to encode
the expressions once, rather than having to manipulate so many points repeatedly.
Additionally, and importantly, the model can then be reused by someone not necessarily
as skilled in character animation, because one would only need manipulate the single
happiness value. This leads into the concept of emodels as an improved data format for
model distribution. Imagine the decrease in production time if off-the-shelf models from
commercial companies came not as static collections of points, but with predefined
movable parts, built-in animation controls, built-in sound effects, and parameters to vary
the shape, style, or functionality of the model.
The virtues of emodels are twofold: increased complexity and sophistication of objects,
and decreased cost in time and effort to use them.
applying encapsulated model theory to vrml
02
[12]
[14]
[13]
[15]
[20]
These benefits are functions of the properties of emodels, namely,
procedural specification - a program defines the model
parameterization - aspects of the model can be tied to changeable values
replication - multiple copies of the model can be made
precision - model parts can interact in mathematically precise ways
continuous representation - equations define shapes, rather than point lists
compression - the data format is space-efficient
composition - complex models can be built from simpler models
simulation - the ability to implement particle systems, behavior simulation, etc.
lighting - lights, surface materials and atmospheric effects described in the model
sound effects - sounds described in the model
Emodels are compact, self-contained, reusable, and customizable. Modularity of this sort
is ideal for any constructive process, be it animation, programming, or game production.
If emodels could be created with VRML as the representation language, 3D game designers
could take advantage of all the properties of emodels listed above. In a significant step
towards the goal of simplifying game design, emodel libraries could be established to
promote the sharing (or selling) of complex models. These models could be props,
characters, behaviors, tools, etc., ready for use in a game.
VRML
as an emodel representation language
The VRML97 specification suggests support for scripting languages. Language choice is
left to the implementers of the browser software, but is typically ECMAscript and / or
Java. When implemented with a scripting language, VRML can be used to create models
that exhibit all of the properties of emodels listed above.
Encapsulation in VRML is achieved through the PROTO and EXTERNPROTO structures.
A PROTO takes an arbitrary collection of nodes and bundles them into a single node
with a single interface for sending and receiving data. Recall that nodes are the atomic
unit in VRML and can represent shapes, colors, lights, textures, sounds, motions,
transformations, etc. The PROTO structure is simply a wrapper node that allows other
nodes to hide inside of it. This can be thought of as analogous to a stereo component
supplying input and ouput jacks for audio, while hiding the circuitry of its audio processing
electronics inside a box.
The EXTERNPROTO structure is a PROTO that resides in a separate (external) file. This
allows complete encapsulation and extensive reuse. A single EXTERNPROTO file can
be referenced by any number of different VRML models, simply by including its parameter
interface and a link to its implementation.
VRML models can therefore be emodels when they are defined as EXTERNPROTOs.
Their parameter interface allows the user to customize the model to meet specific needs.
VRML emodels can themselves be composed of other emodels. This recursive definition
allows progressively more complex objects to be built from basic components.
To illustrate the applicability of VRML to emodel theory, an example VRML emodel has
been created: RocketClock, which is similar to AlarmClock presented by May. The model
exhibits several high level controls such as clock color, setting of the time and alarm, alarm
volume, and exaggeration of ringing motion. Furthermore, RocketClock makes use of
another emodel, ClockMechanism, to drive the rotations of the hands around the face. The
ClockMechanism behavior emodel could easily be reused in another clock model, which
might have completely different geometry.
The RocketClock example is presented on page four, and its implementation is given in
Appendix C.
03
[17], [63]
[16]
[18], [64]
剩余39页未读,继续阅读
vancebs
- 粉丝: 1
- 资源: 27
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页