Cosmo 3D

From Higher Intellect Wiki
Jump to: navigation, search

3D.t.sml.gif
SpikeNS3.gif

Cosmo 3D brings Silicon Graphics' expertise in real-time, interactive 3D graphics to the Internet and the desktop for mainstream Personal Computers and Workstations.

CosmoTM 3D is a VRML 2.0 Software Development Kit (SDK) and is part of Silicon Graphics' CosmoTM line of sofware solutions for the Web. Cosmo 3D is a C++ application programming interface (API) designed to support high performance, interactive, and real-time 3D graphics applications across a range of platforms from PCs to Workstations.

3D Toolkit for VRML 2.0

Cosmo 3D provides support for all the semantics of VRML 2.0, including fields, events, and routes. Objects and methods are available for reading, writing, and rendering VRML files in addition to the classes necessary for building animation and gaming applications such as morphing nodes, which, for example, would enable real-time facial animation for computer generated characters (see insert).

3D Toolkit for JavaTM and the Internet

Cosmo 3D is a graphics library which supports Java3DTM and provides an efficient Java binding between a Java application and the natively-compiled Cosmo 3D libraries. Java3D was defined through a joint effort by Apple, Intel, Silicon Graphics, and Sun Microsystems.

Built on Industry Standards

Cosmo 3D has been designed to be independent of the underlying rendering architecture. To achieve the highest performance and the broadest platform acceptance, it has been implemented on top of OpenGL®. For unaccelerated, mainstream PC users running WindowsTM 95 or Windows TM NT, Cosmo 3D uses CosmoTM GL, a complementary special implementation of OpenGL tuned specifically for maximum software-rendering performance on the PC. Cosmo GL for the PC is available directly from Silicon Graphics (See http://www.sgi.com/Technology/OpenGL).

3D Audio and Graphics Features

  • Rendering of 3D polygons, lines, points, text, and sound
  • Texturing, lighting, transformations, and transparency
  • Retained graphics objects that can be rendered individually or as part of a scene graph
  • A scene graph that maintains geometry, graphics state, sound, and a transformation hierarchy
  • Immediate mode management of graphics state
  • Rendering optimizations including level-of-detail (LOD) and culling
  • Synchronization of animations, video textures, and audio
  • Linear algebra and geometric math primitives
  • Morphing and transformation engines for sophisticated character animation
  • Intersection and pick testing
  • Engines that can drive and be driven by object attributes ("fields")
  • Reads and writes VRML 2.0 files

Cosmo 3D Contents (All classes accessible from C++ and JavaTM)

Inheritance and Class Hierarchy

  • Base - Abstract base class for all Cosmo 3D classes which contain fields
  • FieldSpec - Specifies the fields of a class by listing the fields that an instance of the class contains
  • Clock - Implements a clock object

Fundamentals

  • Scene Graph - A directed acyclic graph (DAG) of nodes which represent a database
  • Node - The abstract base class for objects which may be connected in a scene graph
  • Fields - Simple data types that define the persistent state of an object

Graphics State

  • Context - Manages state of rendering engine
  • Appearance - Encapsulates the graphics modes and attributes that define the appearance of geometry
  • Material - Defines the light reflectance characteristics of a surface
  • Texture - Defines an image which may be applied to a surface for increased realism
  • TexTransform - Defines a transformation matrix for texture coordinates
  • TexGen - Automatically generates texture coordinates from geometry's vertex coordinates

Geometry

  • Geometry - The abstract base class for geometric primitives
  • GeoSet - A collection of like primitives
  • PointSet - A collection of equally-sized points
  • LineStripSet - A collection of linestrips (polylines) of equal width
  • TriStripSet - A collection of triangle strips
  • PolySet - A collection of polygons
  • IndexedFaceSet - A VRML 2.0 set of polygons
  • IndexedLineSet - A VRML 2.0 set of polylines
  • Sprite - A rectangle which is rotated to face the viewer
  • Text3D - 3 dimensional text class

Grouping Nodes

  • Group - A Node which may have other Nodes as children
  • Switch - A Group which selects none, one, or all of its children depending on its value
  • LOD - A Switch which selects amongst its children based on its distance from the eyepoint
  • Transform - Defines a 3D, non-projective transformation which applies to all its children
  • Billboard - A Group that rotates to face the viewer
  • Environment - A grouping node which defines the scope and effect of Light and Fog

Leaf Nodes

  • Shape - A leaf node which associates a Geometry with an Appearance
  • Light - An abstract base class for light sources
  • DirectionalLight - A directional light source whose origin is at infinity
  • PointLight - A point light source which radiates equally in all directions
  • SpotLight - A conical spotlight
  • Fog - Defines the atmospheric attenuation of light
  • Sound - Defines the spatial location for a sound in the scene graph

Engines

  • Script - A VRML Script Engine
  • Spline - Interpolates an arbitrary, non-uniform spline and outputs a weight array
  • MorphVec - An Engine that produces a weighted sum of attribute sets
  • TransformVec - An Engine that transforms a set of coordinates
  • TexPlayer - A media player Engine

Sensors

  • CylinderSensor - Maps pointer device motion to a rotation on an invisible cylinder
  • PlaneSensor - Maps pointer device motion into translation in two dimensions
  • ProximitySensor - Generates events when entering, exiting, or moving within a box region
  • SphereSensor - Maps pointer device motion into spherical rotation about a center point
  • TimeSensor - Generates events as time passes
  • TouchSensor - Generates events as the pointing device passes over descendant geometry

Sound

  • Voice - Contains state information about how a Sound should be played
  • AudioClip - Contains actual sound bytes in a specified format

Traversals Action - An abstract traversal that maintains state and transformation stacks

  • DrawAction - Renders a subgraph
  • IsectAction - Intersects a set of line segments with a subgraph
  • CompileAction - Optimizes a specified subgraph for more efficient traversal

Cameras and Viewing

  • Viewport - Defines the portion of a graphics window which is used for rendering
  • Camera - An abstract base class that defines the viewing parameters used when rendering
  • OrthoCamera - Defines an orthographic projection
  • PerspCamera - Defines a perspective projection whose frustum is symmetric

Basic Classes

  • BitMask - A collection of bits settable individually or as a range
  • Data - A raw, untyped storage similar in spirit to void *
  • Array (Template) - Optionally Interleaved array classes
  • List (Template) - Implements a List
  • Vec2f - A 2 element floating point vector
  • Vec3f - A 3 element floating point vector
  • Vec4f - A 4 element floating point vector
  • Matrix4f - A 4x4 floating point matrix
  • Name - A descriptive string Rotation - Axis-amount respresentation of a rotation
  • Bound - Abstract bounding volume
  • BoxBound - A rectangular solid bounding volume
  • SphereBound - A Spherical bounding volume
  • Frustum - Truncated primitive used for culling
  • Seg - Line segment used for intersection

Geometry Attribute Collection

  • CoordSet - A set of coordinates bound to geometry
  • NormalSet - A set of normals bound to geometry
  • ColorSet - A set of colors bound to geometry
  • TexCoordSet - A set of texture coordinates bound to geometry
  • IndexSet - An optional set of indices for indirection into an attribute collection

Field Types

  • Single Item Fields - Single-valued field types that can be wired. SFDouble, SFEnum, SFRef, SFString, SFInt, SFFloat, SFVec2f, SFVec3f, SFVec4f, SFBitMask, SFName, SFMatrix4f, SFRotation
  • Multiple Item Fields - Multi-valued field types that can be wired. MFRef, MFString, MFInt, MFFloat, MFMatrix4f, MFVec2f, MFVec3f, MFVec4f, MFRotation

Java and Java3D are trademarks of Sun Microsystems. Cosmo 3D and Cosmo OpenGL are trademarks of Silicon Graphics, Inc. OpenGL is a registered trademark of Silicon Graphics, Inc.



Share your opinion