GB2238215A - Computer display system with a three dimensional cursor shadow - Google Patents

Computer display system with a three dimensional cursor shadow Download PDF

Info

Publication number
GB2238215A
GB2238215A GB9023830A GB9023830A GB2238215A GB 2238215 A GB2238215 A GB 2238215A GB 9023830 A GB9023830 A GB 9023830A GB 9023830 A GB9023830 A GB 9023830A GB 2238215 A GB2238215 A GB 2238215A
Authority
GB
United Kingdom
Prior art keywords
shadow
cursor
dimensional
vertices
display screen
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB9023830A
Other versions
GB2238215B (en
GB9023830D0 (en
Inventor
Daniel S Venolia
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of GB9023830D0 publication Critical patent/GB9023830D0/en
Publication of GB2238215A publication Critical patent/GB2238215A/en
Application granted granted Critical
Publication of GB2238215B publication Critical patent/GB2238215B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/08Cursor circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation

Abstract

The system provides for the display of a shadow region 3 associated with a three dimensional cursor 2. A cursor control device is used to move the cursor in three dimensions on the display screen, wherein the shadow region is displayed on a shadow plane 4 and follows the movement of the cursor. A shadow represented by an opaque face cursor or a translucent face cursor is provided. The system can detect situations where either the cursor 2 or the shadow 3 are not visible. <IMAGE>

Description

METHOD AND APPARATUS FUR A COMPUTER DISPLAY SYSTEM WITH A THREE DINENSIUNAL CURSOR SHADOW (1) Field of the Invention This invention relates to computer systems having a three dimensional cursor which is displayed on a computer controlled display device. Specifically, the field of this invention is that of interactive computer systems having a cursor capable of representing three dimensional movement where the cursor may be moved on the display screen.
(2) Prior Art Computer-controlled display devices are useful for the representational display of three dimensional (3D) objects in three dimensional spatial relationships. This is especially true when the displayed objects can be moved around within the 3D space using a cursor control device. Unfortunately, the modeling of 3D space to a display screen ( e.g. a CRT computer monitor) is difficult, since the screen is only a two dimensional plane. In prior art, the two dimensional screen limitation creates confusing display images for the user attempting to move a cursor in 3D space. The depth and height of objects is not easy to ascertain without some reference point. The relationship of one object to another is also difficult to interpret, especially as objects move around in space.Prior art three dimensional modeling techniques do not employ shadowing of objects in conjunction with a cursor, having an associated shadow region, as a means for assisting the user in distinguishing the movement and position of objects in space. These problems have hindered the proliferation of computer display devices as a means for displaying three dimensional spaces and the manipulation of a cursor therein.
SUI#!ARY OF I#M:##rrION The present invention provides a device and method of facilitating the three dimensional movement of objects on a display screen by displaying a shadow region associated with a cursor. The shadow region assists the user in orienting the relative position and movement of objects within the 3D space. The shadow region may be denoted as a drop shadow, since the shadow region in the preferred embodiment is displayed on a shadow plane located toward the bottom of the display screen.
The present invention comprises an interactive computercontrolled display system including a bus for interconnecting system components, a processor, a random access memory, a read only memory, a data storage means for storing data, a data display device including a display screen, an alphanumeric input device, a cursor control device for interactively positioning a cursor on a display screen, and a signal generation device. This invention provides a means and method for displaying a shadow region in association with a three dimensional cursor whereby the shadow changes shape (including size) and orientation in response to the 3D movement of the cursor device.
BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is an illustration of the three dimensional cursor with the shadow as displayed on a display screen after activation.
Figure 2 is an illustration of the three dimensional cursor and the shadow with the vertices and axes defined.
Figure 3 is an illustration of the three dimensional cursor and the shadow portrayed as a wire frame object.
Figure 4 is an illustration of the shadow in the X-Z plane.
Figure 5 is an illustration of the shadow and cursor in the Y-Z plane.
Figures 6,7,8 and 9 are flowcharts of the representative computer program that implements this scheme.
Figure 10 is an illustration of the computer system architecture.
Figure 11 is an illustration of the shadow and cursor in the Y-Z plane with the light source displaced at an angle to the Y axis.
DETAILED DESCRIPTION OF THE INVENTION The present invention provides a device and a process for generating and displaying a shadow region associated with a three dimensional cursor which is displayed on a display device. The shadow region represents the shadow of the 3D cursor and moves with the cursor as the cursor is moved on the display device.
The preferred embodiment of the present invention is implemented on an Apple MacintoshTM computer system. It is obvious to one of ordinary skill in the art, however, that alternative systems may be employed. In general, such systems as illustrated by Figure 10 comprise a bus 100 for communicating information, a processor 101 coupled with said bus for processing information, a random access memory 102 coupled with said bus 100 for storing information and instructions for said processor 101, a read only memory 103 coupled with said bus 100 for storing static information and instructions for said processor 101, a data storage device 104 such as a magnetic disk and disk drive coupled with said bus 100 for storing information and instructions, a display device 105 coupled to said bus 100 for displaying information to the computer user, an alphanumeric input device 106 including alphanumeric and function keys coupled to said bus 100 for communicating information and command selections to said processor 101, a cursor control device 107 coupled to said bus for communicating information and command selections to said processor 101, a signal generation device 108 coupled to said bus 100 for communicating command selections to said processor 101.
The display device may be a liquid crystal device, cathode ray tube, or other suitable display device. The display device should be able to display at least discrete points and vectors visible on the display screen. More sophisticated display devices can display regions on the display screen in different colors or shades of gray.
The cursor control device 107 is an interactive device with which the computer user may dynamically signal the movement of a visible object on a display screen in three dimensions. Many implementations of a 3D cursor control device are known in the art including three axis mechanical devices (e.g. a trackball) and three dimensional magnetic field detection and positioning systems. Other types of cursor control devices can signal movement in only two dimensions. These two-dimensional cursor control devices, when used in conjunction with another signal means, can be used to provide three dimensional signals. The other signal means may be generated by the alphanumeric keyboard 106 or the signal generation device 108. The alphanumeric keyboard 106 by itself could also be used to produce three dimensional signals. Specific keys on the keyboard could be assigned to signal movement in each of the three dimensions. These cursor control devices typically provide data to the processor in terms of cursor movement in the X, Y, and Z directions.
In this preferred embodiment, the X, Y, and Z directions will be defined as follows: the origin of the screen is defined as the lower left corner of the display screen; X represents an axis extending orthogonally from the left side of the display screen to the right side of the screen parallel to the surface of the screen; the Y axis extends orthogonally from the bottom of the display screen to the top of the screen parallel to the surface of the screen perpendicular to the X axis; the Z axis extends perpendicular to the display screen from the surface of the screen pointing outward directly toward the user viewing the screen perpendicular to the X and Y axes.
The features and processes of the three dimensional cursor shadow in a preferred embodiment are described below. The general operation of cursor control devices or display systems is described only where necessary to provide a thorough understanding of the present invention, since these methods are already known to those skilled in the relevant art.
Operation of the Present Invention The cursor shadow 3, shown in Figure 1, is a displayed image associated with a 3D cursor which moves with the cursor control device 107. The two dimensional shape of the shadow corresponds to the three dimensional shape of the cursor 2. In the present invention, the cursor 2 is displayed as a 3 D object. A 3D object is a solid defined using vertices positioned in three dimensional space connected by straight edges. The edges combine to create polygons that define the faces of the solid. For each polygon face, the edges that comprise the face are coplanar; thus, each face has an associated normal vector which is perpendicular to the face and each of the edges therein. Each edge and each face may have an associated color, shade of gray, or display intensity. The surface of each face may be opaque or translucent.As depicted in Figure 2, an object created with opaque faces 2 would cast a homogeneous shadow 3 for each of the opaque faces exposed to a light source 7 (shown in Figure 5). An object created with translucent faces 32 would cast a shadow 34 only at its edges; this type of object appears as a wire frame solid 32 as shown in Figure 3.
The 3D cursor object may also be displayed as a 3D non-solid object 31. That is, the object does not have faces or an interior region. This type of object is displayed as a group of vectors. Just like the solid object, the vector group moves in response to the movement of the cursor control device 107. A cross hair 31, shown in Figure 3, is an example of the non-solid type of cursor object. The non-solid cursor object is represented in the present invention as a group of 3D points connected by vectors. There are no associated polygons or faces. In the case of a cross hair cursor 31, the object can be represented by four points, two for each of the vectors comprising the cross hair. If the points are denoted as vertices and the vectors are denoted as edges, the non-solid object can be represented in a similar manner as the solid object, except that faces do not need to be processed.As in the solid object, each edge (vector) may have an associated color, shade of gray, or intensity. A non-solid object casts a shadow 33 only at its edges.
Any 3D object in the domain of the present invention can be represented in a data structure as a collection of vertices, faces, and edges. The data structure can be stored in computer memory 102, on a magnetic storage media 104, or other suitable data storage means. For each of the object vertices, the X, Y, and Z position of the vertex is saved in the data structure. For each of the object faces, the data retained in the object data structure includes, but is not limited to the following: the number of vertices in the face, the pointer to each associated vertex, the color of the face, and the magnitude and direction of the vector normal to the face. For each edge, the data saved includes, but is not limited to: the pointer to the start and end vertices of the edge, a pointer to the faces to which this edge is a member, and the color or intensity of the edge.
For a non-solid object, the same object data structure can be used; although, the object has only vertices and edges, but no faces. Since the cursor is an object, object data associated with the cursor (cursor data) is also stored in the object data structure.
Each object and the shadow of each object is displayed on the display screen 1 with reference to an eye position 6. The eye position 6, shown in Figures 4 and 5, is a known point in space in front of the display screen. The eye position 6 is a point from where the user would typically view the displayed images. In the present embodiment, this position is defined as a point in 3 D space denoted i(x,y,z) as shown in Figures 4 and 5. The eye position 6 is not necessarily a fixed point. An equivalent embodiment could be conceived whereby the eye position 6 is located in a position different from the position depicted in Figures 4 and 5. The implementation described herein can be used for embodiments employing a variable eye position.
Each image is displayed to the user as a projection from three dimensional space to a two dimensional screen plane 5. The screen plane 5, which is typically the screen of a CRT display device, is perpendicular to the Z axis as shown in Figures 4 and 5. The projection is used to determine the point in the screen plane 5 intersecting a line connecting each object vertex with the eye position 6. For example, as shown in Figure 5, a point p is the intersection of line Ai 51 with the screen plane 5. Line Ah 53 connects the object vertex with the coordinate space origin (h). A vector N 8 is a normal vector perpendicular to the screen plane 5.
The normal N is computed using the cross product with two distinct unit vectors in the screen plane, a technique well known in the art.
The location of the screen plane intersection point p is generated first by calculating the dot product of the vector Ah 53 with the screen normal vector N. Next, the dot product is computed for the vector Ai 51 with the screen normal vector N. The quantity of the dot product for Ah divided by the dot product for Ai is multiplied by the X,Y components of the Ai vector and added to the coordinate components of the object vertex. The result is the point p in the screen plane 5 intersecting the line from the object vertex to the eye position 6.The projection for each object vertex is computed as described in the following formulas for cursor vertex A: p(x) " (DotProduct(N, Ah) / DotProduct(N, Ai)) ^ Ai(x) + A(x) p(y) = (DotProduct(N, Ah) I DotProduct(N, Ai)) * Ai(y) + A(y) p(z) - Screen Plane(z) The position of each of the other object vertices as projected to the screen plane 5 is computed in similar fashion and stored in the object data structure. Other means exist for projecting a vertex to a plane. The means described above is only one satisfactory method used in the present embodiment.
The cursor 2 changes position and orientation on the display screen 1 in response to the three dimensional movement of the cursor control device 107. The cursor control device 107, coupled to the processor 101 via bus 100 as shown in Figure 10, provides signals to the processor 101 indicating the movement of the cursor 2 along each of the three axes: X, Y, and Z. As described above, the 3 D movement of the cursor 2 could be signalled using other methods. A two dimensional cursor control device used in conjunction with another signal means could employed to produce 3D signals.
Similarly, the alphanumeric keyboard 106 alone could be used as a 3D cursor control device. The processor logic, described below, applies the three axis movement to the vertices, faces, and edges comprising the cursor 2, computes a new projection to the screen plane 5 for each cursor vertex, generates the shadow 3 that is associated with the cursor 2, and computes a new projection to the screen plane 5 for each shadow vertex.
The shadow 3 itself is a two dimensional shape, which can be displayed either as a group of polygons (shadow regions) or a group of edges (shadow edges). A shadow polygon 3 is cast by the opaque face of an object. An edge shadow (33 and 34) is cast by a translucent-faced object 32 or a non-solid object 31. The shadow 3 is associated with the cursor object 2 as determined by the position of the three dimensional cursor 2 object vertices stored in the object data structure. The vertices of the cursor 2 are translated to the two dimensional shadow plane 4 to produce shadow vertices. The shadow plane 4, as shown in the preferred embodiment, is perpendicular to the Y axis and located toward the bottom of the display screen 1 as shown in Figure 1. The shadow plane 4 is defined to simulate an infinitely large planar collimated light source.The light source is perpendicular to the Y axis; its light rays travel downward parallel to the Y axis. The shadow vertices define the association between the position of the shadow 3 and the position of the cursor 2. The computation of the shadow vertices, in the preferred embodiment, is described by the following formula for cursor vertex A: a(x) t A(x) a(y) = Shadow Plane(y) a(z) = A(z) Since the shadow vertices (e.g. a(x,y,z)) are derived from the cursor object vertices (e.g. A(x,y,z)), the shadow vertices will move as the cursor moves. The position of each of the shadow vertices is computed and stored in the object data structure with the movement of the cursor. For solid objects, pointers to the the shadow vertices associated with each face are also retained in the object data structure.
Similar to objects, shadows are viewed by the user as an image projected to the screen plane 5 as shown in Figures 4 and 5. This computation is identical to the computation performed for the projection of the object vertices to the screen plane 5 as described above. The projection is used to determine the point in the screen plane 5 intersecting a line connecting each shadow vertex with the eye position 6. For example, as shown in Figure 5, a point q is the intersection of line ai and the screen plane 5. Line ah connects the object vertex with the coordinate space origin (h). The vector N 8 is a normal vector perpendicular to the screen plane 5. The location of the screen plane intersection point q is generated first by calculating the dot product of the vector ah with the screen normal vector N. Next, the dot product is computed for the vector ai with the screen normal vector N.The quantity of the dot product for ah divided by the dot product for ai is multiplied by the X,Y components of the ai vector and added to the coordinate components of the shadow vertex. The result is the point q in the screen plane 5 intersecting the line from the shadow vertex (a) to the eye position 6. The projection for each shadow vertex is computed as described in the following formulas for shadow vertex (a): q(x) . (DotProduct(N, ash)/ DotProduct(N, ai)) ' ai(x) + a(x) q(y) - (DotProduct(N, ah) I DotProduct(N, ai)) ~ ai(y) + a(y) q(z) . Screen Plane(z) The position of each of the other shadow vertices as projected to the screen plane 5 is computed in similar fashion and stored in the object data structure.
Movement of the cursor will cause corresponding movement of the screen plane projection points of the shadow vertices. For non-solid objects, generation of the shadow is simply a matter of projecting the shadow vertices to the screen plane and drawing vectors between the screen plane projection points.
For solid objects, including those with either opaque or translucent faces, the generation of a shadow is not as straight forward. Not all faces of the solid object produce a shadow. Every edge of each face does not necessarily produce a distinct shadow.
The present invention provides processing logic for determining which faces of the solid object cast shadows and which faces are non-shadowing. Since non-shadowing faces do not cast shadows, no shadow image needs to be drawn on the display screen for these faces. For shadowing faces, the shadow is drawn.
The normal vector associated with each face is used to determine if the face is shadowing or not. The dot product of the face normal vector with a vector pointing directly toward the light source 7 is computed. If the dot product is positive, the face will cast a shadow.
If the dot product is zero, the face is parallel to the light source 7; therefore, no shadow is cast. If the dot product is negative, the face is hidden from the light source by another face (this is true only for closed solids); again, no shadow is cast.
The face normal vector is computed by taking the cross product of two edges of the face as in the following example for the face CAD in Figure 5: Given vectors: v1 = vector ( AC ), and v2 e vector ( AD ), then: Normal vector for face CAD = CrossProduct ( ul, v2 ) For each face of the solid, the normal vector is computed and tested against the dot product computed with the light vector as described above. If the face is shadowing (because the dot product is positive), the shadow image is drawn on the screen plane as described below.
Since faces can be either opaque or translucent, two processing paths are provided to optimize the drawing of shadow images. For opaque shadowing faces 2, an opaque shadow region 3 will be produced. This shadow region is displayed by drawing an opaque polygon on the screen plane using the projected shadow vertices associated with this face. The position of the projected shadow vertices were computed and stored in the object data structure as described above. These vertices provide the corners of the shadow region in the screen plane. Many methods currently exist in the art of computer graphics for displaying filled regions on a display screen in this fashion.
For translucent shadowing faces 32, a translucent shadow region 34 is cast. This region is delineated on the display screen by drawing the edges of the face. Using the projected shadow vertices associated with this face, the edges are drawn on the screen plane as vectors using the projected shadow vertices as end points. Since each edge may be a component of more than one face, the potential exists that each edge may be drawn more than once. The present invention tests for this possibility and prevents the same edge from being drawn more than once. As each edge is drawn, a boolean flag (located in the object data structure for each edge) is set to a true value causing the subsequent drawing of the same edge to be inhibited.
The cursor 2 of the present invention may be activated using a function key or signal generation means 108 associated with the three dimensional cursor. The shadow 3 is displayed automatically with the display of the 3D cursor 2. Many other means of function activation may also be employed such as the entry of a special code or command sequence from the alphanumeric keyboard 106 or an icon selection. An icon is small graphical symbol displayed to the user and identifiable as performing some function when selected.
The present invention may also be activated through a software interface with the computer's operating system software or other application software. Using this method, the activation of the 3D cursor and the associated shadow can be independent of direct user action.
Upon activation, the 3D cursor 2 is presented to the user on the display screen 1 as shown in Figure 2. The cursor 2 is displayed along with the display of its associated shadow 3 on the shadow plane 4. The shape and orientation of the shadow 3 corresponds to the shape and orientation of the 3D cursor 2 in the manner described earlier. As the cursor control device 107 is moved, the 3D cursor 2 and shadow 3 move correspondingly. The 3D cursor 2 is allowed to move beyond the visible portion of the display screen 1. If the cursor 2 is moved above the top border of the display screen 1, the cursor 2 may disappear, but the shadow 3 is still displayed. If the cursor 2 is hidden behind another object on the display screen 1, the shadow 3 may still be visible. If the cursor 2 is moved below the shadow plane 4, the cursor 2 may be displayed but the shadow 3 is no longer displayed.
The shadow 3 itself is displayed to facilitate the movement of the cursor 2 in three dimensional space. The user is better able to judge height and distance when the cursor 2 is viewed in relation to the shadow 3. In the preferred embodiment, the shadow 3 appears to drop from immediately below the cursor 2 (this results from the direct derivation of the X and Z coordinate of the shadow vertices from the X and Z coordinates of the cursor vertices). In alternative embodiments, the shadow vertices may be defined indirectly from the cursor vertices so that a shadow is cast at an angle 111 (as shown in Figure 11) from the cursor instead of directly below it. The angle may be applied to either or both of the X and Y axes.For example, assuming the light source 7 as shown in Figure 11 shining with parallel rays 110 (light vectors) , a vertex of the shadow may be computed by extending one of the light source rays 110 through the cursor vertex until the ray intersects the shadow plane 4.
Processing Logic for the Present Invention The present invention includes computer program logic for the operation of the 3D cursor and corresponding shadow. This logic, executed by the processor 101, is described in the following section and in Figures 6-9. In addition to the computer resources described earlier, the present invention relies upon the availability of an operating system and system functions typically capable of displaying vectors on the display device 105. System functions for interfacing with the cursor control device 107 are also desirable, but not necessarily required. These resources are standard processing components known in the computer art.
When the system components of the present invention are first powered up, the operating system logic (typically residing in read only memory 103 and executed by the processor 101) takes control and initializes the other system components such as read/write memory 102, the display device 105, and the cursor control device 107. At the end of its initialization cycle or in response to a user command, the operating system may initiate the 3D cursor function.
If initiated by the user via a function key activation, the 3D cursor program logic begins execution when the appropriate function key is activated. As described earlier, other means for activating the 3D cursor are available.
Once the 3D cursor. program logic is activated, the processing flow begins as shown in Figure 6 at the box labeled "Start 3D Cursor and Shadow system" 601. First, the display system hardware is initialized 602. The next actions performed by the program logic is the display of all objects pre-defined in the object data structure.
This data structure holds the data definition (vertices, faces, and edges) of all objects currently displayable in three dimensional space. One of these objects is the cursor.
The program logic begins a loop starting at box 603 in Figure 6.
This loop initializes new image memory, updates the position of the objects in the object data structure, and displays the shadow for each object as the cursor control device is moved. First, the new image memory is erased 603. New image memory is a temporary buffer where the new display screen image is constructed. Each object for display on the display screen is added to new image memory as object processing is completed for that object. When the new image is completely built, new image memory is copied to display screen memory causing the display screen to show the new image. After the new image memory is erased 603, the shadow plane is drawn into new image memory 610. The shadow plane 4 is depicted in Figure 2. Next, a pointer is initialized to point to the top of the object data structure 611.Each object is retrieved from the object data structure 604, until there are no objects left to process 605. When all objects have been added to new image memory 607, program control is transferred to D in Figure 6. At D, the new image memory is copied to display screen memory 613. The image in display screen memory is then displayed on the display screen 612 and the loop for displaying objects begins again at box 603. When another object is found in the object data structure 606, the object is retrieved 604 and processor control is transferred to A in Figure 7.
Starting at A in Figure 7, a boolean flag called the Show Shadow flag is initially set to false 719. The Show Shadow flag indicates whether the shadow for the current object should be displayed or not. Next, a new transformation matrix is generated 701. The generation of a transformation matrix is a well known prior art process. The transformation matrix defines the movement of the cursor control device along each of the three axes: X, V, and Z. This movement is applied to each of the vertices in the object data structure in the next processing block 702. As the new 3D position of each vertex is computed, the Y component of the position is checked against the Y position of the shadow plane.If any vertex of the object is located above the shadow plane 703, the shadow for the object is signalled for display by setting the boolean Show Shadow flag to true 704; otherwise, the shadow will not be displayed (Show Shadow flag left false 711). For each vertex, the 3D position of the vertex is translated to the shadow plane 705 and projected to the screen plane for display 706. The translation to the shadow plane 705 is accomplished by setting the value of the vertex position Y coordinate to the value of the Y coordinate of the shadow plane as shown by the dashed lines Aa, Bb, Cc, and Dd (35) in Figure 5. If required, an angle is applied 111 to account for a displaced light source as shown in Figure 11. Projection to the screen plane 706 is performed by computing the position of the intersection point in the screen plane 5 with a vector connecting the object vertex and the eye position 6 as described earlier. The projection of each vertex to the screen plane is computed for both the object itself 706 (hence each object vertex) and the shadow of the object 707 (hence each shadow vertex). In Figure 5, the screen projection points of the cursor vertices are shown as m, n, o, and p; the screen projection points for the cursor shadow vertices are q, r, s, and t. After projecting the object and shadow vertices to the screen plane, program execution loops back to process the next object vertex until all of the vertices for the object have been processed 708.If the eye position 6 is located below the shadow plane 709, the Show Shadow flag is set to false 717, since the shadow is not visible from an eye position below the shadow plane. If the eye position is above the shadow plane 716, the Show Shadow flag is left as previously set.
Processing continues for the object faces and edges at B in Figure 8.
The faces for each object are processed as shown in Figure 8. If the object is non-solid 805, no faces exist; thus processing drops to C in Fig. 9. Since each face of the object does not necessarily cast a shadow, the processing loop from B to C is performed for each of the object faces defined in the object data structure. This loop is used to determine which of the faces are visible from the eye position and which faces cast shadow regions on the shadow plane. First, each face of the current object is retrieved from the object data structure 801. Next, the normal vector is computed for the face 802.
The normal vector is computed by taking the cross product of two of the edges of the face as described above. The cross product yields a normal vector perpendicular to the face. The face normal vector is first used to determine if the face is visible from the eye position 810. This face normal vector is used to compute the dot product of the face normal vector with the negative of the vector pointing directly away from the eye position 6. If this dot product is greater than zero 811, then the face is visible. If this is the case, the face is drawn into the new image 813. If the face is not visible 812, the face is not drawn into the new image.
Next, the face shadow is processed. If the Show Shadow flag is true 815, then shadow processing for the face continues at E in Figure 8. If the Show Shadow flag is false 816, control skips to processing for the next face at B in Figure 8. For the shadow processing at E in Figure 8, the face normal vector is used to compute the dot product 803 of the face normal vector with the negative of the vector pointing directly away from the light source 110. If this dot product is greater than zero 807, then the face is shadowing. in this case, the shadow region for this face is drawn into the new display image 804. The shadow region is drawn using the screen-projected shadow vertices for this face computed earlier. The color or intensity of the shadow region is pre-defined in the object data structure.Shadow regions for faces with zero or negative dot products as computed above 806 are not drawn. When each of the faces are processed 809, edge processing begins at C in Figure 9.
The edges of each object require separate processing as shown in Figure 9. As described above, there are at least two types of objects: solid and non-solid. There are at least two types of solid objects: those with opaque faces and those with translucent faces. For solid objects with opaque faces, edge shadows do not need to be drawn, since the shadows are delineated by the colored or shaded shadow regions. In this case 906, program execution returns to D in Fig 6.
For non-solid or translucent-faced solid objects, edge shadows need to be drawn as the object shadow would not otherwise be visible 907. Thus, a loop is initiated for each edge of the object defined in the object data structure 902 as shown in Figure 9. As each edge is retrieved from the object data structure, the edge is drawn into the new display image 912. If the Show Shadow flag is true 909, the shadow of the edge is also drawn into the display image 904. The edge shadow is drawn using the projected shadow vertices computed earlier. When each edge has been processed 910, program execution returns to D in Fig. 6 where the object processing cycle begins again with a new cursor position.
Although this invention has been shown in relation to a particular embodiment, it should not be considered so limited. Rather it is limited only by the appended claims.

Claims (1)

1. In an interactive computer-controlled display system having a processor, a data display screen coupled fo said processor, and a cursor control device coupled to said processor for interactively positioning a cursor on said display screen, a process for controlling the display of a shadow associated with said cursor, said process comprising the steps of:: generating and displaying a cursor on said data display screen, the position of said cursor being responsive to the three dimensional movement of said cursor control device, said cursor having at least one edge; generating and displaying a shadow on said data display screen, said shadow being associated with said cursor, said shadow having an edge corresponding to an edge of said cursor projected on to a two dimensional shadow plane along a light vector, the position of said shadow being responsive to the three dimensional movement of said cursor control device.
2. The process of claim 1 wherein said cursor has a plurality of three dimensional vertices associated with said cursor and wherein said step of generating and displaying said cursor comprising: maintaining cursor data associated with said cursor, said cursor data including a three dimensional position for each of said plurality of three dimensional vertices associated with said cursor; transforming said three dimensional position of said plurality of three dimensional vertices associated with said cursor to a new position based upon the three dimensional movement of said cursor control device; drawing said cursor associated with said plurality of three dimensional vertices on said data display screen.
3. The process of claim 1 wherein said cursor has a plurality of three dimensional vertices and wherein said step of generating and displaying said shadow comprising: generating shadow vertices by translating a three dimensional position for each of said plurality of three dimensional vertices associated with said cursor to a two dimensional shadow plane along said light vector, said shadow plane being substantially perpendicular to the vertical Y axis of the three dimensional space; drawing said shadow associated with said shadow vertices on said data display screen.
4. The process of claim 2 wherein said computer-controlled display system further comprising a data storage means coupled to said processor, and wherein said process further comprising a step of maintaining cursor data, said step of maintaining cursor data comprising: recalling, processing, and storing parameters associated with said plurality of three dimensional vertices associated with said cursor including the three dimensional position and configuration of said vertices; recalling, processing, and storing parameters associated with the faces associated with said plurality of three dimensional vertices associated with said cursor; recalling, processing, and storing parameters associated with edges associated with said faces;; 6. The process of claim 2 wherein the shape and orientation of said cursor is responsive to the three dimensional movement of said cursor control device and wherein the shape and orientation of said shadow is responsive to the three dimensional movement of said cursor control device and wherein said step of drawing said cursor comprising; projecting said plurality of three dimensional vertices associated with said cursor to a two dimensional screen plane, said screen plane being substantially perpendicular to the normal vector associated with said data display screen; drawing the faces associated with said projected vertices of said cursor on said data display screen; drawing the edges associated with said projected vertices of said cursor on said data display screen.
6. The process of claim 5 wherein said step of drawing said faces associated with said cursor comprising: drawing the opaque faces associated with said plurality of three dimensional vertices associated with said cursor on said data display screen.
7. The process of claim 5 wherein said step of drawing said faces associated with said cursor comprising: drawing the edges associated with said faces on said data display screen.
8. The process of claim 3 wherein said step of drawing said shadow comprising: projecting said shadow vertices to a two dimensional screen plane, said screen plane being substantially perpendicular to the normal vector associated with said data display screen; computing a normal vector for each of the faces associated with said cursor; drawing shadow regions associated with said projected shadow vertices on said data display screen if no component of said normal vector for each of said faces associated with said cursor is parallel with said light vector and pointing toward said shadow plane; drawing the shadow edges associated with said projected shadow vertices.
9. The process of claim 8 wherein said step of drawing said shadow regions associated with said shadow comprising: drawing the opaque shadow regions associated with said projected shadow vertices on said data display screen.
10. The process of claim 8 wherein said step of drawing said shadow regions associated with said shadow comprising; drawing the shadow edges associated with said shadow regions on said data display screen, each of said shadow edges drawn, if at all, only once.
11. The process of claim 1 wherein said shadow is not displayed if said cursor is moved below said shadow plane.
12. The process of claim 1 wherein said shadow is still displayed even if said cursor is not visible on said display screen.
13. An interactive computer-controlled display system comprising: a processor; a data display screen coupled to said processor; a cursor control device coupled to said processor for interactively positioning a cursor having at least one edge on said display screen; a means for generating and displaying said cursor on said data display screen, the position of said cursor being responsive to the three dimensional movement of said cursor control device, said means for generating and displaying said cursor being coupled to said processor;; a means for generating and displaying a shadow on said data display screen, said shadow being associated with said cursor, said shadow having an edge corresponding to an edge of said cursor projected on to a two dimensional shadow plane along a light vector, the position of said shadow being responsive to the three dimensional movement of said cursor control device, said means for generating and displaying said shadow being coupled to said processor.
14. The device of claim 13 wherein said cursor has a plurality of three dimensional vertices and wherein said means for generating and displaying said cursor comprising: means for maintaining cursor data associated with said cursor, said cursor data including a three dimensional position for each of said plurality of three dimensional vertices associated with said cursor; means for transforming said three dimensional position of said plurality of three dimensional vertices associated with said cursor to a new position based upon the three dimensional movement of said cursor control device; means for drawing said cursor associated with said plurality of three dimensional vertices on said data display screen.
15. The device of claim 13 wherein said cursor has a plurality of three dimensional vertices and wherein said means for generating and displaying said shadow comprising: means for generating shadow vertices by translating a three dimensional position for each of a plurality of three dimensional vertices associated with said cursor to a two dimensional shadow plane along said light vector, said shadow plane being substantially perpendicular to the vertical Y axis of the three dimensional space; means for displaying shadow regions associated with said shadow vertices on said data display screen.
16. The device of claim 14 wherein said computer-controlled display system further comprising a data storage means coupled to said processor, said means for maintaining cursor data associated with said cursor comprising: means for recalling, processing, and storing parameters associated with said plurality of three dimensional vertices associated with said cursor including the three dimensional position and configuration of said vertices; means for recalling, processing, and storing parameters associated with the faces associated with said plurality of three dimensional vertices associated with said cursor; means for recalling, processing, and storing parameters associated with edges associated with said faces; 17.The device of claim 14 wherein said means for drawing said cursor comprising: means for projecting said plurality of three dimensional vertices associated with said cursor to a two dimensional screen plane, said screen plane being substantially perpendicular to the normal vector associated with said data display screen; means for drawing the faces associated with said projected vertices of said cursor on said data display screen; means for drawing the edges associated with said projected vertices of said cursor on said data display screen.
18. The device of claim 17 wherein said means for drawing said faces associated with said cursor comprising: means for drawing the opaque faces associated with said projected vertices of said cursor on said data display screen.
19. The device of claim 17 wherein said means for drawing said faces associated with said cursor comprising: means for drawing said edges associated with said faces on said data display screen; 20. The device of claim 15 wherein said means for displaying said shadow regions comprising; means for projecting said shadow vertices to a two dimensional screen plane, said screen plane being substantially perpendicular to the normal vector associated with said data display screen; means for computing a normal vector for each of the faces associated with said cursor; means for drawing shadow regions associated with said projected shadow vertices on said data display screen if no component of said normal vector for each of said faces associated with said cursor is parallel with said light vector and pointing toward said shadow plane;; means for drawing the shadow edges associated with said projected shadow vertices.
21. The device of claim 20 wherein said means for drawing said shadow regions associated with said shadow comprising: means for drawing the opaque shadow regions associated with said projected shadow vertices on said data display screen.
22. The device of claim 20 wherein said means for drawing said shadow regions associated with said shadow comprising: means for drawing the shadow edges associated with said shadow regions on said data display screen, each of said shadow edges drawn, if at all, only once.
23. The device of claim 13 wherein said shadow is not displayed if the cursor is moved below said shadow plane.
24. The device of claim 13 wherein said shadow is still displayed even if the cursor is not visible on said display screen.
25. In an interactive computer-controlled display system having a processor and a data display screen coupled to said processor, a process for controlling the display of a shadow associated with an object, said process comprising the steps of: generating and displaying an object on said data display screen, said object having at least one edge; generating and displaying a shadow on said data display screen, said shadow being associated with said object, said shadow having an edge corresponding to an edge of said object projected on to a two dimensional shadow plane along a light vector.
26. The process of claim 25 wherein said object has a plurality of three dimensional vertices associated with said object and wherein said step of generating and displaying said object comprising: maintaining object data associated with said object, said object data including a three dimensional position for each of said plurality of three dimensional vertices associated with said object; transforming said three dimensional position of said plurality of three dimensional vertices associated with said object to a new position; drawing said object associated with said plurality of three dimensional vertices on said data display screen.
27. The process of claim 25 wherein said object has a plurality of three dimensional vertices and wherein said step of generating and displaying said shadow comprising: generating shadow vertices by translating a three dimensional position for each of said plurality of three dimensional vertices associated with said object to a two dimensional shadow plane along a light vector, said shadow plane being substantially perpendicular to the vertical Y axis of the three dimensional space; drawing said shadow associated with said shadow vertices on said data display screen.
28. The process of claim 26 wherein said computer-controlled display system further comprising a data storage means coupled to said processor, and wherein said process further comprising a step of maintaining object data, said step of maintaining object data comprising: recalling, processing, and storing parameters associated with said - plurality of three dimensional vertices associated with said object including the three dimensional position and configuration of said vertices; recalling, processing, and storing parameters associated with the faces associated with said plurality of three dimensional vertices associated with said object; recalling, processing, and storing parameters associated with edges associated with said faces; 29.The process of claim 26 wherein said step of drawing said object comprising; projecting said plurality of three dimensional vertices associated with said object to a two dimensional screen plane, said screen plane being substantially perpendicular to the normal vector associated with said data display screen; drawing the faces associated with said projected vertices of said object on said data display screen; drawing the edges associated with said projected vertices of said object on said data display screen.
30. The process of claim 29 wherein said step of drawing said faces associated with said object comprising: drawing the opaque faces associated with said plurality of three dimensional vertices associated with said object on said data display screen.
31. The process of claim 29 wherein said step of drawing said faces associated with said object comprising: drawing the edges associated with said faces on said data display screen.
32. The process of claim 27 wherein said step of drawing said shadow comprising: projecting said shadow vertices to a two dimensional screen plane, said screen plane being substantially perpendicular to the normal vector associated with said data display screen; computing a normal vector for each of the faces associated with said object; drawing shadow regions associated with said projected shadow vertices on said data display screen if no component of said normal vector for each of said faces associated with said cursor is parallel with said light vector and pointing toward said shadow plane; drawing the shadow edges associated with said projected shadow vertices.
33. The process of claim 32 wherein said step of drawing said shadow regions associated with said shadow comprising: drawing the opaque shadow regions associated with said projected shadow vertices on said data display screen 34. The process of claim 32 wherein said step of drawing said shadow regions associated with said shadow comprising; drawing the shadow edges associated with said shadow regions on said data display screen, each of said shadow edges drawn, If at all, only once.
35. The process of claim 25 wherein said shadow is not displayed if said object moves below said shadow plane.
36. The process of claim 25 wherein said shadow is still displayed even if said object is not visible on said display screen.
37. In an interactive computer-controlled display system having a processor substantially as hereinbefore described with reference to the accompanying drawings.
GB9023830A 1989-11-13 1990-11-02 Method and apparatus for a computer display system with a three dimensional cursor shadow Expired - Fee Related GB2238215B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US43555389A 1989-11-13 1989-11-13

Publications (3)

Publication Number Publication Date
GB9023830D0 GB9023830D0 (en) 1990-12-12
GB2238215A true GB2238215A (en) 1991-05-22
GB2238215B GB2238215B (en) 1994-05-11

Family

ID=23728856

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9023830A Expired - Fee Related GB2238215B (en) 1989-11-13 1990-11-02 Method and apparatus for a computer display system with a three dimensional cursor shadow

Country Status (5)

Country Link
JP (1) JPH03211686A (en)
AU (1) AU632628B2 (en)
CA (1) CA2028902A1 (en)
FR (1) FR2654530B1 (en)
GB (1) GB2238215B (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2254228A (en) * 1991-03-12 1992-09-30 Matsushita Electric Ind Co Ltd Three-dimensional information handling system
WO1997031333A1 (en) * 1996-02-23 1997-08-28 Shalit Tomer Display arrangement and method
EP0814433A2 (en) * 1996-06-18 1997-12-29 Konami Co., Ltd. Video game system with vertical array of cursor images
EP2209093A1 (en) * 2007-09-28 2010-07-21 Konami Digital Entertainment Co., Ltd. Image generating device, image generating method, information recording medium, and program
US9324183B2 (en) 2011-11-29 2016-04-26 Apple Inc. Dynamic graphical interface shadows
US9372593B2 (en) 2011-11-29 2016-06-21 Apple Inc. Using a three-dimensional model to render a cursor

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816137A (en) * 1994-06-29 1996-01-19 Nec Corp Three-dimensional coordinate input device and cursor display control system
JP5373612B2 (en) * 2006-09-29 2013-12-18 コーニンクレッカ フィリップス エヌ ヴェ 3D linked shadow mouse pointer

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897806A (en) * 1985-06-19 1990-01-30 Pixar Pseudo-random point sampling techniques in computer graphics
CA1317041C (en) * 1987-12-24 1993-04-27 Ncr Corporation Apparatus for creating a cursor pattern by strips related to individual scan lines
GB2220826A (en) * 1988-07-06 1990-01-17 British Aerospace A force/torque display for robotic arm
US5083287A (en) * 1988-07-14 1992-01-21 Daikin Industries, Inc. Method and apparatus for applying a shadowing operation to figures to be drawn for displaying on crt-display
JPH0727581B2 (en) * 1988-09-09 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレーション Graphic processing device
AU618133B2 (en) * 1988-11-04 1991-12-12 Wang Laboratories, Inc. Computer input device using an orientation sensor
JPH03161792A (en) * 1989-11-20 1991-07-11 Fanuc Ltd Three-dimensional cursor and offline programming system using this cursor

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2254228A (en) * 1991-03-12 1992-09-30 Matsushita Electric Ind Co Ltd Three-dimensional information handling system
US5293529A (en) * 1991-03-12 1994-03-08 Matsushita Electric Industrial Co., Ltd. Three-dimensional information handling system
GB2254228B (en) * 1991-03-12 1995-02-22 Matsushita Electric Ind Co Ltd Three-dimensional information handling system
WO1997031333A1 (en) * 1996-02-23 1997-08-28 Shalit Tomer Display arrangement and method
EP0814433A2 (en) * 1996-06-18 1997-12-29 Konami Co., Ltd. Video game system with vertical array of cursor images
EP0814433A3 (en) * 1996-06-18 2000-04-19 Konami Co., Ltd. Video game system with vertical array of cursor images
US6166718A (en) * 1996-06-18 2000-12-26 Konami Co., Ltd. Video game system with vertical array of cursor images
EP2209093A1 (en) * 2007-09-28 2010-07-21 Konami Digital Entertainment Co., Ltd. Image generating device, image generating method, information recording medium, and program
EP2209093A4 (en) * 2007-09-28 2011-10-19 Konami Digital Entertainment Image generating device, image generating method, information recording medium, and program
US9324183B2 (en) 2011-11-29 2016-04-26 Apple Inc. Dynamic graphical interface shadows
US9372593B2 (en) 2011-11-29 2016-06-21 Apple Inc. Using a three-dimensional model to render a cursor
US10691286B2 (en) 2011-11-29 2020-06-23 Apple Inc. Dynamic graphical interface shadows

Also Published As

Publication number Publication date
JPH03211686A (en) 1991-09-17
FR2654530A1 (en) 1991-05-17
AU6455390A (en) 1991-05-16
GB2238215B (en) 1994-05-11
GB9023830D0 (en) 1990-12-12
CA2028902A1 (en) 1991-05-14
FR2654530B1 (en) 1995-06-30
AU632628B2 (en) 1993-01-07

Similar Documents

Publication Publication Date Title
US5583977A (en) Object-oriented curve manipulation system
US5825363A (en) Method and apparatus for determining visible surfaces
US5414801A (en) Computerized method and apparatus using containment relationships to represent objects in a three-dimensional space, and for moving therethrough
US5442733A (en) Method and apparatus for generating realistic images using a discrete representation
US6229542B1 (en) Method and apparatus for managing windows in three dimensions in a two dimensional windowing system
JP3240157B2 (en) Method of operating a system for generating a control perception of movement of an object in a three-dimensional working area
US5588098A (en) Method and apparatus for direct manipulation of 3-D objects on computer displays
Appel et al. The haloed line effect for hidden line elimination.
US5570460A (en) System and method for volume rendering of finite element models
US6226003B1 (en) Method for rendering silhouette and true edges of 3-D line drawings with occlusion
EP0180296A2 (en) System and method for displaying and interactively excavating and examining a three dimensional volume
JP2000322172A (en) Three-dimensional display of two-dimensional window on computer screen
US5926182A (en) Efficient rendering utilizing user defined shields and windows
US5003497A (en) Method for three-dimensional clip checking for computer graphics
JP3981431B2 (en) Method and apparatus for controlling shadow shape on a computer display screen
EP0658859A2 (en) Method and apparatus for interlocking graphical objects
JPH11328441A (en) Graphics display control method and computer graphics
GB2238215A (en) Computer display system with a three dimensional cursor shadow
Phillips Geomview manual
US5926183A (en) Efficient rendering utilizing user defined rooms and windows
Wu et al. Picking and snapping for 3d input devices
Hagan et al. The Adage graphics terminal
WO1998043208A2 (en) Method and apparatus for graphics processing
Thomson et al. Theoretical studies of the electrostatic potential of some enzyme inhibitors using computer graphics techniques
WO1995011482A1 (en) Object-oriented surface manipulation system

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 19971102