Upload
hinago
View
222
Download
0
Embed Size (px)
Citation preview
8/14/2019 Virtual Reality Modeling Language (VRML97)
1/31
Virtual Reality Modeling Language
(VRML97)
Anthony Steed 1998-2005
8/14/2019 Virtual Reality Modeling Language (VRML97)
2/31
Introduction to VRML
s Virtual Reality Modelling Language
A file format to describe 3D scenes
identified by .wrl extension
Also a description of a run-time system foranimating worlds
Designed to be used in network situations
Supports interaction and simulation of behaviour
of objects Designed to run on desktop PCs through to high-
end workstations
MIME type is model/vrml
8/14/2019 Virtual Reality Modeling Language (VRML97)
3/31
VRML Basics
s VRML file contains
Nodes that describe
the scene
s A Node is definedwith severalFields
Each line give the
field, the type of the
field, the name andthe default value.
s Example Node specification
Cone {
field SFFloat bottomRadius 1field SFFloat height 2
field SFBool side TRUE
field SFBool bottom TRUE
}
8/14/2019 Virtual Reality Modeling Language (VRML97)
4/31
Sample VRML File example1.wrl
#VRML V2.0 utf8Transform {
children [
Shape {
appearance Appearance {material Material {
diffuseColor 0.1 0.7 0.2
}
}
geometry Sphere {
radius 2
} }
]
}
Every VRML97 file starts
#VRML V2.0 utf8
8/14/2019 Virtual Reality Modeling Language (VRML97)
5/31
Classes of Node
s Shapes
Geometry
Appearance
s Transformations
s Lights
s
Groups
8/14/2019 Virtual Reality Modeling Language (VRML97)
6/31
Shapes
s Each Shape has a geometry
field that contains a geometry
node and an appearance field
that contains an Appearance
node
Shape {
appearance
geometry
}
s Example (fromexample1.wrl)
Shape {
appearance Appearance {material Material {
diffuseColor 0.1 0.7 0.2
}
}
geometry Sphere {radius 2
}
8/14/2019 Virtual Reality Modeling Language (VRML97)
7/31
Geometry Nodes
s Basic types
Box
Sphere
Cylinder Cone
Text
s Box
defined by its size field
Box {
size 2.0 2.0 2.0
}
s Sphere
defined by its radius field
Sphere {
radius 1.5}
8/14/2019 Virtual Reality Modeling Language (VRML97)
8/31
Geometry Nodes
s Cylinder
defined by its height and
radius fields
Cylinder {
height 2.0radius 1.0
}
s Cone
defined by its height and
radius fieldsCone {
radius 1.3
height 1.8
}
s Text
defined by the string
and the font
geometry Text {string ["Hi!"]
fontStyle FontStyle {
family "TYPEWRITER"
style "ITALIC"
}
}
8/14/2019 Virtual Reality Modeling Language (VRML97)
9/31
Complex Geometry
s Many objects can not be described with
standard solids
s
General geometry described with IndexedFaceSet, IndexedLineSet,PointSet, ElevationGrid, Extrusion
s Each uses some of the following nodes
in definition Coordinate, Normal, Color,
TextureCoordinate
8/14/2019 Virtual Reality Modeling Language (VRML97)
10/31
PointSet
s Define a set of points and the colour of
each point
10
11
8/14/2019 Virtual Reality Modeling Language (VRML97)
11/31
8/14/2019 Virtual Reality Modeling Language (VRML97)
12/31
IndexedFaceSet
s Components
the points to construct the face from
the normals to give at the points
the colours of the points
the texture coordinates of the points
s Can define normals and colours
for each vertex or each face
s Texture coordinate defined at each vertex Hints
each face is convex the faces are defined in counter-clockwise order
the object is solid (i.e. each triangle is one-sided)
8/14/2019 Virtual Reality Modeling Language (VRML97)
13/31
IndexedFaceSet
s Coordinate
s Define faces using list of vertices each
terminated by -1
geometry IndexedFaceSet {coord USE COORDS
coordIndex [ 0, 2, 9, 5, 0, -1, 3, 0, 5, 11, 3, -1,
1, 3, 11, 7, 1, -1, 2, 1, 7, 9, 2, -1
0, 3, 10 ,4, 0, -1, 3, 1, 6, 10, 3, -1,2, 8, 6, 1, 2, -1, 2, 0, 4, 8, 2, -1,
9, 8, 4, 5, 9, -1, 5, 4, 10, 11, 5, -1,
11, 10, 6, 7, 11, -1, 7, 6, 8, 9, 7, -1
]
8/14/2019 Virtual Reality Modeling Language (VRML97)
14/31
IndexedFaceSet
s Colour per facecolor Color { color [ 1 1 1, 0.3 0.3
0.3]}
colorPerVertex FALSE
colorIndex [ 0, 0, 0, 0, 0, 0,0, 0, 1, 1, 1, 1]
s Colour per vertexcolor Color { color [ 1 1 1, 0.3
0.3 0.3]}
colorPerVertex TRUE
colorIndex[ 0, 1, 1, 0, 0, -1, 1, 0, 0, 1, 1,
-1,
0, 1, 1, 0, 0, -1, 1, 0, 0, 1, 1, -1
0, 1, 1 ,0, 0, -1, 1, 0, 0, 1, 1, -1,
0, 1, 1 ,0, 0, -1, 1, 0, 0, 1, 1, -1,
0, 1, 1 ,0, 0, -1, 1, 0, 0, 1, 1, -1,
0, 1, 1 ,0, 0, -1, 1, 0, 0, 1, 1, -1
]12 colours = 1 per face 72 indices = 1 for each vertex in the
face set definition
8/14/2019 Virtual Reality Modeling Language (VRML97)
15/31
IndexedFaceSet
s Normal defines the direction of
each point and the way it
reflects light
default normal isperpendicular to surface
of polygon
polygon is flat if all
normals point same way
otherwise smoothinterpolation
normal Normal {
vector [
-1 0 -1, 1 0 1, 1 0 -1, -1 0 1,
1 0 0, -1 0 0, 0 0 1, 0 0 -1
]
}
normalPerVertex TRUE
normalIndex [5, 7, 7, 5, 5, -1, 6, 5, 5, 6, 6, -1,
4, 6, 6, 4, 4, -1, 7, 4, 4, 7, 7, -1
5, 6, 6 ,5, 5, -1, 6, 4, 4, 6, 6, -1,
7, 7, 4, 4, 7, -1, 7, 5, 5, 7, 7, -1,
1, 1, 1, 1, 1, -1, 2, 2, 2 ,2, 2, -1,
0, 0, 0, 0, 0, -1, 3, 3, 3, 3, 3, -1
]
8/14/2019 Virtual Reality Modeling Language (VRML97)
16/31
8/14/2019 Virtual Reality Modeling Language (VRML97)
17/31
IndexedLineSet
s Defines a line set
s Colour per line or per vertexgeometry IndexedLineSet {
coord USE COORDS
coordIndex [ 0, 4, 5, 0, -1, 3, 10 , 11, 3, -1,
1, 6, 7, 1, -1, 2, 8, 9, 2, -1,
0, 2, 1, 3, 0, -1,
4, 8, 6, 10, 4, -1,
5, 9, 7, 11, 5, -1]
color Color { color 1 1 1}colorPerVertex FALSE
colorIndex [ 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}
8/14/2019 Virtual Reality Modeling Language (VRML97)
18/31
Transformations
s Define the positions of objects in 3Dspace
s XY are the plane of the screens
Z is towards the Viewers Transformation basically contains
rotation
scale
translation a set of children nodes
s Rotations follow right-hand screwrule
X
Z
Y
8/14/2019 Virtual Reality Modeling Language (VRML97)
19/31
Effects of Transformation
s translationTransform {
translation 1 1 -1
children [
]}
s rotationtranslation 1 1 -1
rotation 0 1 0 0.785
s
scaletranslation 1 1 -1rotation 0 1 0 0.785
scale 0.5 1.0 0.5
8/14/2019 Virtual Reality Modeling Language (VRML97)
20/31
Scene Graph
s Transforms are
hierarchical
forms a directed
acyclic graph
Transform {
translation 0 2 0
children [
Shape { }
Transform {
translation 2 0 0
children [
Shape { }
Transform {
translation 0 0 -2
children [
Shape { }
]
}
]
}
]
}
8/14/2019 Virtual Reality Modeling Language (VRML97)
21/31
8/14/2019 Virtual Reality Modeling Language (VRML97)
22/31
Node Re-Use
s Objects can be re-usedusing DEF/USE pairs
s DEF a name for a nodewhen it is first being
decsribedUSE a node
whenever a node of thattype is required I.E. if you DEF an
Appearance node thenUSE of that node mustbe in a place that is validfor an Appearance nodeto be
DEF UCL_BOX Shape {
appearance Appearance {
texture ImageTexture {
url ["logo.jpeg"]
}
}
geometry Box {
size 2 2 2
}
}
8/14/2019 Virtual Reality Modeling Language (VRML97)
23/31
DEF/USE Example
#VRML V2.0 utf8
Transform {
translation 0 0 0
children [
DEF UCL_BOX Shape {
appearance Appearance {
texture ImageTexture {
url ["logo.jpeg"]}
}
geometry Box {
size 2 2 2
}
}
]
}
Transform {
translation 0 3 0
children [
USE UCL_BOX
]
}
8/14/2019 Virtual Reality Modeling Language (VRML97)
24/31
Appearance
s Defines the look of some piece of geometry Material
combination of ambient colour, diffuse colour, emmisive colour,shinines,
transparency, specular colour Texture
defines a picture to paste to the object fetch from a URL
supports movies
TextureTransform defines how the picture is applied to the object
8/14/2019 Virtual Reality Modeling Language (VRML97)
25/31
Material Examples
s Material Shiny Material
ambientIntensity 0.3
diffuseColor 0.1 0.7 0.2
specularColor 0.6 0.8 0.6
shininess 0.6 Dull Material
ambientIntensity 0.1
diffuseColor 0.1 0.7 0.2
shininess 0.0
Transparent Material diffuseColor 0.1 0.7 0.2
transparency 0.5
Colour components defined inRGB (red, green, blue triplets)
8/14/2019 Virtual Reality Modeling Language (VRML97)
26/31
Lights
s Provide illumination in the scene
DirectionalLight
PointLight
SpotLights DirectionalLight
light rays travelling in parallel lines e.g. sunlightDirectionalLight {
direction -1 -1 -1
intensity 0.8
}
8/14/2019 Virtual Reality Modeling Language (VRML97)
27/31
Lights
s PointLight
radiate in all directions
s SpotLight
radiate only in certain directions, and with
volumes of different intensity
s SpotLight and PointLight attenuate -
their effect can decrease over distance
8/14/2019 Virtual Reality Modeling Language (VRML97)
28/31
Other Things
s Interaction
s Scripting
Java
JavaScripts Interpolators
s Sensors
s Fog
s Background
s Audio
s Video
s LOD
s Billboard
8/14/2019 Virtual Reality Modeling Language (VRML97)
29/31
LOD
s Switches between two ormore views depending ondistance
s
Nearby ViewBunny1 = ~56K polygons
s Distant View
Bunny2= ~1K polygons
8/14/2019 Virtual Reality Modeling Language (VRML97)
30/31
Billboards
s Billboards object always faces the
viewer
Transform {
translation 0 3 0
children [
Billboard {
children [
USE UCL_BOX
]
}
]
}
8/14/2019 Virtual Reality Modeling Language (VRML97)
31/31
Summary
s VRML97 provides a simply file format to
put 3D objects on the web
sAnimation and scripting are allowed, but
we havent discussed these
s Somewhat restricted model of local
lighting compared to todays graphics
cards