Download presentation
Presentation is loading. Please wait.
Published byJoseph Jackson Modified over 9 years ago
1
Interface Opportunities for 3D Data and Media User Interface Software TechNote Panel Virginia Tech CS Fall 2002 Nicholas F. Polys Umur Yilmaz Will Lee
2
‘Deep’ Media New 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
3
3D Technotes Overview Scenegraph concepts & data Java3D Toolkit Xj3D Toolkit DIVERSE Toolkit
4
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
5
Interactive Scene Concepts Navigate 3D Space Precomputed or process-driven 3D models and animations Pointing, Dragging, and Proximity Sensors Hyperlinks, dynamic loading
6
Cortona Active X object for VRML world: http://csgrad.cs.vt.edu/~npolys/uisoft/hud3d.wrl
7
Java3D Toolkit What 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.
8
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.
9
Example scene graph showing the simple universe.
10
Interpolator example
13
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();
14
Comments How scene graph made use of 3D api easy. How easy to program 3D in Java!!
15
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
16
Java Swing UI + VRML file loader: Frame Panels Multiple Canvases and Overlays Buttons Multitexturing Xj3D– Do It Yourself Browser
17
XSLT Transformations XML -> X3D X3D ->.* EAI Java events can be sent in and out of scenegraph SAI integration through the DOM Xj3D – XSLT Viewer
18
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
19
DIVERSE Toolkit Remote collaboration using remote shared memory Dynamically Shared Objects (DSOs) Built-in User-defined “Hot swap” Easy to load A collaboration example
20
DIVERSE’s DSOs Loadable modules built as C++ shared objects Extend/inherit from DTK or DPF A rotating truck loaded from a DSO
21
3D Discussion: Opportunities and Issues Spatial abililties Interactive Affordances Learning curve Data Access UIMSs ?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.