Abstract:
An optoelectronic computer graphics system is disclosed wherein Optoelectronic Integrated Circuits (OEICs) and computer generated holograms are used to construct a final image by optically assembling a plurality of primitive image portions into the final image. The primitive portions of the final image are stored in a hologram. An optoelectronic integrated circuit means is controlled to select, and then assemble, the necessary primitive images to form the final image.

Description:
This invention was made with Government support under contract ECD-9015128 awarded by the National Science Foundation. The Government has certain rights in this invention. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention pertains to the field of computer graphics systems, and more specifically to such a system wherein Optoelectronic Integrated Circuits (OEICs) and computer generated holograms are used to provide parallel processing of image data. 
     2. Description of the Prior Art 
     A computer stored scene (for example, a scene that comprises a number of objects, such as books lying on a desk top) is digitally stored by describing the objects in terms of their three-dimensional coordinates. Prior to display, the objects are decomposed into a sequence of polygons, or other simple primitive shapes. 
     The above-mentioned sequence of polygons are conventionally displayed by way of converting the polygon shapes into their basic x,y, or x,y,z coordinates, and often additionally into the shade or color of the polygons. In order to visually display such a scene, these stored coordinates must first be converted into pixels. This conversion operation is time consuming and costly since there are often thousands of such primitives in a scene, each individually comprising thousands of pixels. 
     The present invention uses well-known OEICs as components thereof; i.e., integrated circuit devices generally comprising a two-dimensional array of input light detectors, each detector being series connected to one or more semiconductor circuit elements and to an output laser. An exemplary form of known OEIC is described in the article entitled &#34;An Optically Controlled Digital Optical Matrix Processor&#34;, SPIE, Vol. 1773 Photonic Neural Networks (22-24 Jul. 1992) at pages 201 through 207, which article is incorporated herein by reference. 
     As is well known, OEICs of this type can be configured as Programmable Optoelectronic Logic Arrays (POLAs) and as Arithmetic Logic Unit Programmable Logic Arrays (ALU POLAs), such as are used in the present invention. 
     SUMMARY OF THE INVENTION 
     This invention provides a fast and inexpensive means for generating visual graphics display information, wherein OEICs and computer-generated holograms provide parallel processing of graphics image data that is digitally contained in memory in a front end digital computer. More specifically, the present invention makes use of OEICs in the form of POLAs. 
     In a manner well known in the art, a scene is decomposed into a sequence of polygons, which are first digitally stored in the memory portion of a front end computer by way of converting the polygons into their basic x,y, or x,y,z spatial coordinates. 
     A conventional optoelectronic interface unit converts the digitally-stored polygons that comprise an overall image into output bundles of light beams comprising image data and opcode. This data/opcode light output is then provided to an optoelectronic control unit (for example, a control unit of the general type that is described in the above mentioned article entitled &#34;An Optically Controlled Digital Optical Matrix Processor&#34;, SPIE, Vol. 1773 Photonic Neural Networks (22-24 Jul. 1992) at pages 201 through 207). 
     This control unit is constructed in accordance with the invention to contain several two-dimensional hologram arrays (i.e., a holographic ROMs) that include not only the next address for the control unit and output control data from the control unit, as is described in the above-mentioned article, but to also contain a plurality of hyperplane or other primitive images or components. Each individual hyperplane comprises a primitive portion of a polygon. 
     A plurality of these polygon portions, or primitives, are selected from the array by operation of the control unit. The selected polygon primitives are then assembled by operation of Boolean AND, NAND, OR and NOR logic, as is implemented by an Arithmetic Logic Unit Programmable Optoelectronic Logic Array (ALU POLA), to thus form a final polygon as a portion of the overall final output graphic frame which usually comprises a number of different polygons. 
     More specifically, a first POLA operates as a hyperplane buffer register to hold a first hyperplane image as this first image is received from the above mentioned holographic ROM. The content of the hyperplane buffer is then transferred to a second POLA operating as a polygon buffer register, the hyperplane buffer is cleared, and a second hyperplane image is received by the hyperplane buffer from the above-mentioned holographic ROM. 
     The content of the hyperplane buffer and the content of the polygon buffer are now ANDed by operation of the ALU POLA, and the result is stored in the polygon buffer. When a complete polygon has been thus formed, the result is ORed into a third POLA operating as a frame buffer, and the polygon buffer is cleared. 
     This process continues until all selected polygon primitives have been assembled to form a final frame in the frame buffer. Usually, the final graphics image comprises a number of such final polygons. These additional polygons are assembled in the frame buffer by operation of the ALU POLA operating to perform an OR logic function on the content of the polygon buffer and the frame buffer. 
     The final graphics image is then optically read out from the frame buffer into a display; for example, by the use of a lens. 
     Objects, advantages and features of the invention include the use of fewer components since the images are processed in parallel and the POLA OEICs are interconnected with light beams instead of wires, a much higher speed of operation since graphics primitives are accumulated at a rate that is independent of the number of pixels in the primitives, a simple means for outputting the entire image simultaneously instead of serially, small physical size, light weight, and low power consumption. 
     These and other objects, advantages and features of the invention will be apparent to those of skill in the art upon reference to the following detailed description of the invention, which description makes reference to the drawing. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     FIG. 1 is a schematic showing of the invention. 
     FIG. 2 shows the control unit of FIG. 1 in detail. 
     FIG. 3 shows the OEIC structure of FIG. 1 in detail. 
     FIGS. 4a-4g illustrate how the first graphics frame of FIG. 4g is formed. 
     FIGS. 4h-4k illustrate how the second graphics frame of FIG. 4k is formed. 
     FIG. 4l illustrates how the first and second graphics frames are merged to form the final graphics frame of FIG. 4l. 
     FIG. 5 is a plan view of an exemplary hyperplane holographic ROM of FIG. 2, the ROM containing, as an example, six individual hologram. 
     FIG. 6 is a plan view of the output lasers of an exemplary 7×7 NOR gate array of FIG. 2. 
     FIGS. 7a and 7b show two exemplary polygon primitives that can be produced from a selected one of the holograms in the hyperplane ROM of FIG. 5 by selective energization of the output lasers of FIG. 6, wherein laser column selection selects one of the holograms of FIG. 5, and wherein laser row selection changes the position the selected hologram in the polygon buffer of FIG. 1, thus operating to place the selected polygon primitive, and thereby the final polygon of which this polygon primitive is a portion, into a desired location in a final graphics frame. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1 provides a schematic showing of the invention; i.e., a means for generating a visual graphics display at display 44, wherein OEICs 30-32 and 40 and computer generated holograms to be described provide parallel processing of graphics image data that is digitally contained in memory in front end digital computer 12. More specifically, a sequence of polygons is first digitally stored in the memory portion of front end computer 12 by way of converting the polygons into their basic x,y, or x,y,z spatial coordinates. A conventional optoelectronic interface unit 13 converts the digitally-stored polygons that comprise an overall image into output bundles of light beams 15,16 comprising image data and opcode. Data/opcode light output 15,16 is provided to a known optoelectronic control unit 20. 
     As will be described, control unit 20 is constructed in accordance with the invention to contain two dimensional hologram arrays, also called holographic ROMs. A first hologram array includes the next address for the control unit (see 66 of FIG. 2), and the output control data (opcode) 21, 22, 23 and 24 from control unit 20 that operates to control POLA OEICs 40,32,31 and 30, respectively. A second hologram array includes hyperplane image data 25 that is periodically written into OEIC 30, as will be described. As will be described, each individual hyperplane (i.e., image data 25) that is written into OEIC 30 comprises a primitive portion of a final polygon frame that appears in OEIC 40. 
     A plurality of these primitive polygon portions are selected from the control unit&#39;s holographic hyperplane array (i.e., the second of the above-mentioned holographic array) as selected by operation of output light signals 15,16 from front end computer 12. The selected polygon primitives are then assembled by Boolean operations implemented by ALU POLA 40 to form a final polygon as a portion of the overall final output graphic frame which usually comprises a number of different polygons. 
     Front end computer 12 is a conventional and well-known electronic digital computer having a memory portion 17 in which one or more images (for example, one or more polygons) are stored as by defining the polygon coordinates, color, shading, etc. Computer 12 also includes hyperplane selection means. This manner of storing a graphics image in memory 17 is well known and will not be described herein. 
     A conventional and well-known optoelectronic interface unit 13 interfaces with front end computer 12, and operates to convert the digital graphic images that are stored in memory 17 into output bundles of light beams 15,16, which output comprises polygon data input (i.e., the x,y coordinates of a hyperplane) and control opcode input, respectively, to optoelectronic control unit 20. Control unit 20 is shown in detail in FIG. 2, and is generally of the well-known type that is described in the above-mentioned article that is incorporated herein by reference, the control unit being modified in accordance with the invention to contain a holographic hyperplane array and associated hardware. 
     A POLA OEIC, operating as a hyperplane buffer 30, receives both control input data 24 and hyperplane polygon primitive data 25 from control unit 20. POLA OEICs 31 and 32 operate as polygon and frame buffers, respectively. As will be described, polygon buffer 31 operates to assemble polygon primitives into one complete polygon, which complete polygon is then transferred to frame buffer 32. Usually, a final graphic frame comprises a number of individually complete polygons. In this case, such a plurality of individual polygons are assembled in frame buffer 32 in order to provide a final graphic frame as defined by a graphics image contained in memory 17 of front end computer 12. 
     More specifically, a first POLA 30 operates as a hyperplane buffer register to hold a first hyperplane primitive as this first primitive is received by operation of light ray bundle 24 from the above-mentioned holographic hyperplane ROM within control unit 20. The content of hyperplane buffer 30 is then transferred, by operation of light ray bundles 35 and 36, to a second POLA 31 operating as a polygon buffer register. Hyperplane buffer 30 is cleared by operation of control ray bundle 25, and a second hyperplane primitive image is received by hyperplane buffer 30 from the above-mentioned holographic hyperplane ROM by operation of light ray bundle 25. 
     The content of hyperplane buffer 30 and the content of polygon buffer 31 are now ANDed by operation of ALU POLA 40, and the result is stored in polygon buffer 31 (see light ray bundles 35 and 36). When a complete polygon has been thus formed in polygon buffer 31, the result is stored by operation of light ray bundles 36 and 37 in a third POLA 32 operating as a frame buffer, and polygon buffer 31 is then cleared by operation of control ray bundle 23. 
     This process continues until all selected polygons have been assembled to form a final frame in frame buffer 32. Usually, the final graphics image comprises a number of polygons. These additional polygons are assembled in frame buffer 32 by operation of ALU POLA 40 operating to perform an OR logic function on the content of polygon buffer 31 and frame buffer 32 (see light ray bundles 36 and 37). 
     The final graphics image is then optically read out from frame buffer 32 into display 44 via ALU POLA 40 (see light ray bundles 37 and 42). Display unit 44 receives light ray input 42 from ALU POLA 40, converts this input into electrical signals, and uses these electrical signals to drive a conventional visual display, such as a CRT, all of which is well known and thus will not be described herein. 
     FIG. 2 shows the optoelectronic control unit 20 of FIG. 1 in detail. Control unit 20 comprises two portions; i.e., opcode portion 201 and hyperplane portion 202. Opcode portion 201 receives opcode optical input 15 from interface unit 13 of FIG. 1, and hyperplane portion 202 receives hyperplane optical input data 16; i.e., the x and y coordinate address of a hyperplane from interface 13. 
     Relative to opcode portion 201, optical input 15 provides an address to one hologram within opcode ROM 63; i.e., opcode input 15 operates to select one hologram within a one-row array of holograms 63, also called opcode ROM 63. Optical input 15 is provided to a dual rail optical input structure 50 (also see optical data input 15 shown in FIG. 1). Thus, an exemplary 3-bit binary address 16 of &#34;101&#34; for one hologram within array 63 is received as the 6-bit address &#34;100110&#34; in a manner well known in dual rail systems. As is well known in the art, the initial optical input 15 includes the starting address of a control sequence for control unit portion 201. 
     Input dual rail NOR gate array 50 comprises a first optoelectronic NOR gate array having an exemplary six input light detectors that are arranged in a row and operate to receive the exemplary 3-bit dual rail address input 15, all of this being of well-known construction. NOR gate array 50 comprises a plurality of individual gates, each individual one of which comprises, in series, an input light detector, an electronic signal amplifier, and electronic signal inverter, and an output laser. NOR gate array 50 provides this input address information 51, 52, 53 to fanout hologram 55. 
     As is well known to those of skill in the art, fanout hologram 55 computes the eight minterms of address information 51, 52, 53, and presents these minterms as inputs to a second NOR gate array 60 of similar construction to NOR gate array 50, the input light detectors of array 60 being arranged in a row, each member of array 60 corresponding to one hologram within array 63. The minterms computed at fanout hologram 55 select one, and only one, NOR gate of array 60; i.e., select one NOR gate that does not receive a light beam from the output of fanout hologram 55. This one NOR gate of array 60 now operates to generate an output light beam 61, as a decoded address, to one of the holograms within holographic ROM 63. 
     As is well known, the thus selected hologram from array 63 contains the next address 66 for control unit portion 201, this next address being applied to the input light detectors of NOR gate array 50 (for example, via mirrors 68 and 69). In addition, the selected hologram from array 63 contains the optical control information 21-24 for ALU 40, frame buffer 32, polygon buffer 31, and hyperplane buffer 30, as is shown in FIG. 1. 
     Relative to hyperplane portion 202, an optical input 16 provides an address to one hologram within holographic hyperplane array 163; i.e., input 16 operates to select one hologram within a one-row array 163 of holograms (also called hyperplane ROM 163). Optical input 16 is provided to two dual rail address input structures 151 and 152 (also see optical data input 16 shown in FIG. 1). 
     Dual rail NOR gate structures 151 and 152 are of the same general construction as dual rail opcode decoder 50. Dual rail decode structure 151 operates to decode the x coordinate of hyperplane input 16, whereas dual rail decode structure 152 operates to decode the y coordinate of hyperplane input 16. 
     The outputs of dual rail structures 151,152 are provided to fanout holograms 255 and 155, respectively. Fanout holograms 255,155 operate to compute the minterms of the y coordinate address and the x coordinate address, respectively. As a result, NOR gate array 160 is illuminated at all but one gate input thereof. More specifically, NOR gate array 160 is arranged in columns and rows, corresponding respectively to the x and y coordinates of hyperplane input 16. Operation of NOR gate arrays 151,152 is such that the output of y-coordinate NOR gate array 151 illuminates all but one column of inputs to NOR gate array 160, whereas the output of x-coordinate NOR gate array 152 operates to illuminate the input of all but one row of inputs to NOR gate array 160. 
     As a result, only one of the gates within NOR gate array 160 is activated; i.e., the gate that is located at the intersection of the above mentioned column and row does not receive light. A single light beam 161 from this one gate now operates to illuminate one of the hyperplane holograms within holographic hyperplane array 163. This illuminated hologram provides an image of its hyperplane to hyperplane buffer 30 by way of beams 25. 
     Stated in another way, the thus selected hologram from array 163 contains a holographic image of a hyperplane that defines one primitive portion of a graphics polygon that is currently being assembled in polygon buffer 31 of FIG. 1. Once the needed shape of the primitive polygon portion has been selected by the column address within x,y coordinate data 16, it is necessary to place this shape at the proper physical location within hyperplane buffer 30. This is done by way of the row address within x,y coordinate data 16 operating to select the proper row within a selected column of the input light detectors of NOR gate array 160. 
     FIG. 5 is a plan view of hyperplane ROM 163 showing six exemplary holograms contained therein. ROM 163, in fact, contains many more individual holograms arranged in a linear array. FIG. 6 is a plan view of the output lasers of an exemplary seven column, seven row NOR gate array 160. 
     Assume now that laser 46 in column four, row four, emits decoded address light beam 161. This address selection operates to provide the exemplary polygon primitive 45 of FIG. 7a to hyperplane buffer 30 of FIG. 1. Now assume that laser 47 in column four, row six had been energized by operation of decodes 151 and 152. This address selection operates to provide the same exemplary polygon primitive 45 to hyperplane buffer 30 of FIG. 1; however, in this case, polygon primitive 45 has been moved vertically upward as is shown in FIG. 7b. 
     Thus, selection of the proper output laser within column four of FIG. 6 operates to locate hyperplane 45 at a required vertical position so as to site hyperplane 45 at the correct position, and thereby place hyperplane 45 into the correct position to form the requisite polygon portion (for example, in hyperplane buffer 30 of FIG. 1). 
     In summary, selection of an output laser column in FIG. 6 operates to select one of the polygon primitive holograms from hyperplane ROM 163 of FIG. 5, whereas selection of a laser within a selected laser column of FIG. 6 operates to place the column-selected polygon primitive at a desired vertical elevation in the process of forming a complete polygon. 
     Once a hyperplane has been projected on and stored in hyperplane buffer 30 of FIG. 1, this stored hyperplane is ANDed with the accumulated hyperplanes that have been previously stored in polygon buffer 31, this AND function being performed by ALU POLA 40. Once a polygon has been completed, and this will take N cycles for an N sided polygon, the completed polygon in polygon buffer 31 is ORed into frame buffer 32. Without limitation thereto, the following algorithm describes this process, wherein PB means polygon buffer 31, HP means hyperplane buffer 30, FB means frame buffer 32, and the symbol 0 means that the designated buffer is cleared. 
     
         ______________________________________  repeat until FrameComplete   begin   PB := 0   repeat until PolygonComplete    HB := 0;    HP := NextHyperplane;    PB := PB and HP    end;   FB := FB or PB;   end;  OutputFrame;  FB := 0;______________________________________ 
    
     Without limitation thereto, the following opcodes 15 would be used by front end computer 12 to communicate with control unit 20. 
     HPX coord ;x coordinate of hyperplane in frame coords. 
     HPY coord ;y coordinate of hyperplane in frame coords. 
     
         ______________________________________MH                ;make hyperplane.MP                ;make polygon.OF                ;output frame.______________________________________ 
    
     Without limitation thereto, front end computer 12 would use the following algorithm to generate a graphics frame. 
     
         ______________________________________  repeat until FrameComplete   begin   repeat until PolygonComplete    begin    HPX coord;    HPY coord;    MHP    end;   MP;   end;  OF;______________________________________ 
    
     By convention, front end computer 12 specifies whether pixels of a hyperplane frame are to be illuminated to the right/below line 43 of FIG. 5, or to the left/above line 43, by sending a positive or a negative integer coordinate specifier as part of opcode 15. In the latter case, the content of hyperplane buffer 30 is inverted by passing it through ALU POLA 40 configured to a NOR configuration. Since ALU POLA 40 has only one operand, it will perform the NOT of hyperplane buffer 30 before ANDing hyperplane buffer 30 with polygon buffer 31. 
     FIG. 3 shows the OEIC POLA structure 30, 31, 32 and 40 of FIG. 1 in detail. This figure shows how hyperplane buffer 30, polygon buffer 31, frame buffer 32 and ALU POLA 40 intercommunicate via mirrors 75, 79 and 82 and beam splitters 76, 77, 78, 80 and 81. For example, when a polygon primitive is to be transferred from hyperplane buffer 30 to polygon buffer 31, light beam paths 70, 71, 72, 73, 74, 83, 84, 85, 86 effect the transfer. 
     FIGS. 4a-4g illustrate how a first exemplary graphics polygon 33 (shown in FIG. 4g) is formed by assembling the three polygon primitives 26, 27 and 28 of FIGS. 4a, 4c and 4e, respectively, into polygon buffer 31, as shown in FIG. 4f, and then into frame buffer 32, as shown in FIG. 4g. 
     FIG. 4a shows how operation of control unit 20 provides a first hyperplane image 26 in hyperplane buffer 30 by way of hyperplane data input 25. In FIG. 4b, hyperplane 26 is transferred to polygon buffer 31 by way of light beam 35, ALU POLA 40 and light beam 36, and hyperplane buffer 30 is cleared of the hyperplane 26 shown in FIG. 4a. In FIG. 4c, a second hyperplane 27 is written into hyperplane buffer 30. In FIG. 4d, hyperplane image 26 from polygon buffer 31 has been ANDed with the hyperplane 27 from hyperplane buffer 30, using light beams 35 and 36 and ALU POLA 40, polygon buffer 31 has been cleared, and the result of this Boolean operation has been written back into polygon buffer 31 as an image 34. Hyperplane buffer 30 has also been cleared in FIG. 4d. In FIG. 4e, a third hyperplane 28 has been written into hyperplane buffer 30. In FIG. 4f, hyperplane image 28 from polygon buffer 31 has been ANDed with the image 34 from hyperplane buffer 30, using light beams 35 and 36 and ALU POLA 40, polygon buffer 31 has been cleared, and the result of this Boolean operation has been written back into polygon buffer 31 as a final polygon image 33. Hyperplane buffer 30 has also been cleared in FIG. 4f. In FIG. 4g, operation of light beams 36 and 37 and ALU POLA 40 has moved completed polygon image 33 to frame buffer 32, and polygon buffer 31 has been cleared. 
     FIG. 4h assumes that the graphics frame being composed includes a second polygon 38, as shown in FIGS. 4k and 4l. Thus, in FIG. 4h, a first graphics primitive 39 is written into hyperplane buffer 30. By way of operations as above described, a second graphics primitive 41 is written into hyperplane buffer 30, as shown in FIG. 4j, and graphics primitives 39 and 41 are combined to form polygon 38. In FIG. 4k and FIG. 4l, polygon 38 is ORed with polygon 33 in ALU POLA 40 and the result is placed in frame buffer 32. 
     The final graphics scene of FIG. 41 is now provided to display 44 for viewing. As will be understood by those of skill in the art, the final graphics scene provided to display 44 is usually much more complex than the scene shown in FIG. 41, and the above description is not to be taken as a limitation on the invention. 
     While the invention has been described by making reference to preferred embodiments thereof, it is appreciated that those skilled in the art will readily visualize yet other embodiments that are within the scope and spirit of this invention. For example, it is possible within the spirit and scope of the invention to deal with well known graphics image concepts such as color, shading, and visible surface determination.