21
Interface Opportunities for 3D Data and Media User Interface Software TechNote Panel Virginia Tech CS Fall 2002 Nicholas F. Polys Umur Yilmaz Will Lee

Interface Opportunities for 3D Data and Media User Interface Software TechNote Panel Virginia Tech CS Fall 2002 Nicholas F. Polys Umur Yilmaz Will Lee

Embed Size (px)

Citation preview

Interface Opportunities for 3D Data and Media

User Interface Software TechNote Panel

Virginia Tech CS Fall 2002Nicholas F. Polys

Umur YilmazWill Lee

‘Deep’ MediaNew display and interaction metaphors are

required.

Features :• 2D and 3D graphics • User interaction: navigation, selection,

manipulation • Hyperlinked data• Animation: Simulation, Scripting • Spatialized audio and video • Networking : Multi-User , DIS • User-defined objects

3D Technotes Overview

• Scenegraph concepts & data • Java3D Toolkit• Xj3D Toolkit• DIVERSE Toolkit

Scenegraphs and File Formats

Scenegraph: directed acyclic graph of nodes connected by events

• Described in file formats such as VRML, X3D, and others

• Model implemented in runtime architectures such as VRML browsers, Xj3D, Java3D, Performer

• interactive controllers and rendered views usually tightly coupled

Interactive Scene Concepts

• Navigate 3D Space• Precomputed or process-driven 3D

models and animations• Pointing, Dragging, and Proximity

Sensors• Hyperlinks, dynamic loading

Cortona Active X object for VRML world:

http://csgrad.cs.vt.edu/~npolys/uisoft/hud3d.wrl

Java3D ToolkitWhat is Java 3D API?• “The Java 3D API is a hierarchy of Java classes

which serve as the interface to a sophisticated 3D graphics rendering and sound rendering system”.

• What can you do?– Imagery :vectors on 3d coordinates and geometry. – Visualizations :light and shadow on the 3D objects. – Interactivity :mouse and keyboard actions. – Animations :interpolating scale, rotation, opacity,

color and path of movement.

Scene Graph

• What is a scene graph?Specification of the program hierarchy of 3D objects in the Virtual Universe

• What is a Simple Universe?Construction of commonly used

objects by instantiating only one class.

Example scene graph showing the simple universe.

Interpolator example

Interpolator example

some coding • public BranchGroup createSceneGraph() { • BranchGroup objRoot = new BranchGroup(); • TransformGroup objMove = new TransformGroup();

• Alpha alpha = new Alpha (-1, Alpha.INCREASING_ENABLE + Alpha.DECREASING_ENABLE, 0, 0, 2000, 0, 1000, 2000, 0, 1000);

• PositionInterpolator posInt = new PositionInterpolator (alpha, objMove);

• TransformGroup objMovePos = new TransformGroup(t3d); objRoot.addChild(objMovePos); objMovePos.addChild(objMove); objMove.addChild(new ColorCube(0.3)); objRoot.addChild(posInt);

• objRoot.compile();

Comments

• How scene graph made use of 3D api easy.

• How easy to program 3D in Java!!

Xj3D Toolkit

Actively developed Open Source, Standards-based, Java implementation

• Scenegraph runtime and loader with some advanced features• Multiple Renderers: Java3D, OpenGL• Customize and Integrate with other

applications as a Swing Component

Java Swing UI+ VRML file

loader:

• Frame• Panels• Multiple Canvases

and Overlays• Buttons• Multitexturing

Xj3D–

Do It Yourself Browser

XSLTTransformations • XML -> X3D• X3D -> .*EAIJava events can be

sent in and out of scenegraph

SAI integration

through the DOM Xj3D –

XSLT Viewer

DIVERSE Toolkit• Multiple display devices (e.g., HMD,

CAVE, desktop etc.)• DPF (graphics component)• DTK (core component)• FLTK

Courtesy of the Virginia Tech.’s DIVERSE team

DIVERSE Toolkit

• Remote collaboration using remote shared memory

• Dynamically Shared Objects (DSOs) Built-in User-defined “Hot swap” Easy to load

A collaboration example

DIVERSE’s DSOs

• Loadable modules built as C++ shared objects

• Extend/inherit from DTK or DPF

A rotating truck loaded from a DSO

3D Discussion: Opportunities and Issues

• Spatial abililties• Interactive Affordances• Learning curve• Data Access• UIMSs ?