Platform independent application program interface for interactive 3D scene management
First Claim
1. A computer-readable medium having stored thereon an applications programming interface for causing a computer system to render a three-dimensional scene according to a downloaded file, the applications programming interface comprising:
- a plurality of objects, obtained from a Virtual Reality Meta Language (VRML) file downloaded from a network and stored in memory, which are used in constructing a scene graph, the plurality of objects comprising a plurality of hierarchical classes including a top level hierarchy having a context class, an action class, a field spec class, and a base class;
a plurality of subclasses, wherein the action class includes a draw action, a compile action, and an intersect action subclass, the base class includes a clock, color, appearance, node, material, texture, texture transformaton, coordinate, normal, texture coordinate, viewport, camera, engine, and geometry subclass;
a plurality of fields corresponding to the objects, wherein a field is comprised of a data type and represents a state of an object; and
a plurality of routes for changing fields in response to changes made to a second field.
3 Assignments
0 Petitions
Accused Products
Abstract
A computer-readable medium having stored thereon an applications programming interface for causing a computer system to render a three-dimensional scene according to a downloaded file. A scene graph is constructed from a number of objects stored in memory. These objects have variables which can be changed by subroutine calls. Furthermore, one or more objects can contain one or more fields. A field is comprised of a data type which represents the state of an object. Engines are used to perform defined functions to the fields. One or more routes can be used to change one field in response to changes made to another field. A class hierarchy is defined to implement a retained mode graphics.
-
Citations
55 Claims
-
1. A computer-readable medium having stored thereon an applications programming interface for causing a computer system to render a three-dimensional scene according to a downloaded file, the applications programming interface comprising:
-
a plurality of objects, obtained from a Virtual Reality Meta Language (VRML) file downloaded from a network and stored in memory, which are used in constructing a scene graph, the plurality of objects comprising a plurality of hierarchical classes including a top level hierarchy having a context class, an action class, a field spec class, and a base class;
a plurality of subclasses, wherein the action class includes a draw action, a compile action, and an intersect action subclass, the base class includes a clock, color, appearance, node, material, texture, texture transformaton, coordinate, normal, texture coordinate, viewport, camera, engine, and geometry subclass;
a plurality of fields corresponding to the objects, wherein a field is comprised of a data type and represents a state of an object; and
a plurality of routes for changing fields in response to changes made to a second field. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
a plurality of hierarchical classes including the base class for objects containing fields, the base class having;
an appearance which specifies a graphics state; and
a geometry class for specifying a geometry for specifying a geometry for rendering a set of geometric primitives.
-
-
3. The computer-readable medium of claim 2, wherein the camera includes a camera using an orthographic projection, a camera using a symmetric viewing frustum, and a camera using an off-axis perspective frustum.
-
4. The computer-readable medium of claim 2, wherein the set of geometric primitives renderable by the geometry class includes a set of points, a set of independent line segments, a set of line strips, a set of independent triangles, a set of independent quadrilaterals, and a set of triangle strips.
-
5. The computer-readable medium of claim 4, wherein the geometry class is comprised of a class for generating three-dimensional text.
-
6. The computer-readable medium of claim 4, wherein the geometry class is further comprised of a sphere primitive and a box primitive.
-
7. The computer-readable medium of claim 4, wherein the geometry class is further comprised of a cone primitive and a cylinder primitive.
-
8. The computer-readable medium of claim 2, wherein the base class further comprises:
-
a set of coordinates including a three-component coordinate stored as floats;
a set of normals;
a set of colors having four-component color stored as bytes and floats;
a set of texture coordinates; and
a set of integer indices.
-
-
9. The computer-readable medium of claim 2, wherein the base class is further comprised of a node class having:
-
a group node;
a light that illuminates the scene graph;
fog parameters;
a sound generating node; and
a shape renderable object corresponding to the appearance and geometry.
-
-
10. The computer-readable medium of claim 9, wherein the group node is comprised of:
-
a transformation node for transforming a node;
a switching node for drawing selected nodes; and
an environment for defining a scope of the light and fog.
-
-
11. The computer-readable medium of claim 9, wherein the group node is further comprised of a collision geometry.
-
12. The computer-readable medium of claim 2, wherein the appearance class includes the following set and get functions:
- setInherit(BitMask mask);
getInherit(BitMask mask);
setTexEnable(boolean texEnable);
getTexEnable( );
setTexMode(short texMode);
getTexMode( );
setTexture(Texture texture);
getTexture( );
setTexTransform(TexTransform texture);
getTexTransform( );
setTexBlendColor(Vec4f texBlendColor);
getTexBlendColor( );
setTexEnv(short texEnv);
getTexEnv( );
setTexGenEnable(boolean texGenEnable);
getTexGenEnable( );
setTexGen(TexGen texGen);
getTexGen( );
setLightEnable(boolean lightEnable);
getLightEnable( ).
- setInherit(BitMask mask);
-
13. The computer-readable medium of claim 12, wherein the appearance class further includes the following set and get functions:
- setMaterial(Material material);
getMaterial( );
setShadeModel(short shadeModel);
getShadeModel( );
setTranspEnable(boolean transpEnable);
getTranspEnable( );
setTranspMode(short transpMode);
getTranspMode( );
setFogScale(float fogScale);
getFogScale( );
setPolyMode(short polyMode);
getPolyMode( );
setAlphaFunc(short alphaFunc);
getAlphaFunc( );
setAlphaRef(short alphaRef);
getAlphaRef( );
setBlendColor(Vec4f blendColor);
getBlendColor( );
setSrcBlendFunc(short srcBlendFunc);
getSrcBlendFunc( );
setDstBlendFunc(short dstBlendFunc);
getDstBlendFunc( );
setColorMask(int colorMask);
getColorMask( );
setDepthFunc(short depthFunc);
getDepthFunc( );
setDepthMask(int depthMask);
getDepthMask( ).
- setMaterial(Material material);
-
14. The computer-readable medium of claim 2, wherein the appearance class includes the following fields:
- inherit, texture, texTransform, texEnable, texMode, texBlendColor, texEnv, texGenEnable, texGen, lightEnable, material, shadeModel, transpEnable, transpMode, fogscale, polyMode, alphaFunc, alphaRef, blendColor, srcBlendFunc, dstBlendFunc, colorMask, depthFunc, and depthMask.
-
15. The computer-readable medium of claim 2, wherein the appearance class includes the following modes of static data:
- texture, transparency, polygon, and state element modes.
-
16. The computer-readable medium of claim 2, wherein the set of geometric primitives renderable by the geometry class further includes a set of polygons.
-
17. The computer-readable medium of claim 1, further comprising:
a plurality of engines including at least an interpolator.
-
18. The computer-readable medium of claim 17, wherein the interpolator includes color, normal, coordinate, orientation, single position, and scalar interpolators.
-
19. The computer-readable medium of claim 17, wherein the engines are further comprised of:
-
a spline evaluator for driving morphs and keyframe animation;
a geometric morphing engine;
a geometric transformation engine; and
a script engine.
-
-
20. The computer-readable medium of claim 1, wherein the downloaded file conforms to a VRML file format.
-
21. The computer-readable medium of claim 1 further comprising a plurality of variables corresponding to the objects, wherein the variables are changed by subroutine calls.
-
22. The computer-readable medium of claim 1 further comprising a plurality of engines for performing defined functions to the fields.
-
23. The computer-readable medium of claim 1, wherein the plurality of routes automatically update all corresponding fields in response to a change made to the second field.
-
24. A computer system having an applications programming interface for displaying a three-dimensional according to a downloaded file, wherein the applications programming interface is comprised of:
-
a hierarchy of classes applicable to a Virtual Reality Meta Language (VRML) file downloaded from a network, the hierarchy of classes including;
a context class;
an action class;
a field specification class;
a base class for objects containing fields, the base class having a color, texture coordinate, normal, node, viewport, camera, engine, a clock, material, texure, texture transformation, an appearance which specifies a graphics state of an object to be displayed, and a geometry class for specifying a geometry for specifying a geometry for rendering a set of geometric primitives. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
a set of coordinates;
a set of normals;
a set of colors;
a set of texture coordinates;
a set of integer indices.
-
-
26. The computer system of claim 24, wherein the hierarchy of classes further comprises:
-
a viewport corresponding to a screen area for rendering the scene graph;
a camera which defines viewing parameters, wherein the camera includes a camera using an orthographic projection, a camera using a symmetric viewing frustum, and a camera using an off-axis perspective frustum.
-
-
27. The computer system of claim 24, wherein the set of geometric primitives renderable by the geometry class includes a set of points, a set of independent line segments, a set of line strips, a set of independent triangles, a set of independent quadrilaterals, and a set of triangle strips.
-
28. The computer system of claim 27, wherein the geometry class is further comprised of a sphere primitive, and a box primitive.
-
29. The computer system of claim 27, wherein the geometry class further comprises
a cone primitive and a cylinder primitive. -
30. The computer system of claim 27, wherein the geometry class is further comprised of a cone primitive and a cylinder primitive.
-
31. The computer system of claim 24, wherein the base class further comprises a node class having:
-
a group node;
a light that illuminates the scene graph;
fog parameters;
a sound generating node; and
a shape renderable object corresponding to the appearance and geometry.
-
-
32. The computer system of claim 31, wherein the group node is comprised of:
-
a transformation node for transforming a node;
a switching node for drawing selected nodes; and
an environment for defining a scope of the light and fog.
-
-
33. The computer system of claim 31, wherein the hierarchy of classes further comprises an engine class having at least:
an interpolator.
-
34. The computer system of claim 33, wherein the interpolator includes color, normal, coordinate, orientation, single position, and scalar interpolators.
-
35. The computer system of claim 31, wherein the group node is further comprised of a collision geometry.
-
36. The computer system of claim 24, wherein the appearance class includes the following set and get functions:
- setInherit(BitMask mask);
getInherit(BitMask mask);
setTexEnable(boolean texEnable);
getTexEnable( );
setTexMode(short texMode);
getTexMode( );
setTexture(Texture texture);
getTexture( );
setTexTransform(TexTransform texture);
getTexTransform( );
setTexBlendColor(Vec4f texBlendColor);
getTexBlendColor( );
setTexEnv(short texEnv);
getTexEnv( );
setTexGenEnable(boolean texGenEnable);
getTexGenEnable( );
setTexGen(TexGen texGen);
getTexGen( );
setLightEnable(boolean lightEnable);
getLightEnable( );
setMaterial(Material material);
getMaterial( );
setShadeModel(short shadeModel);
getShadeModel( );
setTranspEnable(boolean transpEnable);
getTranspEnable( );
setTranspMode(short transpMode);
getTranspMode( );
setFogScale(float fogScale);
getFogScale( );
setPolyMode(short polyMode);
getPolyMode( );
setAlphaFunc(short alphaFunc);
getAlphaFunc( );
setAlphaRef(short alphaRef);
getAlphaRef( );
setBlendColor(Vec4f blendColor);
getBlendColor( );
setSrcBlendFunc(short srcBlendFunc);
getSrcBlendFunc( );
setDstBlendFunc(short dstBlendFunc);
getDstBlendFunc( );
setColorMask(int colorMask);
getColorMask( );
setDepthFunc(short depthFunc);
getDepthFunc( );
setDepthMask(int depthMask); and
getDepthMask( ).
- setInherit(BitMask mask);
-
37. The computer system of claim 24, wherein the appearance class includes the following fields:
- inherit, texture, texTransform, texEnable, texMode, texBlendColor, texEnv, texGenEnable, texGen, lightEnable, material, shadeModel, transpEnable, transpMode, fogScale, polyMode, alphaFunc, alphaRef, blendColor, srcBlendFunc, dstBlendFunc, colorMask, depthFunc, and depthMask.
-
38. The computer system of claim 24, wherein the set of geometric primitives renderable by the geometry class further includes a set of polygons.
-
39. The computer system of claim 24, wherein the engine class is further comprised of:
-
a spline evaluator for driving morphs and keyframe animation;
a geometric morphing engine;
a geometric transformation engine; and
a script engine.
-
-
40. A computer system having an applications programming interface for displaying a three-dimensional scene according to a downloaded file, wherein the applications programming interface is comprised of:
-
a hierarchy of classes applicable to a Virtual Reality Meta Language (VRML) file downloaded from a network having a top level class including a context, action, field specification, and base class, wherein the base class includes a clock, appearance, material, texture, texture transform, geometry, color, coordinate, normal, texture coordinate, node, viewport, camera, and a plurality of engines including a geometric morphing engine, an interpolator engine, and a script engine. - View Dependent Claims (41, 42, 43, 44)
void setweight(int i, float key);
float getweight(int i);
int getWeightCount( );
void setInputVec(int i, float x, float y, float z);
void getInputvec(int i, Vec3f vec);
void getInputCount( );
void setVecOffset(int i, int offset);
int getVecOffset(int i);
int getVecOffsetCount( );
void setOutputIndex(int i, int index);
int getOutputIndex(int i);
int getOutputIndexCount( );
void setIndexOffset(int i, int index) int getIndexOffset(int i) int getIndexOffsetCount( ).
-
-
45. A computer system having an applications programming interface for displaying a three-dimensional according to a downloaded file, wherein the applications programming interface is comprised of:
-
a hierarchy of classes applicable to a Virtual Reality Meta Language (VRML) file downloaded from a network, the hierarchy of classes including a context class, an action class, a field spectication class, a base class having a geometry subclass including a sprite subclass, a texture 3D subclass, and a geoset subclass for specifying a geometry for rendering a set of geometric primitives including;
a point set;
a line strip set;
a tristrp set;
a polygon set. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 55)
a base class having;
a set of coordinates including a three-component coordinate stored as floats;
a set of normals;
a set of colors having four-component color stored as bytes and floats;
a set of texture coordinates; and
a set of integer indices.
-
-
48. The computer system of claim 45, wherein the hierarchy of classes further includes:
-
a base class having a node class that includes;
a group node;
a light that illuminates the scene graph;
fog parameters;
a sound generating node; and
a shape renderable object corresponding to the appearance and geometry.
-
-
49. The computer system of claim 48, wherein the group node is comprised of:
-
a transformation node for transforming a node;
a switching node for drawing selected nodes; and
an environment for defining a scope of the light and fog.
-
-
50. The computer system of claim 48, wherein the group node is further comprised of a collision geometry.
-
51. The computer system of claim 45 further comprising a geoset having cullFace, primCount, colors, normals, texCoords, coords, colorindices, normalindices, texCoordIndices, coordindices, colorBind, normalBind, and texCoordBind fields.
-
52. The computer system of claim 45 further comprising a geoset having static data representing a cull face corresponding to none, front, back and both conditions and static data representing binding conditions corresponding to off, overall, primitive, and vertex.
-
53. The computer system of claim 45 further comprising a geoset having the following field sets and gets:
- setBound(Box bound);
getBound(Box bound);
setCullFace(int cf);
getCullFace( );
setPrimCount(int np);
getPrimCount( );
setColorBind(char b);
getColorBind( );
setNormalBind(char b);
getNormalBind( );
setTexCoordBind(char b);
getTexCoordBind( );
setColors(Color c);
getColors( );
setNormals(Normal c);
getNormals( );
setTexCoords(TexCoord c);
getTexCoords( );
setCoords(Coord *c);
getcoords( );
setColorIndices(Index c);
getColorIndices( );
setNormalIndices(Index c);
getNormalIndices( );
setTexCoordIndices(Index c);
getTexCoordIndices( );
setCoordIndices(Index c);
getCoordIndices( ).
- setBound(Box bound);
-
54. The computer system of claim 45 wherein the set of geometric primitives further includes a set of polygons.
-
55. The computer system of claim 45, wherein the geometry class is further comprised of a cone primitive and a cylinder primitive.
Specification