Interface Opportunities for 3D Data and Media User Interface Software TechNote Panel Virginia Tech...
-
Upload
joseph-jackson -
Category
Documents
-
view
213 -
download
0
Transcript of Interface Opportunities for 3D Data and Media User Interface Software TechNote Panel Virginia Tech...
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
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
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.
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();
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