460 likes | 948 Views
VRML. Virtual Reality Modeling Language. What Are We Going to See?. What is VRML? Syntax of the language Features Examples. Credits. Most of the demos Are based on demos from “Floppy's VRML Guide - VRML97 Tutorial”
E N D
VRML Virtual Reality Modeling Language
What Are We Going to See? • What is VRML? • Syntax of the language • Features • Examples
Credits Most of the demos Are based on demos from “Floppy's VRML Guide - VRML97 Tutorial” The demos are localy saved to increase efficiency end accessibility. The originals and many more can be found in : http://www.vapourtech.com/vrmlguide
A Bit Of History • In the beginning there was VRML 1.0. • It was the first attempt at an internet 3D language. • VRML 2.0 replaced VRML 1.0 and add many features (animation). • Version 2.0 was submitted to ISO for standardization, the outcome was VRML97 which is almost identical to VRML 2.0.
Technical Stuff - Viewing • In order to see VRML worlds, we need to install a VRML browser (or player). • Internet Explorer comes with a default VRML browser, and almost all other internet browsers can install one.
Technical Stuff - Editing • VRML can be edited by any text editor. • There are many available VRML editors (with context highlighting). • For more complex worlds, 3D modeling programs can be used and the result can be translated to VRML. • The basic output file format is TEXT, but the browsers can read compressed files (compressed with gzip).
Demo!! • This is a simple demo to demonstrate basic features of the VRML environment
VRML Syntax • Each VRML file must start with the comment line:
Basics • VRML world is made out of nodes, which are types of objects. • Inside the nodes there are fields which are properties of the node and have a Default. • A node structure is : NodeName { filedName value }
Nodes Cont. • Nodes can be nested:
Some Important Nodes • Lets look at this simple code: Node Node Fields WHAT IS THIS: Fields Node
Transformations: • Regular affin transformations: • Translation • Rotation • Scaling • Direction of the axes are standard • Every thing works by the right hand rule
Apperence: • Appearance node can have two fields: • material • texture
Materials: • The material field can have a Material node. • The material node can have these fields: • diffuseColor. • The normal color of the object. • specularColor. • The color of highlights on shiny objects.
Materials: • emissiveColor. • The object 'glows' with a light of its own of this color. It doesn't cast light on any other objects though. • ambientIntensity. • The amount of ambient light that the object reflects. • shininess. • How reflective the object is. • transparency. • How transparent the object is. Note, some browsers will not support partly-transparent objects.
Textures: • appearance field can specify a texture. • There are several types of textures. • Image textures: defined by a jpg files. • Movie textures: defined by a mpg file. • Pixel textures: user defined textures.
Other Basic Shapes: • Box • Cylinder • Cone • Sphere • Text
Cameras & Viewpoints • We can set many viewpoints to our world. • A viewpoint is defined by : • position : [z,y,z] coordinates of the camera. • orientation : were the camera looks at ( [x,y,z] =axes + angle of rotation). • fieldOfView: angle in radians between 0 and pi. • description : name of the viewPoint. • Some VRML browsers allow specification of entrance camera in the link to the world: world.wrl#CAM1
Background & Fog • Background of the world can be set in two ways: • Map a texture over a surrounding box. • Define a gradient of sky & ground around the center. • Fog enables creating the allusion of distance.
Sound { SFVec3f direction 0 0 1 SFFloat intensity 1 SFVec3f location 0 0 0 SFFloat maxBack 10 SFFloat maxFront 10 SFFloat minBack 1 SFFloat minFront 1 SFFloat priority 0 SFNode source NULL SFBool spatialize TRUE } Sound Node
Sound Node Cont. direction Min back Min Front Max Front Max back
AudioClip { SFString description "" SFBool loop FALSE SFFloat pitch 1.0 SFTime startTime 0 SFTime stopTime 0 MFString url [] } AudioClip Node
Objects of Desire • We can build objects other than the three default shapes by specifying coordinates of the vertexes. • Specify coordinates: • Specify Normals: • Specify direction:
Lighting • There are three kinds of lights in VRML: • Directional Light: A light with no specific location in space only a direction. (gives a sun effect). • Point Light: A light that have a specific location and shines evenly to all directions. • Spot Light: A light with a specific location that shins in a set angle to a specific direction.
Spot Light: Beam width Spot Light Cutoff angle Direction
Dynamic Worlds • We can specify to the browser what Navigation capabilities the user will have: • Walk • Examine • None
Events & Routes • Most nodes contain events. • If a field in a node is exposed, the node has two defined events for it: • Set_fieldName – used to set the value of the field. • fieldName_changed – generated when the value was changed. • The ‘set’ and ‘changed’ can be left out. • Not all fields are exposed.
Touch time Route Start time Events & Routes • A ROUTE wires two events together. Touch Node Sound Node DEF SENSOR TouchSensor { } DEF SOUND Sound { } ROUTE SENSOR.touchTime TO SOUND.startTime
Sensors • There are several types of sensors in VRML: • Time Sensors • Visibility sensors • Collision Sensors • Proximity Sensors • Touch Sensors • Sphere Sensors • Cylinder Sensors • Plane Sensors
Interpolators • Used to interpolate between key values • Several kinds of interpolators: • Color • Orientation • Coordinate • Normal • Position • Scalar
Bounded Nodes • We can bind some nodes to values in other • Background • Fog • NavigationInfo • Viewpoint
Programming!? • Real animation must include some sort of programming. • VRML accepts two kinds of programs: • JAVA. • JavaScript. • The script node can receive end send events very easily.
JAVA • In order to use Java instead of JavsScript all we need to do is to write the appropriate class and include it in the script node: Script { url "NewScript.class" }
Bibliography • Floppy's VRML Guide - VRML97 Tutorial • WEB3D CONSORTIUM – • http://www.vrml.org/ • VRML97 Specification, ISO-IEC 14772-11997 • http://www.vrml.org/technicalinfo/specifications/vrml97/index.htm • Biota.org - Creatures Gallery – • http://www.biota.org/gallery/index.html