|Publication number||US5012433 A|
|Application number||US 07/364,524|
|Publication date||30 Apr 1991|
|Filing date||9 Jun 1989|
|Priority date||27 Apr 1987|
|Publication number||07364524, 364524, US 5012433 A, US 5012433A, US-A-5012433, US5012433 A, US5012433A|
|Inventors||Robert M. Callahan, Bruce C. Hempel, Bob C. Liang|
|Original Assignee||International Business Machines Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (5), Referenced by (53), Classifications (4), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
This is a continuation of Application Ser. No. 07/043,067, filed Apr. 27, 1987, now abandoned.
1. Field of the Invention
The present invention relates to graphic display of computer processed information, and more particularly, to the computer processing and display of graphic primitives.
The process of selecting the portion of a primitive which lies within the viewer's field of vision has been termed clipping. This process involves removing those parts of the primitive which lie outside a viewing volume or window.
The clipping technique which has traditionally been employed in the prior art is to geometrically clip all primitives to the same viewing region, either on volume (3D) or a window (2D) that defines what will be displayed to the viewer. For example, if a filled circle surrounds a corner of a viewing window, the clipping process would create a new polygonal shape which is that portion of the circle that is totally within the viewing window. This new geometric shape (a many sided polygon) is considerably more complex to process that the original shape (a circle). Similarly, clipping of a simple cube may produce a complex polyhedron. Often it is difficult if not impossible to correctly apply the appropriate "rendering" attributes (such as pattern fill) to these more complex shapes.
2. Description of the Prior Art
There are many graphic clipping techniques described in the prior art; among those, are the following which are known to the inventors herein:
U.S. Pat. No. 3,816,726 is an early patent dealing with the three dimensional clipping of polygons which teaches the traditional prior art clipping method where a polygon is clipped to the boundaries of the real viewport. The patent does not teach nor suggest the multistage clipping method according to the present invention.
U.S. Pat. No. 4,412,296 teaches a clipping method for clipping prioritized objects such as symbol portions which intrude into a defined clipping area containing high priority information.
As above, this patent does not teach a method according to the present invention employing a multistage clipping process.
U.S. Pat. No. 4,449,201 teaches a pipeline processor system employing multiple processors to perform the geometry computations for a prior art system such as is shown in FIG. 1 herein.
The patent does not teach a multistage clipping method according to the present invention.
U.S. Pat. No. 4,491,836 teaches a two dimensional clipping process employing a clipper circuit for performing traditional clipping.
The patent does not teach a multistage clipping method in accordance with the present invention.
U.S. Pat. No. 4,492,956, as with the 836 patent above, covers a two dimensional clipping circuit which can also handle geometric primitives such as polygons.
As above, the patent does not teach a multistage clipping method as does the present invention.
U.S. Pat. No. 4,496,944 which is related to the 956 and the 836 patents, covers a high level architecture of a graphic display system and does not teach nor suggest a multistage clipping method in accordance with the present invention.
European Patent Application 82306987.7 teaches a method for clipping lines in a case where a clipping window and the viewport are the same. As with the patents above, this patent teaches a traditional prior are clipping process and does not teach nor suggest a multistage clipping method as does the present invention.
European Patent Application 84102127.2 teaches a numerical control machining apparatus with graphic display in which the graphic display method applies a geometry process to input data generated by the numerical control apparatus. The patent does not teach nor suggest a multistage clipping method in accordance with the present invention.
European Patent Application 84307611.8 teaches a pipeline processor system which employs multiple processors to handle the geometry computation process as does the '201 patent described above.
As with the previous patents, this patent does not teach nor suggest a two stage clipping method in accordance with the present invention.
European Patent Application 85104226.7 shows a traditional prior art method for clipping polygons. However, the patent application does not teach nor suggest a multistage clipping method in accordance with the present invention.
It is a primary object of the present invention to accurately and efficiently clip geometric primitives at viewport boundaries by a method which includes a number of clipping stages.
It is a further object of the present invention to accurately and efficiently clip geometric primitives as above by a method which further includes the steps of establishing a first clipping polyhedron larger than a desired field of view and defining a second polyhedron which is geometrically similar to the clipping polyhedron, the second polyhedron defining a volume optimizing trivial clipping.
It is yet another object of the invention to accurately and effectively clip geometric primitives as above by a method which further includes the steps of selecting the clipping polyhedron based upon the characteristics of data being processed.
Accordingly, a system for clipping two and three dimensional graphic primitives for use in a graphic workstation removes all graphic primitives which lie outside an arbitrary volume referred to as a clipping volume during a first clipping stage, mapping the clipping volume into a virtual viewport which is larger than a real viewport, performing post transformation operations as a processor clips a virtual viewport to the real viewport which represents a display screen.
It is an advantage of the present invention, that through the use of the clipping volume, geometric primitives may be transformed which are partially visible to the viewer in a more simple fashion and primitives which are visible are permitted to maintain a fuller set of invariant geometric characteristics so that post transformation operations or rendering characteristics may be efficiently handled.
The foregoing and other objects, features and advantages of the invention will be apparent from the more particular description of the Preferred Embodiments of the invention as illustrated in the accompanying drawing.
FIG. 1 is a schematic diagram of a prior art clipping and mapping process for a single line geometric primitive.
FIG. 2 is a schematic diagram of a prior art clipping and mapping process for a rendered wide line.
FIG. 3 is a schematic diagram of a prior art clipping and mapping process for a pattern filled circle.
FIG. 4 is a flow chart of a two stage clipping and mapping process in accordance with a preferred embodiment of the present invention.
FIG. 5 is a schematic diagram of viewport clipping masks in accordance with an embodiment of the present invention.
FIG. 6 is a schematic diagram of the process for virtual to real viewport clipping employing a mask.
FIG. 7 is a schematic diagram of a two stage clipping method according to a preferred embodiment of the present invention as applied to a wide line.
FIG. 8 is a flow chart showing the generation of a wide line in accordance with a preferred embodiment of the present invention.
FIG. 9 is a flow chart setting forth the calculation of the virtual clipping boundaries in accordance with a preferred embodiment of the present invention.
FIG. 10 is a schematic diagram of the a stage clipping method according to the present invention as applied to a pattern filled circle.
The present invention allows the clipping boundaries to be specified in such a way that a partially visible primitive will not be clipped. The primitive then retains its geometric characteristics, thus allowing the rendering stage to be processed correctly. After the rendering attributes are applied, a subsequent clipping stage is applied to ensure that only those parts within the viewing volume are shown to the viewer. This subsequent clipping stage clips the graphics data to the viewport, and may be implemented on either a "per primitive" or a "per pixel" basis.
The change in the fundamental approach results in a dramatic simplification of the process. For example, in the case of rendered wide lines, the wide lines need not be geometrically defined, but can merely be defined as a central vector and an associated width. In this way, the rendered line width will not respond to zooming, and the line will not be distorted if the window-to-viewport scaling is not the same in both the X and Y directions. These advantages are achieved without increasing the requirements for processing power or storage.
In order to mimic the process by which the eye sees, most graphics systems create a representation of the primitives to be viewed in a space called world coordinate space. The process of creating and subsequently projecting a subset of this information onto a visible area called the viewport is accomplished by means of a transformation pipeline. The traditional prior art transformation pipe, FIG. 1, consists of the following steps:
1. creation of the data by transforming a geometric primitive 200 in world coordinate space defined by world coordinate space boundary 50 (transformation 101);
2. selection of the subset of the data within the viewing window S2 to be displayed (clipping 103);
3. mapping the selected subset onto the viewport S4 (mapping 10S);
4. generating the image (rasterization).
The first three steps of this process are schematically depicted in FIG. 1.
This prior art pipeline works well when the data to be viewed can be easily expressed graphically after clipping, as is the case with simple vectors. However, when this is not the case, the following shortcomings become apparent:
1. Useful geometric information may be lost when geometric primitives lose their identity as a result of clipping. This greatly increases the difficulty of creating the correct image for the viewer, sometimes to the point of impossibility. FIG. 2 and FIG. 3 describe two such cases.
FIG. 2 illustrates the prior art method of clipping and rendering a wide line. In a geographic information system application, a physical feature such as a road may be defined as a geometric primitive, e.g. a line with an attribute indicating the overall width. In the final presentation of the road on the display, the vector representing the road is expanded into the full width for display (this is known as rendering). FIG. 2 illustrates the deficiencies of the prior art in the mapping and rendering of a wide line. The initial line 202 is clipped 103 into the viewing window 52 resulting in line 204. The mapping and rendering step 107 maps the vector to the viewport and expands the vector into a figure with width w. As can be seen from FIG. 2 areas 60 and 62 do not contain sections of the road because the line was widened after clipping. Thus, valuable information is lost.
FIG. 3 illustrates the effect of prior art clipping and mapping of a pattern filled circle. In this case the geometric primitive is circle 206 which has an attribute indicating that one half of the circle is to be filled with a pattern. The desired result would appear as 206' as shown in the figure. As shown in FIG. 3, clipping step 103 results in a portion 208 being clipped into the viewing window 52. Mapping and rendering step 107 maps clipped portion 208 to viewport 54 and applies the attribute indicating a requirement for pattern filling half the figure, resulting in object 210 being displayed. As can be seen from FIG. 3, the application of the attribute indicating to fill half the object results in an incorrect final representation of the figure.
2. In cases in which a complex geometric primitive is used many times in an image (such as filled circles being used to represent vias on a circuit board), the prior art process is costly in terms of execution time since every instance of an identical complex primitive must be run through the complete clipping process.
To overcome these shortcomings, an improved transformation pipeline uses the concepts of a three dimensional clipping volume (window) or clipping polyhedron that is an enlargement of the viewing volume (window), and a virtual viewport that is an enlargement of real viewport. This improved transformation pipeline consists of the following steps: (See FIG. 4)
1. creation of the data in world coordinate space (transformation 110);
2. selection of a subset of the data which contains the data to be displayed (first stage of clipping 112);
3. mapping the selected subset onto the virtual viewport (mapping 114);
4. elimination of those parts of the virtual viewport that should not be displayed (second stage of clipping 116);
5. generating the image (rasterization 118).
The first stage of clipping 112 in the new method is similar to the clipping 103 performed in the traditional method, except that it uses a clipping volume (window) that is different than the actual viewing volume (window) and it can operate on simpler representations of primitives (e.g., a central vector and a width for a wide line, or a position and radius for a circle) since a subsequent stage of clipping will take care of the final result. A different clipping volume (window) may be used for each type of primitive. The amount by which the viewing volume (window) should be enlarged to obtain the clipping volume (window) boundaries is usually a function of the size of the primitive being processed (for example, w, the width, in the case of a wide line; r, the radius, in the case of a circle; w, the width of the character box, in the case of a character; and so on; see FIG. 9). When the primitive's size is a rendering attribute, the function used to obtain the clipping volume (window) boundaries must take into account the zoom or shrink effects of the mapping process, since the first stage of clipping takes place prior to mapping. In addition, a different clipping volume (window) may be used for determining whether a primitive may be trivially accepted or rejected than is used when a clip is required.
The mapping 114 in the method according to the present invention is similar to the mapping 105 done in prior art methods, except that it maps the clipping window to the virtual viewport instead of mapping the viewing window to the real viewport.
The subsequent stage of clipping 116 discards those portions of the virtual viewport that lie outside the real viewport. It may be implemented in one of the following ways:
1. As a separate step in the transformation pipeline after the mapping 114 and before rasterization 118; in this case, the clipping is done against the actual viewport on a primitive-by-primitive basis. This can be done in microcode, avoiding the cost of additional hardware.
2. As a separate step in the transformation pipeline after the rasterization process 118; in this case, the pixel processor hardware can be designed to discard pixel data according to one or both of the following criteria:
a. The pixel data does not lie within acceptable minimum/maximum limits (such as the real viewport, or a real view volume in a solids or shading graphics system).
b. The pixel data is "masked off" for update by an update mask. Such an update mask (one bit for every pixel in the system) could be defined prior to the processing of a graphic primitive. This criteria allows for the creation of arbitrarily shaped viewports. This is shown in FIG. 5 and FIG. 6.
FIG. 5 is a representation of the pixel data contained in a virtual viewport 70, a mask for the real viewport 72, and the resulting real viewport 74. The virtual viewport 70 contains the data which, absent a mask, would be written to the real viewport. The virtual viewport is defined beginning at row 1, column 1 and is shown, in the example, as a 9×9 matrix. A mask 72 may be defined which protects certain areas of the frame buffer against writing. The mask in the example is defined starting a row 2, column 2, it is a 7×7 matrix corresponding to the resulting viewport 74. The mask 72 is applied to the source 70 so that pixels are modified in real viewport 74 only when a pixel is both modified in virtual viewport 70 and is allowed to be written by mask 72. The real viewport 74 shows the result of this operation.
FIG. 6 is a graphical illustration of this process. Virtual viewport 76 sends the figure desired to be drawn as a striped triangle 220. The mask 78 defines a circle to mask the final viewport. The resultant viewport 80 shows the desired triangle 220 as masked by circle 222.
The advantages of performing the final clipping stage after the rasterization process are very good performance and the ability to have arbitrarily complex viewport shapes.
FIG. 7 shows how the new transformation pipeline is used to advantage in the generation of a rendered wide line. FIG. 8 and FIG. 9 are more detailed flow charts showing how a two stage clipping method is implemented to handle this primitive.
Another example of the use of the improved method is shown in FIG. 10, where the problem of clipping a pattern filled circle, previously discussed with reference to FIG. 3, is solved by the present invention.
FIGS. 1, 2 and 3, schematically showing prior art transformation, clipping, and mapping of geometric primitive, form a base from which the method according to the present invention may be described. In all cases there are three major steps which must be performed in the generation of graphic primitives involving clipping. First, the primitive must be transformed from a first coordinate space to a second coordinate space wherein the transformation may also include rotation, scaling and translation. These operations are all well known in the prior art and are described in the IBM 5080 Model 2 Principles of Operations, IBM Publication Number GA23-2012.
As can be seen with reference to FIG. 2, when a wide line is to be drawn after clipping in a prior art transformation clipping and mapping system, there are areas, namely 60 and 62 shown in the bottom right rectangle where 60 represents the additional area of the wide line which should be drawn within the viewport at the lower left end of the wide line and 62 represents that area of the wide line which should be drawn in the viewport at the upper right end of the wide line. The prior art wide line clipping methods fail with respect to this aspect of the clipping process.
Similarly, referring now to FIG. 3 with respect to a pattern filled circle which is clipped, the pattern filling is not drawn correctly because the starting position information is lost through the clipping and mapping process of the prior art methods.
Referring now to FIG. 4, the transformation clipping and mapping pipeline in accordance with the present invention, will be described.
The first step in the process is to create or transform 110 the data 15 in the world coordinate space which in a typical example may be from minus 32K to plus 32K in all three dimensions. This step may be done by the workstation by moving data from storage into the processor or it may be done interactively with the operator involvement. (See IBM 5080 Principles of Operations for an example of this Operation.)
Next, as more fully shown in FIG. 7, a first clipping stage 112 includes the selection of a data subset containing the data which is to be displayed on the graphics display screen. This stage of clipping employs a clipping volume or window 20 which may be larger than the actual viewing volume 22. In the case of a wide line, for example, the width of the virtual viewing volume may exceed the width of the real viewing volume by an amount equal to the value obtained by applying the inverse of the mapping transformation to one-half the width of the line. The value thus obtained is applied to the horizontal and vertical boundaries of the viewing window to obtain the enlarged clipping window. Thus, for a rectangular viewing volume, there would be added the additional dimension w'x /2 to both sides of the x boundary of the real viewing volume and w'y /2 to both sides of the y boundary of the real viewing volume so that the new virtual viewing volume would have a dimension x+w'x along the x axis and y+w'y along the y axis (See 21, 22 in FIG. 7). The inverse mapping transformation results in the w'x and w'y values which are related to wx and wy by the mapping transform.
The selected data subset is then mapped 114 to a virtual viewport 30. Mapping step 114 includes rendering the final object or expanding the clipped primitive object 17 into displayed object 34. The bounds of object 34 (42, 44, 46, 48) are determined, for a rectangular object, by adding one half the desired width (w/2) to the endpoints of the clipped primitive 17. Next, the rasterization step 118 is performed. After rasterization a second stage of clipping 116 is performed. In this second stage of clipping 116, that part of the virtual viewport 30 outside the real viewport 32 is eliminated so that the resultant image 35 to be displayed contains only those pixels within the real viewport. In this way, areas 60 and 62 with respect to FIG. 2 above will be properly displayed and the wide line will be accurately rendered. The masking process is shown in FIG. 5, and an example of a triangle masked by a circular mask is shown schematically in FIG. 6.
Referring again to FIG. 7, the results of the improved multistage clipping method according to a preferred embodiment of the present invention are schematically described. First, a line primitive 15 is shown in a clipping window 20 against which it is clipped 112 and mapped 114 to a virtual viewport 30 which is larger than the real viewport 32 to allow the wide line 34 to be accurately rendered in the real viewport 32. The area 36 of the virtual viewport outside the real viewport 32 is then discarded leaving the rendered wide line 34 clipped properly to the real viewport 32 for display as object 35.
Referring now to the flowchart of FIG. 8, the method of generation of a wide line primitive, according to the present invention, will be described. A graphics processor transforms end points of a central vector of the wide line much the same as was described with respect to FIG. 1 for prior art transformation 122.
The central vector of the wide line is then clipped by the first clipping stage 124 against the clipping window which, as indicated, may be larger than the viewing window. The clipped central vector is then mapped 126 from the clipping window where the first clipping stage occurs to the virtual viewport. The mapping, as with the transformation above, may be performed in the manner as described in the prior art including the above referenced 5080 Principles of Operation Manual.
The four corners 42, 44, 46, 48 of the wide line 34 (now defined as a polygon) are computed 128 by applying half the line width w in both directions to the perpendicular to the clipped and mapped central vector 15 at each of the end points of the central vector. (See FIG. 7).
Next, pixels interior to the rectangle defined by the four corner points of the wide line 34 are generated 130 while a second stage clipper such as a min/max hardware clipper discards those pixels that are outside the real viewport.
As above, the steps of generating pixels and performing the second stage clipping may be performed by apparatus described in the above referenced Principles of Operation Manual for the IBM 5080 Model 2.
Referring now to FIG. 9a and in FIG. 9b the process for calculating the clipping boundaries will be described.
The ratio of the width of the clipping window 22 to the width of the real viewport 32 is calculated 142. The ratio of the height of the clipping window 22 to the height of the real viewport 32 is calculated 142. These calculations are straightforward ratio calculations and are readily implemented in hardware or system microcode in a graphics display workstation.
The wide line width is then multiplied 144 by each of the ratios computed to obtain Dx and Dy, the amounts by which the viewing window 22 must be enlarged to obtain the clipping window.
The left edge of the clipping window is calculated 146 as the maximum of the left edge of the world coordinate space and the left edge of the viewing window diminished by Dx. Then, the right edge of the clipping window is calculated 148 as the minimum of the right edge of the world coordinate space and the right edge of the viewing window increased by Dx.
The lower edge of the clipping window is calculated 150 as a maximum of the lower edge of the world coordinate space and the lower edge of the viewing window diminished by Dy. Then, the upper edge of the clipping window is calculated 152 as the minimum of the upper edge of the world coordinate space and the upper edge of the viewing window increased by Dy. FIGS. 8 and 9 describe the preferred embodiment of the present invention as applied to the drawing of a wide line after processing through a two stage clipping system in accordance with the present invention.
FIG. 10 is a schematic diagram of the method in accordance with the present invention applied to a pattern filled circle.
The circular object 230 is first created within the clipping window 20. Clipping window 20 has been defined as having extra clipping space 36' based upon the geometric shape of object 230. In this case, 36' is large enough so that the full circle 230 may be shown within the clipping window. First clipping stage 112 results in the fully drawn circle 230. Mapping and rendering step 114 create the final image 232 in a virtual viewport 30 which is larger than real viewport 32. The rendering portion of step 114 applies the fill attribute to fill one half of the circle as shown at 232. The second stage of clipping 116 then clips the rasterized version of the half filled circle to produce final display object 234 in real viewport 32. FIG. 10 should be compared with FIG. 3 to see the improvement in the display of the desired image after the clipping and masking process according to the present invention has been performed.
While the invention has been described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and detail may be made without departing from the spirit or scope of the invention.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4360876 *||2 Jul 1980||23 Nov 1982||Thomson-Csf||Cartographic indicator system|
|US4492956 *||13 Sep 1982||8 Jan 1985||Calma Company||Graphics display system and method including preclipping circuit|
|US4653012 *||15 Aug 1984||24 Mar 1987||Marconi Avionics Limited||Display systems|
|US4736200 *||21 Nov 1983||5 Apr 1988||Tokyo Shibaura Denki Kabushiki Kaisha||Graphic processing apparatus with clipping circuit|
|US4811241 *||21 Jan 1986||7 Mar 1989||International Business Machines Corporation||Clipping of fixed character strings in a graphics system|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US5202671 *||17 Oct 1991||13 Apr 1993||International Business Machines Corporation||Pick function implementation in a parallel processing system|
|US5208909 *||23 Oct 1989||4 May 1993||International Business Machines Corporation||Pre-drawing pick detection in a graphics display system|
|US5258756 *||11 May 1990||2 Nov 1993||Rockwell International Corporation||Apparatus and method for displaying energy management circles on displays for electronic flight instrument systems|
|US5297240 *||25 Feb 1992||22 Mar 1994||Sun Microsystems, Inc.||Hardware implementation of clipping and intercoordinate comparison logic|
|US5384907 *||27 May 1994||24 Jan 1995||Fujitsu Limited||Method for carrying out scissoring -processing of stroke letters in a screen display|
|US5428716 *||26 Dec 1991||27 Jun 1995||International Business Machines Corporation||Solid-clip methodology and architecture for clipping solid models and displaying cross-sections using depth-buffers|
|US5432894 *||21 Aug 1992||11 Jul 1995||Fujitsu Limited||Graphic data processing system with improved retrieval and display of graphical forms|
|US5491494 *||19 Nov 1993||13 Feb 1996||International Business Machines Corporation||Pick correlation|
|US5666474 *||15 Feb 1994||9 Sep 1997||Canon Kabushiki Kaisha||Image processing|
|US5936642 *||27 Mar 1997||10 Aug 1999||Shinko Electric Industries, Co., Ltd.||Parallel graphic processing system using a network|
|US6008822 *||21 May 1999||28 Dec 1999||Shinko Electric Industries, Co., Ltd.||Parallel graphic processing system using a network|
|US6124858 *||14 Apr 1997||26 Sep 2000||Adobe Systems Incorporated||Raster image mapping|
|US6229518||7 Oct 1998||8 May 2001||Seiko Epson Corporation||Apparatus and method for controlling a software cursor|
|US6271862 *||7 Oct 1998||7 Aug 2001||Seiko Epson Corporation||Apparatus and method for determining line clipping intersection points|
|US6381375 *||6 Apr 1998||30 Apr 2002||Cognex Corporation||Methods and apparatus for generating a projection of an image|
|US6515688||4 Apr 1997||4 Feb 2003||International Business Machines Corporation||Viewer interactive three-dimensional workspace with a two-dimensional workplane containing interactive two-dimensional images|
|US6542168 *||29 Jul 1997||1 Apr 2003||Fujitsu Limited||Three-dimensional window displaying apparatus and method thereof|
|US6687402||23 Oct 2001||3 Feb 2004||Cognex Corporation||Machine vision methods and systems for boundary feature comparison of patterns and images|
|US6831660 *||15 Jun 2000||14 Dec 2004||International Business Machines Corporation||Method and apparatus for graphics window clipping management in a data processing system|
|US6848082 *||16 Dec 1999||25 Jan 2005||Autodesk, Inc.||Reactor-based viewport clipping using arbitrary graphical entities|
|US6967664 *||20 Apr 2000||22 Nov 2005||Ati International Srl||Method and apparatus for primitive processing in a graphics system|
|US7006669||31 Dec 2000||28 Feb 2006||Cognex Corporation||Machine vision method and apparatus for thresholding images of non-uniform materials|
|US7215345 *||9 Apr 1999||8 May 2007||Sun Microsystems, Inc.||Method and apparatus for clipping video information before scaling|
|US7218331 *||13 May 2003||15 May 2007||Via Technologies, Inc.||Bounding box in 3D graphics|
|US7310103||5 Mar 2002||18 Dec 2007||Sun Microsystems, Inc.||Pipelined 2D viewport clip circuit|
|US7639861||14 Sep 2005||29 Dec 2009||Cognex Technology And Investment Corporation||Method and apparatus for backlighting a wafer during alignment|
|US7724261 *||4 Jun 2007||25 May 2010||Mips Technologies, Inc.||Processor having a compare extension of an instruction set architecture|
|US7808511||28 Apr 2009||5 Oct 2010||Isee Media, Inc.||Method and system for streaming documents, E-mail attachments and maps to wireless devices|
|US8024393||3 Dec 2007||20 Sep 2011||Mips Technologies, Inc.||Processor with improved accuracy for multiply-add operations|
|US8111904||7 Oct 2005||7 Feb 2012||Cognex Technology And Investment Corp.||Methods and apparatus for practical 3D vision system|
|US8162584||23 Aug 2006||24 Apr 2012||Cognex Corporation||Method and apparatus for semiconductor wafer alignment|
|US8237740||17 Dec 2010||7 Aug 2012||Synchronica Plc||Method and system for receiving a local vector object and viewing a vector image|
|US8243080||17 Dec 2010||14 Aug 2012||Synchronica Plc||Method and system for receiving an indexed look-up table and viewing a vector animation sequence|
|US8405660||28 Apr 2009||26 Mar 2013||Synchronica Plc||Method and system for streaming documents, E-mail attachments and maps to wireless devices|
|US8878851 *||12 Nov 2004||4 Nov 2014||Synchronica Plc||Method and system for streaming documents, e-mail attachments and maps to wireless devices|
|US20030169277 *||5 Mar 2002||11 Sep 2003||Charles Patton||Pipelined 2D viewport clip circuit|
|US20040227772 *||13 May 2003||18 Nov 2004||Hsilin Huang||Bounding box in 3D graphics|
|US20060103665 *||12 Nov 2004||18 May 2006||Andrew Opala||Method and system for streaming documents, e-mail attachments and maps to wireless devices|
|US20070081714 *||7 Oct 2005||12 Apr 2007||Wallack Aaron S||Methods and apparatus for practical 3D vision system|
|US20070211283 *||21 Feb 2007||13 Sep 2007||Oki Data Corporation||Image processing apparatus|
|US20070273918 *||27 Aug 2004||29 Nov 2007||Manuel Gonzalez||Printing Digital Documents|
|US20080022077 *||4 Jun 2007||24 Jan 2008||Mips Technologies, Inc.||Processor having a compare extension of an instruction set architecture|
|US20080050006 *||23 Aug 2006||28 Feb 2008||Cognex Corporation||Method and apparatus for semiconductor wafer alignment|
|US20090262121 *||28 Apr 2009||22 Oct 2009||Andrew Opala||Method and system for streaming documents, e-mail attachments and maps to wireless devices|
|US20090262133 *||28 Apr 2009||22 Oct 2009||Andrew Opala||Method and system for streaming documents, e-mail attachments and maps to wireless devices|
|US20110148886 *||17 Dec 2010||23 Jun 2011||Andrew Opala||Method and system for receiving an indexed look-up table and viewing a vector animation sequence|
|US20110153776 *||17 Dec 2010||23 Jun 2011||Andrew Opala||Method and system for receiving a local vector object and viewing a vector image|
|DE19818991A1 *||28 Apr 1998||11 Nov 1999||Japan Nuclear Cycle Dev I Toka||Method of locating objects in an observation volume or display region in computer graphics|
|DE19818991B4 *||28 Apr 1998||11 Oct 2007||Japan Nuclear Cycle Development Institute, Tokai||Verfahren und System zum Auswählen und Anzeigen von in einem Betrachtungsvolumen enthaltenen Objekten|
|EP0889437A2 *||30 Mar 1998||7 Jan 1999||Adobe Systems, Inc.||Raster image mapping|
|EP0889437A3 *||30 Mar 1998||18 Aug 1999||Adobe Systems, Inc.||Raster image mapping|
|WO2005024623A2 *||27 Aug 2004||17 Mar 2005||Hewlett-Packard Development Company, L.P.||Printing digital documents|
|WO2005024623A3 *||27 Aug 2004||28 Apr 2005||Hewlett Packard Development Co||Printing digital documents|
|25 Aug 1994||FPAY||Fee payment|
Year of fee payment: 4
|24 Nov 1998||REMI||Maintenance fee reminder mailed|
|2 May 1999||LAPS||Lapse for failure to pay maintenance fees|
|29 Jun 1999||FP||Expired due to failure to pay maintenance fee|
Effective date: 19990430