1GR2-00 GR2 Advanced Computer Graphics AGR Lecture 10 VRML - An Introduction
2GR2-00 Good Ideas are Simple n Realization 1: – Hypertext + Internet = World Wide Web n Realization 2: – Adding images makes pages more interesting n Realization 3: – Images are pictures taken by the publisher - why not send 3D scenes and allow the user to take the picture! n VRML: Virtual Reality Modelling Language – a language to describe 3D worlds - for the Web
3GR2-00 World Wide Web Pages AUTHORING PROCESS HTML file server INTERNET client WEB BROWSER text/ html.html MIME type
4GR2-00 VRML AUTHORING PROCESS VRML file server INTERNET client VRML BROWSER x-world/ x-vrml.wrl Major browser: CosmoPlayer
5GR2-00 Advantages of VRML n Transferring a 3D model - rather than a 2D image - to the browser has great advantages – viewer can choose how to look at the model - or world – viewer can navigate the world – file size can often be much less
6GR2-00 How Did It All Begin? n Original brainwave – Mark Pesce and Tony Parisi - early 1994 – vision of a VR interface to the Web n VRML 1.0 – practical realisation based on Open Inventor (Silicon Graphics toolkit - similar to OpenGL but higher level) – Open Inventor file format PLUS hyperlinks – static, non-interactive worlds – Gavin Bell (SGI) - late 1994
7GR2-00 Where are we now? n VRML97 dynamic – adds object behaviours and interaction to allow creation of dynamic worlds – ISO standard - December 1997 – Gavin Bell, Rikk Carey (ex-SGI) and Chris Marrin (SGI) n 2000 – being reworked as XML (X3D) – many new developments
8GR2-00 A VRML File VRML file consists of: n header n nodes – objects such as cylinders and spheres – operations such as transformations n fields – parameters of nodes #VRML V2.0 utf8 Shape { geometry Cylinder { radius3 height6 } }
9GR2-00 As Seen By A Browser #VRML V2.0 utf8 Shape { geometry Cylinder { radius2 height4 }
10GR2-00 Adding Colour to the Scene #VRML V2.0 utf8 Shape { geometry Cylinder { radius2 height4 } appearance Appearance { material Material { diffuseColor specularColor1 1 1 } }
11GR2-00 Co-ordinate Systems n Each node is drawn within its own local co-ordinate system.. x z y
12GR2-00 Modelling Transformations n...and can be subjected to a modelling transformation to scale, rotate, translate n Transform is a VRML node - treated just like an object n It applies to a group of children nodes #VRML V2.0 utf8 Transform{ scale children [ Shape { geometry Cylinder { radius2 height4 } appearance Appearance { material Material { diffuseColor specularColor1 1 1 } } } ] }
13GR2-00 Hierarchical Structure #VRML V2.0 utf8 Transform{ scale children [ Shape { geometry Cylinder { radius2 height4 } appearance Appearance { material Material { diffuseColor specularColor1 1 1 } } } ] } TRANSFORM SHAPE parent child
14GR2-00 Hierarchical Structure n This generalises to allow nodes to appear in a hierarchy scene graph n This is known as the VRML scene graph TRANSFORM SHAPE TRANSFORM SHAPE
15GR2-00 Transformations n Here we see Cylinder, Sphere and Cone nodes n Each has been subjected to a modelling transformation in order to position them
16GR2-00 Instances n A node can be given a name and then used multiple times - with different transformations applied to each n DEF kwb Shape {...} gives it a name n USE kwb allows it to be included at other points in the scene graph
17GR2-00 Anchors n A piece of geometry can act as a link to another URL
18GR2-00 Textures n Texture mapping: Images can be mapped to geometry to provide texturing n VRML looks like: Shape{ geometry Sphere { } appearance Appearance{ texture ImageTexture{ url
19GR2-00 Polygonal Surfaces n The general primitive for drawing polygonal surfaces is: – IndexedFaceSet – coord field lists the points – coordIndex describes the polygons Shape{ geometry IndexedFaceSet { coord Coordinate { point [ , , … ] } coordIndex [ , , …] }
20GR2-00 Lights n VRML includes: – DirectionalLight – PointLight – SpotLight n Note # sign is a comment Example: PointLight{ onTRUE intensity0.75 color1 0 0 #red location0 0 0 radius100 }
21GR2-00 Viewing n Specified via the Viewpoint node n VRML file can have a number of Viewpoint nodes - browsers allow a user to jump from one viewpoint to another n Orientation = axis + angle of rotation Example: Viewpoint { position0 0 5 orientation descriptionfrontview }
22GR2-00 Other Basic Features n Inline node – incorporate VRML code from another url compose – this allows us to compose large worlds from many smaller ones n Level of Detail – different geometric representations depending on distance
23GR2-00 Information About VRML n Web3D Consortium – – links to specifications and resources n Web3D Information – n Leeds University VRML/Java3D Information Centre – n VRML Repository –
24GR2-00 n Range of books now available – The VRML 2.0 Handbook (Addison Wesley) Jed Hartman and Josie Wernecke – The Annotated VRML Reference Book (Addison Wesley) Rikk Carey and Gavin Bell n Tutorials include: – Floppys guide: Books and Tutorials