Virtual Reality Markup Language (VRML)

yardbellAI and Robotics

Nov 14, 2013 (3 years and 7 months ago)

70 views

Virtual Reality
Markup Language
(VRML)

Virtual Reality


Virtual reality is a
computer
-
generated

simulation of a
three
-
dimensional

environment, in which the user is able
to
both view and manipulate

the contents of that
environment

Every VR system has to perform at least the following basic
functions:



Keep track of every object in the virtual world



Store and update location and appearance



Simulate the behavior of the objects



Render (i.e., draw) the world in three dimensions



Generate sounds for the virtual objects



Allow the user to navigate through the virtual environment



Provide the user with means to interact with objects


What is VRML?


It is an attempt to extend the web into the domain of three
-
dimensional graphics


VRML "worlds" can depict realistic or otherworldly places, which
can contain objects that link to other documents or VRML worlds on
the web


An Internet programming language that creates 3
-
D environments
you can navigate through

What’s VRML





VRML is an acronym for "Virtual Reality Modeling Language". It is the
International Standard.






File format for describing interactive 3D multimedia on the Internet.






The first release of the VRML specification was created by Silicon
Graphics, Inc. The second release of VRML added significantly more
interactive capabilities.


Comparing VRML & HTML I


VRML follows the HTML model in several important respects


Like HTML, VRML is a content
-
based, plain
-
ASCII markup
language that describes its universe at a high level, and leaves it up
to the browser or client program to make detailed presentation
decisions


VRML documents describe worlds populated with 3D shapes


Developers build objects from basic shapes, such as cubes, cones,
and spheres with a variety of surface effects, including texture maps
and lighting, available for composing realistic objects

Comparing VRML & HTML II


It's possible to associate URLs with objects in a VRML world in
such a way that when a user touches the object, they are transported
to another VRML world, an HTML document, or a CGI script


which itself may generate a VRML world


Some demonstration interfaces to large databases have already been
built and suggest the beginnings of true cyberspace architecture

How VRML Works


VRML objects begin with basic 3
-
D polygons


Then add textures and patterns, light sources and shadows


Using VRML, programmers can create interactive simulations of
anything as practical as a walk
-
through human heart for medical
research, or as fanciful as futuristic worlds and alien creatures

How VRML Works (cont.)


“SPEAK” (actually, show) to the visually oriented


VRML
is not
an extension of HTML


But VRML
was

designed to work with hypertext links, Java,
Javascript, etc. so that VRML worlds could link to the rest of the
Web.

VRML browsers


C o s m o P l a y e r


C y b e r H u b


L i v e 3 d


V R S c o u t


V R w e b


W e b v i e w


W o r l d v i e w


… and quite a few others...

Modeling in VRML


Start with the analog reality…


Figure out the polygons, texture and color


Add lighting, perspective, shadows


Add motion and collision


Add behavior


Create a VRML .wrl file

(purely ASCII)

Things you can do with a virtual world


Move around:
forward and back, left and right


Look around (tilt):
forward and back, left and right


Move objects (rotate, pan and zoom):
forward and back, left
and right


Set new vantage (camera) points


Change lighting


Activate objects


Run animation


Run audio


Change gravity


Float:
up and down
,
forward and back, left and right

Virtual Reality Transfer Protocol

(VRTP)


Implement the components of vrtp, maximizing interoperability with existing
open Internet solutions.



Integrate vrtp components using the Bamboo dynamic plugin architecture.



Develop application programming interfaces (APIs) to a variety of 3D scene
graphs. These include VRML 97, Java3D, VRML next
-
generation, Fahrenheit
(when available) and others.



Distribute open
-
source vrtp software with C++ and Java bindings.



Conduct LSVE testing across the Internet and integrate results in vrtp.


Charter




the positioning of vrtp with respect to higher
-
level architectures such as
LivingWorlds (it shares many features with transport protocols, but also
provides special treatment for things such as behaviors)



the relationship between vrtp, DIS and HLA, and whether they are
intended to be decoupled



the position with respect to other network protocol layers, e.g. reliable
UDP
-
based protocols or streaming protocols, and whether vrtp is transport
independent



the use of vrtp as a protocol vs. its client/server/ monitoring components
-
-

in some ways vrtp seems like a protocol, in others it seems like a
framework of APIs.


Why VRTP ?


The capabilities of the VRML permit building large
-
scale virtual
environments using the Internet and the WWW. However the underlying
network support provided by the http) is insufficient for large
-
scale virtual
environments.

Additional capabilities for many
-
to
-
many peer
-
to
-
peer communications plus
network monitoring need to be combined with the client
-
server capabilities
of http.
vrtp

is designed to support interlinked VRML worlds in the same
manner as http was designed to support interlinked HTML pages.
vrtp

will
be optimized in two ways: on individual desktops and across the Internet.
vrtp

appears to be a necessary next step in the deployment of all
-
encompassing interactive internetworked 3D worlds.


What does it look like

?


vrtp

will be public
-
domain software that will be available for all desktop
computers.

Installing
vrtp

will provide any machine with client, server, peer
-
to
-
peer and
network monitoring capabilities.

People will use
vrtp

with 3D browsers to navigate and join large, interactive,
fully internetworked, VRML worlds.

Basically we are building network connectivity for cyberspace, optimized for
live 3D and scalable with the Web.



Screen snapshot

Just as the functionality of
ftp, telnet and gopher were
integrated in
http

to support
HTML.



Integrating and optimizing
protocols for client, server,
peer
-
to
-
peer and network
monitoring in
vrtp

to support
VRML.


Where does vrtp live ?

vrtp components (1)


Client

-
> looking at someone else's
live 3D world

Server

-
> showing other people your
live 3D world



Peer
-
to
-
Peer

-
> for scalable behavior
interactions between numerous
interacting worlds



Monitoring

-
> so that everything just
works. why? because
nobody

really
knows the state of the Internet


Plugin Kernel

-
> Bamboo plugin
architecture for Java and C++
dynamic class loading


vrtp components (2)

3D client functionality is in the orange
box for a variety of 3D scene graphs.



Multicast streaming, server and
monitoring components are in the
yellow, green and blue box columns.


The light
-
blue "universal platform" box
indicates that vrtp will be
implemented in both Java and C++
(via Bamboo plugins), enabling
interoperability with all platforms of
interest.


Little Details

vrtp

is:



a framework for best
-
of
-
breed
protocols



a combination of existing software



a way to give user scenes easy
access to a full spectrum of network
capabilities



support for multi
-
user interactions



vrtp:// URL & browser API
extensions for client OR server OR
multicast capability



easy to use (it’s not done yet)



all about simplification &
streamlining

vrtp

is not:





possible using http



yet another transport
protocol, or a reliable multicast
protocol



a competitor to existing
protocols



a step in an untested
direction



hard for 3D
-
content authors
to understand



about adding complexity


From the bottom up: behaviors arrive
as multicast packets over the wire, are
subscribed to via the Area of Interest
Manager (AOIM), are buffered in a
separate thread, have Real
-
time
Transport Protocol headers examined
for synchronization, packet contents
are decoded using the XML
-
based
dial
-
a
-
behavior protocol, then the entity
dispatcher sends events to the 3D
scene graph.


Vrtp streaming behaviors components

Uses of VRML


See:
http://www.acs.ucalgary.ca/~hmpfoh/MGIS79705/toolpage/vr
ml_tool_page.html


virtual market


medical research


mathematical and statistical modelling


robotics


navigation support


R& D


pathfinder

VRML resources


Silicon Graphic’s CosmoSoftware

http://www.cosmosoftware.com/


San Diego Supercomputer Center VRML resources

http://www.sdsc.edu/vrml/


Netscape‘s intro

http://www.netscape.com/eng/live3d/howto/vrml_primer_index.html


ZDNet’s VRML User

http://www.zdnet.com/products/vrmluser.html



Markus Roskothen tutorials

http://www.vruniverse.com/tutorials.html


Light side of VRML

http://vrml.miningco.com/library/blfun.htm


Graphics and VRML 2 book

http://www.developer.com/reference/library/1575211432/ewtoc.html


Special Edition Using VRML (Matsuba and Roehl, Que)

http://www.developer.com/reference/library/0789704943/ewtoc.html