Computer graphics processing and selective visual display system – Computer graphics processing – Three-dimension
Reexamination Certificate
1997-04-28
2002-07-30
Luu, Matthew (Department: 2672)
Computer graphics processing and selective visual display system
Computer graphics processing
Three-dimension
C345S440000
Reexamination Certificate
active
06426745
ABSTRACT:
BACKGROUND
This invention relates to manipulating graphic objects in 3D scenes.
The computer system illustrated in FIG.
1
—which includes mouse
15
, keyboard
16
, CPU
17
and CRT
18
—represents a hardware setup for running software that allows a user to view and/or create 3D scenes. A 3D scene typically comprises one or more graphic entities placed in a background setting to create an informative or aesthetically pleasing image. Such 3D scenes may be used in generating image data files (e.g., GIF or JPEG), web pages (e.g., HTML files), 3D worlds (e.g., VRML files) or may be strung together in a sequence to create an animated 3D movie (e.g., MPEG-1 or Quicktime files). These 3D scenes are “virtual” in the sense that the space they occupy and their graphic entities and characteristics are conceptual rather than actual, but possess the functional (e.g., optical and spatial) properties of the physical entities that they represent.
To compose a 3D scene, a user (e.g., a graphical content developer) typically uses an interactive, graphic drawing application to construct several 3D entities from individual graphic elements such as polygons, edges (or lines) and points. The user can manipulate the 3D entities and their respective elements, for example, through sizing (or scaling), positioning (or translating) and orienting (or rotating) operations, until the scene has the desired appearance.
FIG. 2
shows an example of a 3D scene composed of several graphic entities such as a table
20
, a ruler
21
, a chair
22
and a model X-29 aircraft
23
within a room formed of walls
24
and a tiled floor
25
. To create this scene, the user had to carefully compose and arrange each of the graphic entities and their elements to be properly oriented, positioned and scaled relative to the other entities and elements in the scene. Additionally, such composition and arrangement must be performed on elements within an entity such that they are properly oriented, positioned and scaled relative to other elements within the same graphic entity.
An “object” refers to one or more graphical entities, one or more graphical elements forming a graphical entity, or some combination of graphical entities and elements. Hence any statement regarding manipulation, composition or arrangement of graphical objects may be applied equally to graphical entities or graphical elements, either alone or in combination.
Using conventional systems and methods to create graphic scenes of any complexity can be a painstaking and time-consuming process. Generally a user is required to manually create and manipulate graphic objects using mouse pointing and click-and-drag techniques that require considerable degrees of hand-eye coordination and practice and often several iterations of trial-and-error. These tasks are considerably more difficult when creating a 3D scene because the user must manipulate objects in a virtual 3D space using two-dimensional input (e.g., the user's movement of the mouse along the plane of the mouse pad). As a result, mouse movements frequently are misinterpreted by the graphics program, resulting in undesired object manipulations—that is, objects will have skewed features or will end up in the wrong location or orientation.
Several different visual object manipulation tools have been developed to aid users in manipulating objects in 3D scenes. These tools may or may not appear temporarily within the 3D scene, however, they are not a part of the 3D scene that is the final product. Rather, they appear on the display screen only while the 3D scene is being authored to assist a user in manipulating graphic objects.
Object manipulation tools generally fall into two different categories: indirect and direct. With indirect manipulation tools, the user does not work within the 3D scene itself but rather uses a separate graphical abstraction which lies outside the 3D scene, typically at a fixed location on the display screen, to bring about corresponding changes to the graphic object. An example of an indirect manipulation tool is a slider bar or thumbwheel, provided as part of the graphic user interface (GUI), which causes a graphic object to rotate about a single axis or translate along one axis in response to input from a user.
Direct manipulation tools, in contrast, allow a user to manipulate a graphic object directly by placing the cursor in the proximity of the object, and dragging the cursor within the scene to affect the desired change to the object. An example of a direct object manipulation tool is a manipulator box having visual features which enable a user to translate, rotate and scale a graphic object encompassed within the manipulator box.
As shown in
FIG. 2
, for example, a manipulator box
26
having boundary line
28
encompasses the X-29 aircraft
23
. The user can translate the X-29 within the scene by clicking the cursor anywhere on one of the box's faces and dragging the cursor to the desired location. In response, the X-29 and the manipulator box will follow the cursor's movement. The user can scale the aircraft by clicking the cursor on one of the white cubes
27
at each vertex of the manipulator box and dragging the cursor in the desired direction. If the user drags a white cube
27
inward towards the aircraft, the X-29 and the manipulator box become proportionately smaller. In contrast, the X-29 and the manipulator box become larger if the user drags a white cube
27
away from the aircraft. The X-29 can be rotated by clicking on and dragging one of the green spheres
29
which causes the X-29 and the manipulator box to rotate about a single one of the three axes of the manipulator box.
The three lines connecting the three sets of green spheres
29
define the three different axes of rotation for the manipulator box
26
. The axis about which the rotation occurs is determined by considering which knob is selected and, following selection of the knob, the initial direction of motion of the cursor. The net result is that the knob rotates about one of the two axes to which the knob is not attached, carrying the manipulator box and the X-29 along with it.
Object manipulation tools, both direct and indirect, may serve several purposes. First, the tools may provide visual cues or feedback which better enable a user to manually position an object so that it will end up at the desired location and orientation. For example, some 3D drawing applications provide a two-dimensional grid
30
as shown in
FIG. 3
which enables users to manually position a graphic object within a 3D scene with increased precision, and thereby achieve consistency and proportionality throughout the scene. A grid typically is implemented as a plane containing two perpendicular axes of a 3D coordinate system. The third axis, called the plane normal, is perpendicular to the first two axes and therefore perpendicular to the plane of the grid as well. In
FIG. 3
, grid
30
contains the Y and X axes and the plane normal is the Z axis. A user can align graphic objects to the grid or position one object a desired number of units from another object.
Object manipulation tools also may allow a user to selectively constrain the motion of a graphic object during manipulation relative to one or more axes of a coordinate system. Attempting to interpret 2D mouse movements as fully 3-dimensional gestures with simultaneous motion in all 3 dimensions is an exceedingly difficult, if not impossible, is task. Users accordingly can instruct the program to interpret mouse movements as corresponding to a single direction along a designated axis (i.e., one-dimensional motion constrained to a single axial direction within or perpendicular to a plane) or within a designated plane (i.e., two-dimensional motion constrained to the plane defined by two axes of a coordinate system). The re-interpreted, constrained mouse motion can be used to apply any type of object manipulation, including translation, rotation and scaling. The purpose of constraining motion to fewer than all three axes is to divide the difficult task of mov
Isaacs Paul
Myers Robert K.
Schaefer Kurt J.
Computer Associates Think Inc.
Cooper & Dunham LLP
Harrison Chante
Luu Matthew
LandOfFree
Manipulating graphic objects in 3D scenes does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Manipulating graphic objects in 3D scenes, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Manipulating graphic objects in 3D scenes will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2858729