Einführung in die Erweiterte Realität - 4. VRML - Gudrun Klinker Nov 11, 2003

Similar documents
Topics. Overview of VRML 97 VRML Today After VRML

CT336/CT404 Graphics & Image Processing. Animation and Interactivity (X3D, Canvas)

VRML for Visualization

Introduction to Virtual Environments - Spring Wernert/Arns. Lecture 4.2 Animation & Interaction

VRML++: A Language for Object-Oriented Virtual-Reality Models

Computer Graphics - Week 8

2.5 Animations. Applications. Learning & Teaching Design User Interfaces. Content Process ing. Group Communi cations. Documents.

2.5 Animations. Contents. Basics. S ystem s. Services. Usage. Computer Architectures. Learning & Teaching Design User Interfaces.

VRML FOR URBAN VISUALIZATION

Extending VRML by One-Way Equational Constraints

Virtual Reality Modeling Language

Multimedia Signals and Systems Virtual Reality and VRML

X3D Geospatial Component

Review of VRML and WWW Techniques

AN INTERACTIVE LAND USE VRML APPLICATION (ILUVA) WITH SERVLET ASSIST. Lee A. Belfore, II Suresh Chitithoti

Using The EAI The process of using the EAI is best understood through example. Simplifying a bit, the overall process goes as follows:

Virtual Reality & Physically-Based Simulation

Image-based photorealistic 3D models for virtual museum exhibitions

DRAPED AERIAL PHOTOS AND 3D GIS ON THE INTERNET

Shadow Maps and Projective Texturing In X3D

High Dynamic Range Image Texture Mapping based on VRML

VirMuF Manual V 0.5 1

VISUALIZING OPTIMIZER

Computergrafik SS 2016 Oliver Vornberger. Vorlesung vom Kapitel 23: 3D im Web

Getting Started with X3D

MPEG-4 AUTHORING TOOL FOR THE COMPOSITION OF 3D AUDIOVISUAL SCENES

Topics and things to know about them:

Graphics for VEs. Ruth Aylett

Grouping Nodes. X3D Graphics for Web Authors. Chapter 3

Introductory element Main element Part n: Projective Texture Mapping

Data Flow Languages for Immersive Virtual Environments

Computer Graphics I Lecture 11

VSPLUS: A High-level Multi-user Extension Library For Interactive VRML Worlds

Virtual Intelligent. Environments

3D on the WEB and Virtual Humans

Actions and Graphs in Blender - Week 8

BCC Sphere Transition

X3D - Texture, Material Properties, Artificial Light Models -

Realistic Sailing a Virtual Ocean

move object resize object create a sphere create light source camera left view camera view animation tracks

Overview. Contents. About Cosmo Worlds. Navigating Help. Conventions Used

Computer Graphics 1. Chapter 2 (May 19th, 2011, 2-4pm): 3D Modeling. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2011

Animation Basics. Learning Objectives

Modeling the Virtual World

A simple OpenGL animation Due: Wednesday, January 27 at 4pm

VRML History: Storing And Browsing Temporal 3D-Worlds

Computer Graphics 1. Chapter 9 (July 1st, 2010, 2-4pm): Interaction in 3D. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2010

CS451Real-time Rendering Pipeline

Index. Symbols. aural environment 269

Multimedia Production and Web Authoring

Grouping Nodes. X3D Graphics for Web Authors. Chapter 3

Graphics for VEs. Ruth Aylett

Pick up a book! 2. Is a reader on screen right now?! 3. Embedding Images! 3. As a Text Mesh! 4. Code Interfaces! 6. Creating a Skin! 7. Sources!

CHAPTER 1 Graphics Systems and Models 3

Texture. Texture Mapping. Texture Mapping. CS 475 / CS 675 Computer Graphics. Lecture 11 : Texture

CS 475 / CS 675 Computer Graphics. Lecture 11 : Texture

Maya tutorial. 1 Camera calibration

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

RESEARCH ON APPLICATION OF 3D MODELING TECHNIQUE BASED ON NETWORK IN DRAWING EDUCATION

Introduction to X3D. Roberto Ranon HCI Lab University of Udine, Italy

3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models

INTEGRATING MPEG-4 MEDIA IN THE CONTEXT OF HTML5 TECHNOLOGIES DIONISIOS KLADIS. B.A., Technological Educational Institute of Crete, 2010 A THESIS

The Virtual Reality Modeling Language and Java

A Short Introduction to POV-Ray

Computer Graphics: Introduction to the Visualisation Toolkit

Spatial Data Structures

A WEB-BASED INTERACTIVE TEACHING PACKAGE IN MANUFACTURING ENGINEERING

In this tutorial, you will create a scene with sandman dispersing in sand, as shown in in the image below.

Spatial Data Structures

Interactive Authoring Tool for Extensible MPEG-4 Textual Format (XMT)

Speeding up your game

Deceleration 141 Deep Sensation 218 Design Considerations 191 Device Coordinate System 12 Diffuse Reflection 119 Digital to Analog Converter 12

Ray Tracer Due date: April 27, 2011

VRML PROGRAMS FOR ROOM VENTILA non APPLICA nons

SimLab plugin for 3DS Max. SimLab Plugin for 3DS Max

Generation of 3D Models from Stereo-Digitized Vertex Points CE 503 Photogrammetry I Fall 2006, Updated Fall 2007

Homework #2. Shading, Projections, Texture Mapping, Ray Tracing, and Bezier Curves

Avid FX Tutorials. Understanding the Tutorial Exercises

Cortona Movie Maker 1.0

BSc Computing Year 3 Graphics Programming 3D Maze Room Assignment Two. by Richard M. Mann:

Reference Manual. WireFusion 5. Volume II: 3D Reference

Computer Graphics. Illumination Models and Surface-Rendering Methods. Somsak Walairacht, Computer Engineering, KMITL

Creating the Tilt Game with Blender 2.49b

Spatial Data Structures

Working with the BCC Bump Map Generator

Analog Clock. High School Math Alignment. Level 2 CSTA Alignment. Description

Deferred Rendering Due: Wednesday November 15 at 10pm

Chapter 10. Surface-Rendering Methods. Somsak Walairacht, Computer Engineering, KMITL

Adapting VRML For Free-form Immersed Manipulation

4) Finish the spline here. To complete the spline, double click the last point or select the spline tool again.

SPACE - A Manifold Exploration Program

Shading and Texturing Due: Friday, Feb 17 at 6:00pm

Computer Graphics Ray Casting. Matthias Teschner

informatory frame VRML browser window Java applet

Working with the BCC Brick Generator

3D Modeling Course Outline

LECTURE 4. Announcements

A Vrml97-X3D Extension for Massive Scenery Management in Virtual Worlds

Modeling Technology Group

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project

Transcription:

Einführung in die Erweiterte Realität - 4. VRML - Gudrun Klinker Nov 11, 2003

Agenda 1. General information on VRML 2. Basic concepts: minimal VRML worlds 3. Combination of several objects 4. Model reusability 5. Levels of detail 6. Animation 7. Anchor points 8. Sensors 9. Scripts

1. General Information on VRML The VRML repository: http://www.web3d.org/vrml/vrml.htm Browsers und plug-ins: e.g. Cosmo Player http://www.cai.com/cosmo/home.htm Book (excerpts only): VRML 2.0 Source Book, Andrea L. Ames, David R. Nadeau and John L. Moreland, 2nd Edition, Wiley & Sons, 1996. ISBN 0-471-16507-7 <Chap. 1>

VRML-Models in the WWW http://www.web3d.org/vrml/oblib.htm http://www.rdservice.de/german/produkte/vrcreator/library/vrlibrary.htm http://home.t-online.de/home/kiwano6/models.htm http://www.rccad.com/gallery.htm for recent demos and examples, see http://wwwbruegge.in.tum.de/people/klinker/mmt/einfuehrungen/vrml/ http://wwwbruegge.in.tum.de/teaching/ss00/ar/vrml/

2. Basic Concepts: Minimal VRML worlds

VRML Files ASCII Files: <my_world>.wrl VRML header: #VRML V2.0 utf8 Comments: # Nodes: Shapes, transformations, timers, interpolators, sensors, scripts,... Routes <Chap. 2>

Object Descriptions in VRML Nodes (nested, grouped) with Fields and Field Values of specified Field Value Types Inputs and Outputs Bounding Boxes Examples: Shape nodes Shape { appearance SFNode, geometry SFNode } Other nodes: transformations, timers, interpolators, sensors, scripts, <Chap. 2, 3>

Geometry Nodes - Cylinder - #VRML V2.0 utf8 #VRML V2.0 utf8 # default cylinder Shape { geometry Cylinder { } # Cylinder } # Shape # cylinder of specified size Shape { geometry Cylinder { height 4.0 radius 2.0 } # Cylinder } # Shape

Geometry Nodes - Box, Sphere - #VRML V2.0 utf8 #VRML V2.0 utf8 # box of specified size Shape { geometry Box { size 2.0 1.0 4.0 # dx,dy,dz } # Box } # Shape # sphere of specified radius Shape { geometry Sphere { radius 2.5 } # Sphere } # Shape

Geometry Nodes - Cone, Text - #VRML V2.0 utf8 # cone of specified size Shape { geometry Cone { bottomradius 5.0 height 1.5 } # Cone } # Shape #VRML V2.0 utf8 # text of specified font Shape { geometry Text { string [ Hello World, Cheers ] fontstyle FontStyle { family SERIF style BOLD size 0.5 justify MIDDLE } } # Text } # Shape

Geometry Nodes - Point Sets, Indexed Line Sets - #VRML V2.0 utf8 #VRML V2.0 utf8 # set of 3D points Shape { geometry PointSet { coord Coordinate { point [ 0.0 0.0 0.0, # index 0 0.0 1.0 0.0, # index 1 1.0 1.0 0.0, # index 2 1.0 0.0 0.0 # index 3 ] # point } # Coordinate } # PointSet } # Shape # set of line indices Shape { geometry IndexedLineSet { coord Coordinate {.} coordindex [ 0, 1, 2, -1, 0, 2, 3 ] # coordindex } # IndexedLineSet } # Shape

#VRML V2.0 utf8 Geometry Nodes - Indexed Face Sets - # set of line indices Shape { geometry IndexedFaceSet { coord Coordinate {.} coordindex [ 0, 1, 2, -1, 0, 2, 3 ] # coordindex } # IndexedLineSet } # Shape

Appearance Nodes - Materials/Colors- #VRML V2.0 utf8 Shape { geometry SFNode, appearance Appearance { material Material { ambient Intensity 0.2 diffuse Color 0.8 0.8 0.8 specular Color 0.0 0.0 0.0. } # Material texture SFNode texturetransform SFNode } # Appearance } # Shape

3. Combination of Several Objects Inlining of other files Inline {url [...,...],...} Geometric Transformations Transform { children [...] translation......... rotation............ scale......... } <Chap. 12> <Chap. 5-7>

Geometric Transformations - Box, Sphere - #VRML V2.0 utf8 # cross in xz-plane; translated in x-direction, rotated 45 deg around y-axis Transform { children [ Shape { geometry Box { size 1.0 1.0 4.0 } } # Box1 Shape { geometry Box { size 4.0 1.0 1.0 } } # Box 2 ] translation 10.0 0.0 0.0 rotation 0.0 0.0 1.0 0.785 # in radians; pi/4= 45 degrees scale 1.0 0.1 1.0 } #Transform

Example: Sphere plus Cylinder #VRML V2.0 utf8 utf8 # 1. Object Inline { Inline {url "sphere.wrl"} url "sphere.wrl" } # Inline sphere # 2. Object Transform { translation 0.0 2.0 0.0 rotation 0.0 0.0 1.0-0.524 # radians; 30 degrees children [ Inline {url "cylinder-c.wrl } ] } # Transform

Example: Blocks World (Baufix) Used as library for further demos #VRML V2.0 utf8 Transform { translation -6.0 0.5 0.0 children [ Inline {url "yellow-box1.wrl"} ] } # Transform Transform { translation -4.5 1.0 0.0 children [ Inline {url "blue-box2.wrl } ] } # Transform...

4. Model Reusability Reuse of Objects Inlining DEF and USE Multiple Use of Groups of Objects Groups DEF Green-Box3 Inline {url "../blocksworld/green-box3.wrl } # Inline cylinder... USE Green-Box3 Group { children [... ]... } <Chap. 2> <Chap. 3, 11>

Example: Replicated Model DEF Rep-Structure Group { children [ DEF Baufix-Structure Inline {url "structure-group.wrl } # 1. structure Transform { # replicated structure translation 0.0 0.0-2.0 children [USE Baufix-Structure] } # Transform 2. Structure #... Further structures... ] # children } # group Transform { translation 5.0 0.0 0.0 children [USE Rep-Structure] # replicated group }

5. Level of Detail Geometric objects with varying amounts of complexity selective presentation depending on the distance between the viewer and the object center LOD { center 0.0 0.0 0.0 range [7.5 15.0] level [ Inline {url obj-highdetail.wrl } Inline {url obj-mediumdetail.wrl } Inline {url obj-lowdetail.wrl } ] } <Kap. 25>

6. Keyframe Animation VRML: linear Interpolation between n key frames PositionInterpolator { key [0.0 0.3 0.55] keyvalue [ 0.0 0.0 0.0 1.0 0.0 0.0 3.5 3.5 0.0 ] set_fraction value_changed } OrientationInterpolator { key [0.55 0.6 1.0] keyvalue [ 0.0 0.0 1.0 0.0 0.0 0.0 1.0 1.571 0.0 0.0 1.0 6.284 ] set_fraction value_changed }

ROUTEs Connections between nodes in order to forward events DEF T TimeSensor { enabled fraction_changed } ROUTE T.fraction_changed TO P.set_fraction ROUTE P.value_changed DEF P PositionInterpolator { key [...] keyvalue [ ] set_fraction value_changed } TO O.set_translation DEF O Transform { translation... rotation children [ shape { geometry... } ] }

7. Anchors Transition from one world into another (and back) via Anchors. (e.g.: Dungeon Worlds, different levels) Anchor { url [,...,...] children [ ] description... } <Kap. 28>

Anchors for AR hot-spots as a 3D menu (e.g.: next to a real object) supplying dynamic, stepwise construction information contained within the virtual models, providing additional information for specific object parts contained within the virtual models, providing alternate object presentations embedded as virtual camera symbols within the scene, representing alternate (video-based) views of the scene (--> tele-presence)

8. Sensors Sensors for various interaction modes: cursor position (TOUCH): isover, isactive DEF Touch-Green TouchSensor{} ROUTE Touch-Green.touchTime TO Clock.set_startTime cursor motion (MOTION) CylinderSensor PlaneSensor SphereSensor DEF Spin-Cylinder SphereSensor{} ROUTE Spin-Cylinder.rotation_changed TO Red-Cylinder2- b.set_rotation when nested sensors are used, the innermost is selected several modi for progress (Offsets) <Kap. 9>

More on Sensors Viewer proximity (for cursor motion) visibility VisitilitySensor{} viewer proximity ProximitySensor{} viewer collision Collision node DEF MyCollision Collision { children [] collide TRUE } ROUTE MyCollision.collideTime TO OuchSound.set_startTime... <Kap. 27>

9. Skripts Connection VRML -> Java for generating more complex behavior complex motion paths of objects (e.g., modelling a realistic walking motion) intelligent reactions of objects communication in distributed systems (e.g., for multi-player games) <Kap. 30>

Skripts Example: Motion Interpolator VRML: DEF Mover Script { url "move1.js" eventin SFFloat set_fraction eventout SFVec3f value_changed }... ROUTE Clock.fraction_changed TO Mover.set_fraction ROUTE Mover.value_changed TO Red-Cylinder2-b.set_translation Java file (move1.js): // move a shape in a sinusoidal path function set_fraction (fraction,eventtime) { value_changed[0] = 6.0 + Math.sin (fraction * 6.28); // x component value_changed[1] = -2.0; // y component value_changed[2] = -2 +fraction*4; // z component }