CSC 890 Advanced Computer Graphics (Web3D System Design

Download Report

Transcript CSC 890 Advanced Computer Graphics (Web3D System Design

CSC 890
Advanced Computer Graphics
(Web3D System Design and Development)
Ilmi Yoon
Monday 4:10 - 6:45
Survey on your CG related background
 Basic Concept (Transformation, Camera,
Projection, Rendering, Shading)
 Software Tools (3D Studio Max, Maya,
Alias, Director, VRML)
 Library (OpenGL, Open Inventor,
Renderman, directX, Java3D)
 Advanced Issues (Animation, Rendering
Acceleration, Geometry Compression,
Global Illumination, Simulation, IBR…)
Basic Rendering Pipeline
Data Base
of
3D
Models
Visibilit
y
Culling
Transfor
mation
Projectio
n
Shadin
g
L
N



1R
1V
Clipping
&
Display
image
Computer Graphics Area
 Business models: Entertainment, Game, Education,
Scientific Research, Medical, Industry, Web3D
 Technical Categories






Rendering enhancement (Algorithm, hardware)
Simulation and rendering (natural phenomena,
facial expression, hair, wrinkle, clothes, etc.)
3D model acquisition
Volume/Isosurface rendering
Motion capture
...
Web3D
 What is Web3D?




Interactive 3D graphics over WWW/Internet
Why is it different from traditional CG?
What is the future of Web3D?
What is the current business models of Web3D?
• E-commerce site (Viewpoint, Shout3D, Shockwave …)
• 3D cyber space (Blakxxon, ActiveWorld …)

Technical challenges of Web3D
•
•
•
•
Bandwidth (geometry + texture)
Real time rendering
User Interface Design
Compatibility
VRML(Virtual Reality Modeling Language)
 Online resource: http://www.best.com/~rikk/Book
 VRML is simply a 3D interchange format.

It defines most of the commonly used semantics found in today's 3D applications
such as hierarchical transformations, light sources, viewpoints, geometry,
animation, fog, material properties, and texture mapping. One of the primary goals
in designing VRML was to ensure that it at least succeeded as an effective 3D file
interchange format.
 VRML is a 3D analog to HTML.

This means that VRML serves as a simple, multiplatform language for publishing
3D Web pages. This is motivated by the fact that some information is best
experienced three dimensionally, such as games, engineering and scientific
visualizations, educational experiences, and architecture. Typically these types of
projects require intensive interaction, animation, and user participation and
exploration beyond what is capable with a page-, text-, or image-based format (i.e.,
HTML).
VRML
 VRML provides the technology that integrates three
dimensions, two dimensions, text, and multimedia into a
coherent model.

When these media types are combined with scripting languages
and Internet capabilities, an entirely new genre of interactive
applications are possible.
 VRML is the foundation for cyberspace and the on-line
virtual communities

VRML does not yet define the networking and database protocols
necessary for true multiuser simu-lations
VRML
 File format + ftp + rendering on the client
side (plug-in)
 VRML is based on the Open Inventor file
format

does not define an application programmer interface
(API).
 Base of MPEG 4 ( & Java3D)
History of VRML & Web3D
 In 1992 the Iris Inventor 3D toolkit was released as the
first product of these efforts. Iris Inventor was a C++
toolkit that defined many of the semantics found in VRML
today
 In 1994 Mark Pesce and Tony Parisi built an early
prototype of a 3D browser for the WWW (created the VRML
mailing list, www-vrml, and issued a call for proposals for a formal
specification for 3D on the WWW)
 VRML 1.0 was missing key features (animation,
interaction, and behavior)
 At its July 1996 meeting in Kyoto, the International
Standards Organization's (ISO) JTC1/SC24 committee
agreed to publish the August 1996 version of VRML 2.0
VRML + etc
 VRML files may contain references to files in many other
standard formats. JPEG, PNG, GIF, and MPEG files may
be used as texture maps on objects. WAV and MIDI files
may be used to specify sound that is emitted in the world.
Files containing Java or JavaScript code may be referenced
and used to implement programmed behavior for the
objects in your worlds. Each of these is an independent
standard, chosen to be used with VRML because of its
widespread use on the Internet.
VRML + HTML + Java
 VRML file inside an HTML file: This is a
semistandard part of HTML using the <EMBED> or
<OBJECT> HTML tag, although HTML does not require
that HTML browsers support embedding of VRML files
(or any other type of file) into HTML documents.
 Java code inside a VRML file: This is a standard
(although not required) part of VRML 2.0, using a Script
node that refers to the compiled Java code.
 Java applet communicating with a VRML browser:
This is a not-yet-standard extension to VRML 2.0 known
as the External Authoring Interface (EAI). At some time in
the future it will probably become a standard (but perhaps
not required) part of VRML.
 Java classes corresponding to VRML nodes: Several
companies are developing programming toolkits that define inmemory representations of VRML nodes that can be used in
any way the programmer wishes. These can be extremely
useful when implementing VRML browsers or VRML tools,
but none are yet a standard part of either VRML or Java.
 HTML file inside a VRML file: Using an HTML file as a
texture map to display it inside a 3D world would be an
interesting extension to VRML, but it is not yet supported by
any VRML browser and is not part of VRML 2.0.
 Java applet inside a VRML file: Using a Java applet as a
texture map to display the Java program inside the 3D world
would also be an interesting extension. Interaction with the
Java program could also be supported by projecting pointing
device motion onto the applet. However, this also is not
supported and is not part of VRML 2.0.
An Overview of VRML
 Scene Graph Structure VRML files describe 3D objects and
worlds using a hierarchical scene graph. Entities in the scene graph are called nodes. VRML 2.0
defines 54 different node types, including geometry primitives, appearance properties, sound and
sound properties, and various types of grouping nodes. Nodes store their data in fields, and VRML
2.0 defines 20 different types of fields that can be used to store everything from a single number (the
SFFloat field type) to an array of 3D rotations (the MFRotation field type).
 Event Architecture VRML 2.0 defines an event or message-passing
mechanism by which nodes in the scene graph can communicate with each other. Each node type
defines the names and types of events that instances of that type may generate or receive, and
ROUTE statements define event paths between event generators and receivers.
 Sensors are the basic user interaction and animation primitives of VRML. The
TimeSensor node generates events as time passes and is the basis for all animated behaviors. Other
sensors are the basis for all user interaction, generating events as the viewer moves through the world
or when the user interacts with some input device. Sensors only generate events; they must be
combined with other nodes via ROUTE statements to have any visible effect on the scene.
 Script nodes can be inserted between event generators (typically sensor nodes)
and event receivers. Scripts allow the world creator to define arbitrary behaviors,
defined in any supported scripting language. The VRML 2.0 specification defines Script
node bindings for the Java and JavaScript languages.
 Interpolator nodes are essentially built-in scripts that perform simple
animation calculations. They are usually combined with a TimeSensor and some node
in the scene graph to make objects move.
 Prototyping: Encapsulation and Reuse VRML 2.0
includes a prototyping mechanism for encapsulating and reusing a scene graph (the
PROTO statement). Geometry, properties, and animations or behaviors can be
encapsulated, either separately or together. Prototyping allows the definition of a new
node type in terms of a combination of existing node types, which can make VRML
easier to use and can reduce the size of VRML files.
 Distributed Scenes VRML 2.0 includes two primitives that allow a
single VRML world definition to span the WWW. The Inline node allows the inclusion
of another VRML file stored anywhere on the Web and the EXTERNPROTO statement
allows new node definitions to be fetched from anywhere on the WWW. More generally,
EXTERNPROTO allows nodes to be defined external to the VRML file and it is the
basic extensibility mechanism for VRML.
For your inspiration….
 Electronic theater Siggraph ‘2001….