EP0462788A2 - Apparatus for generating a visual display - Google Patents
Apparatus for generating a visual display Download PDFInfo
- Publication number
- EP0462788A2 EP0462788A2 EP91305486A EP91305486A EP0462788A2 EP 0462788 A2 EP0462788 A2 EP 0462788A2 EP 91305486 A EP91305486 A EP 91305486A EP 91305486 A EP91305486 A EP 91305486A EP 0462788 A2 EP0462788 A2 EP 0462788A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- processing means
- coordinates
- display
- intensity
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/02—Simulators for teaching or training purposes for teaching control of vehicles or other craft
- G09B9/08—Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer
- G09B9/30—Simulation of view from aircraft
- G09B9/301—Simulation of view from aircraft by computer-processed or -generated image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
Definitions
- This invention relates to apparatus for generating a visual display, and especially to computer generated image apparatus.
- a typical flight simulation system has a replica of a pilot's seat and aircraft controls and instruments mounted on an enclosed platform which is moved to a limited extent to simulate changes in attitude of an aircraft in response to use of the controls by a trainee pilot in the seat and accelerations associated with changes of motion.
- a visual display is also mounted on the platform and presents the trainee pilot with a simulation of the view to be expected for the simulated flight, such flights being based on real possible journeys or flying conditions.
- the visual display may be presented by two or three display devices arranged to simulate aircraft windows through which the pilot would see the outside world.
- a polygon-based raster scan image generator is a known type of computer image generator that, by utilising the simulated aircraft position and attitude data produced by a comuter-controlled flight simulator, calculates the raster display coordinates of the boundaries of polygonal surfaces that are to form the simulated perspective view of territory or cloud being flown over, and controls the intensities of the display pixels so as to produce different assigned intensities, and usually colours, for the different surfaces.
- any particular surface simulated by a polygon-based raster scan image generator acting alone is uniform over that surface, and consequently lacks the visual clues provided in real situations by the surface detail of surfaces.
- a well known example of the visual clues given by surface detail is the information given by the pattern formed by brick in a brick wall.
- GB 2061074 describes a surface detail generator which is intended to be used to modulate the intensity signal output by a polygon-based raster scan image generator so as to create perspective transformed views of a single pattern lying in the displayed ground plane only.
- GB 2061074 discusses a memory hierarchy of the pattern stored in a plurality of levels of detail and the selection of an appropriate level of detail by using the sample spacing computed in simulated ground distance from the effective sample spacing along a raster line as a measure, GB 2061074 does not provide any technique for avoiding banding effects which can result from the changeovers between successive levels of detail. Furthermore, GB 2061074 does not disclose any means of associating particular surface detail effects with particular surfaces defined by the output of the polygon-based raster scan image generator.
- texture generators means for generating surface detail, known as texture generators, that add to scene complexity and realism by adding specific surface detail to polygons.
- texture generators work by storing a 2-dimensional bit map of intensity values and mapping these in correct 3D perspective onto the polygons in real time. Because a bit map can be used repeatedly any number of times in the scene, texturing can provide surface detail over large areas of the display much more economically than could be achieved with polygons alone.
- GB 2171579 Such a system is described in United Kingdom Patent Specification GB 2171579.
- Typical surface texture effects produced are natural textures such as grass, forests and sea surfaces.
- apparatus for generating a visual display comprising first memory means storing geometrical surface data defined in relation to a respective coordinate system, and associated surface appearance data including surface intensity data, first processing means arranged to select from the data stored in the first memory means geometrical surface data and the associated surface appearance data for creating a display of a restricted two-dimensional perspective view of a region defined by observation point and attitude data supplied to the first processing means, the first processing means including input means for receiving variable observation point and attitude data, display means coupled to the first processing means for displaying the said restricted perspective view, second memory means storing surface detail data comprising a plurality of intensity modulation values each stored at a respective address corresponding to a point position in a notional plane, second processing means coupled to the first processing means to receive observation point and attitude data and to means for generating and supplying thereto pairs of display coordinates corresponding to points in the visual display, the second processing means being such as to generate for each pair of display coordinates supplied thereto a corresponding pair of coordinates substantially determined by an
- FIG. 1 of the drawings there is shown in a schematic block diagram a visual display processing system for a flight simulator having a flight simulation computer 1 which serves as the host computer in relation to the visual display processing system.
- the flight simulation computer 1 controls an enclosed platform (not shown) on which a trainee pilot is seated.
- the trainee pilot operates a replica of the controls of a particular aircraft and the computer 1, in response to input signals developed by the replica controls, moves the platform in a manner which to some extent produces the sensation of changes in attitude and movement of the simulated aircraft.
- the simulation computer 1 also generates data signals representative of the longitude, latitude, altitude and attitude of the aircraft corresponding to the position and attitude of the aircraft, relative to a reference point in a reference plane, which would have resulted from the trainee pilot's operation of the replica controls. These position and attitude signals are supplied to a general purpose computer 2 which is part of the visual display processing system.
- the trainee pilot is presented with a visual display of the view associated with the current position and attitude on the screen of a cathode ray tube 3.
- the display is generated by a raster scan, and for each frame of the display, the general purpose computer 2 generates geometrical transformation matrix data signals 4 which it supplies to a surface transformation processor 5.
- a typical simulated flight is a flight from one airport to another.
- the screen of the cathode ray tube 3 must show the pilot's view from take off at the first airport to landing at the second airport.
- the visual display processing system must be able to show correctly the view determined by any reasonably possible flight path.
- the pilot can be presented with a view of the ground features and sky within a 100 mile radius of a reference point, known as the runway threshold, of each airport, the view between the airports outside these limits being restricted to flight above a cloud level, so that only sky and cloud features are then displayed.
- the geometric data for creating polygon-based displays of the ground features and sky and cloud are held in a database memory 6 in the form of lists of coordinates for polygonal surface vertices, these coordinates being referred to as earth coordinates and being given in three dimensions Xe, Ye and Ze to allow for display of buildings, other noticeably three dimensional features, and a cloud base.
- the geometric data for overflown cloud features is also held in the database memory in a similar form.
- the database memory 5 also holds data assigning a value for the intensity of each polygonal surface defined by a set of vertices, and texture data in the form of a code, referred to as the pattern code, for each defined polygonal surface which indicates the texture effect to be displayed for the defined polygonal surface, and the plane number which identifies the texture plane in which the defined polygonal surface lies.
- the earth coordinates for each airport have as their origin the respective runway threshold.
- the general purpose computer 2 is therefore arranged to supply to the surface transformation processor 5 a signal indicating the currently applicable earth coordinates orgin, together with the transformation matrix data signals which the processor 5 uses to transform the earth coordinates of each surface vertex read out from the memory 5 within the earth coordinate system addressed into pilot coordinates Xp, Yp and Zp.
- the pilot coordinate system has the currently computed position of the pilot's eye as its origin and an angular relation to the earth coordinate system determined by the currently computed attitude, i.e. angular disposition, of the aircraft relative to the earth coordinate system.
- a complete list of sets of stored earth coordinates having as origin the runway threshold indicated by the general purpose computer 2 is transformed by the processor 5 into pilot coordinates.
- the pilot coordinates termed Xp, Yp and Zp, have the Zp axis defined as the line from the pilot's eye through the centre of window and perpendicular to the plane of the window, the Xp coordinate being parallel to the width of the window, and the Yp coordinate being parallel to the height of the window.
- the screen coordinates termed Xs and Ys are respectively parallel to the width of the window and parallel to the height of the window, both lying in the plane of the window.
- the window lies in the plane of the cathode ray tube screen and has the centre of the screen as its centre point.
- the height of the window is chosen to be greater than the height of the screen, the raster lines being scanned vertically.
- the matrix data signals 4 generated by the computer 2 include representations of the aircraft position Xo, Yo and Zo in the applicable earth coordinate system, and a rotation matrix [H] which defines the attitude of the aircraft.
- the processor 6 calculates pilot coordinates Xp, Yp, Zp for each set of earth coordinates Xe, Ye, Ze as follows: where [H] is the 3 by 3 matrix defined in United Kingdom patent specification GB 2171579.
- NSL is the number of scan lines across the width W of the window
- NPE is the number of pixels along a raster line equal in length to the height H of the window.
- the offset quantities NSL 2 and NPE 2 are included so that the screen coordinates X s , Y s are generated having the bottom left hand corner of the window as origin as viewed by the pilot.
- the database memory 6 holds its lists of geometrical data in an order and format which enables the processor 5 to reject those surfaces which are invisible from the current position of the pilot. This facility, referred to as attributing priorities to surfaces, and its method of implementation are known to those skilled in the art.
- the processor 5 From the sets of screen coordinates for surface vertices, the processor 5 generates a list of surface start and surface end points for each raster line. This list, together with the associated surface intensity and texture data, is written into one half of a frame buffer memory 7 for surface data.
- the other half of the frame buffer memory 7 contains the surface data for the preceding frame which is read by a line processor 8.
- the processor 8 reads the surface data one raster line at a time and writes intensity and texture information for each pixel into part of a line buffer memory 9.
- the writing operation by the line processor 8 is synchronised by pulses from a raster sync pulses generator 10 which also controls the timing of the raster line scans of the cathode ray tube 3, the synchronising pulses supplied to the processor 8 being generated at the pixel rate during each line.
- the line buffer memory 9 is capable of storing more than one line so that an intensity modulator unit 11 can read out a complete line of pixel intensity data while the processor 8 is writing another line into the buffer memory 9.
- the intensity modulator unit 11 includes logic circuitry for multiplying pixel intensity values input from the line buffer memory 9 by modulating values input by the texture data generating part of the system.
- the modulated intensity values are supplied by the modulator unit 11 to a digital to analog converter unit 12 which supplies corresponding analog intensity signals to the cathode ray tube 3.
- the cathode ray tube 3 provides a monochrome display.
- a transformation matrix memory 14 which of these two matrices is supplied to a pipelined inverse perspective transformation processor 15 is determined by a plane number signal 16 supplied to the matrix memory 14 by the line buffer memory 9.
- the database memory 5 includes sky plane geometric feature data associated with one plane number, the ground plane geometric feature data being associated with the other plane number.
- the transformation matrices required to convert the screen coordinates into earth coordinates are inverse perspective matrices.
- the screen coordinates are supplied to the processor 15 by a pixel counter 17 and a line counter 18. These two counters are driven by synchronising pulses supplied by the raster sync pulse generator 10.
- Each raster line displayed on the screen of the tube 13 contains, for example, 768 pixels. However, the height of the window is 1024 in this case, and it is arranged that only the middle 768 pixels of data from the line buffer memory 9 are displayed on the screen. This allows sufficient time for the processing carried out by the inverse perspective transformation processor 15 and subsequent stages in the generation of texture data up to the intensity modulator 11 to be carried out in relation to the respective pixel intensity value input from the line buffer memory 9 to the intensity modulator unit 11.
- the first pixel to be displayed in any raster line is pixel number 128.
- This timing relationship is ensured by the signals supplied by the raster sync pulse generator 10 to the line processor 8 and the pixel counter 17.
- the plane number signal 16 and a pattern code signal 19 which are read out from the line buffer memory 9 are those corresponding to pixels sufficiently in advance of the pixel whose intensity is currently being read by the intensity modulator unit 11.
- the plane number signal 16 and the pattern code signal 19 are representative of the plane numbers and pattern codes read from the database memory 6 and passed on by the processor 5 via the memory 7 and processor 8 to the line buffer memory 9 without alteration.
- the transformation matrix memory 14 also stores a set of values of a constant, R, supplied by the processor 5, there being one value of R for each plane number.
- R log2 Ps DZ o where P s is the screen dimension of a pixel measured parallel to the height of the screen,
- D is the perpendicular distance from the pilot's eye to the screen
- Zo is the perpendicular distance from the pilot's eye to the texture plane concerned, i.e., in the present example, to either the ground plane or the sky plane.
- the pipelined inverse perspective transformation processor 17 calculates the earth coordinates Xe and Ye corresponding to the pair of screen coordinates X s and Y s supplied thereto by the line counter 18 and the pixel counter 17 at every pixel.
- the intensity modulator unit 11 In order to create a texture effect in the ground and sky planes, the intensity modulator unit 11 must modulate the pixel intensity data supplied from the line buffer memory 9 by varying the intensity values for pixels within each surface to be textured which lies within either the ground plane or the sky plane. To give a realistic appearance to the display, the present system takes into account the distance of the pilot from the part of the plane viewed, and the angle made between that part and the line of sight.
- Modulation values are supplied to the modulator unit 11 by a pattern processor 20 that receives the calculated earth coordinates Xe and Ye from the processor 15 and another input from a procesor 21 called here the pixel footprint processor.
- Intensity modulation values are stored as sets of values which sets are referred to hereinafter as tiles, in the pattern processor 20.
- Each tile contains from one value up to a square array of 16 by 16 values and the number of values in a tile is always a power of 2.
- the notional area covered in the simulated ground or sky plane by a single texture tile may be used repeatedly to cover a larger area of ground or sky plane displayed.
- Each tile is treated in processing as a square area of square elements, the value of the intensity modulation held within any given element being constant.
- the side of each element represents a length T e in feet in the earth coordinate system. Only tiles with a value of T e which is a power of 2 are stored. The power of 2 may be negative, zero, or positive.
- the view presented to the pilot's eye is of a horizontal ground plane uniformly textured, at ground level, up to the horizon.
- the texture pattern may be grass for example.
- P e is the length of one pixel as projected onto the ground plane.
- the distance from the pilot's eye to the centre of this projection is Zp cos ⁇ where ⁇ is the angle between the Zp axis and the line of sight.
- Cos ⁇ ranges from 1 at the centre of the screen to 0.878 at the corner, so that its variation is small enought to allow cos ⁇ to be treated as constant at 1.
- P e represents a notional texture tile element side length.
- P e will not usually be equal to the value of T e for a tile representing the desired texture at the corresponding point in the viewed scene, since only tiles of certain values of T e are stored.
- the line buffer memory 9 provides one intensity value for each pixel to be displayed on the screen of the CRT display 3, and therefore the pattern processor supplies one modulating value per pixel to the intensity modulator unit 11.
- the pixel footprint processor 21 supplies one value of log2 P e per pixel to the pattern processor 20 which generates from its stored intensity modulation values two values I N and I N+1 which are added together in different proportions by a blender circuit 22 to produce the final output intensity modulation value I B supplied to the intensity modulator unit 11.
- I N and I N+1 are values produced by the pattern processor 20 as weighted values derived from values looked up in tiles with T e values of, respectively, 2 N and 2 N+1 feet.
- the processor 15 receives X s , Y s values from the line counter 18 and the pixel counter 17, and for every pixel, produces a pair of Xe, Ye values, and a Zp value.
- Zo is the altitude of the aircraft measured to the pilot's eye, and Ze is the height above ground level of the point (Xe, Ye, Ze).
- Z o is replaced by (-
- Planes parallel to the ground plane but situated between the aircraft and the ground plane can also be textured if Z o is replaced in equation (1) by Z o - Z s where Z s is the height of the plane to be textured above the ground plane, Ze again being put to zero.
- the processor 15 calculates then the values of X t and Y t , and finally the values of Xe and Ye, the values of X o and Y o being supplied from the matrix memory 14.
- Fig. 3 shows the pattern processor 20 in more detail.
- the processor 20 includes, in addition to the blender circuit 22, a pattern attribute store 23 that receives and decodes the pattern code signal 19, an LOD calculator 24 that receives the log2 P e signal from the pixel footprint processor 21 and a scale signal 25 from the pattern attribute store 23 and calculates an LOD signal 26 and a blend factor signal 27, two summing circuits 28 and 29 that supply the weighted values I N and I N+1 to the blender circuit 22, and eight tile storage, addressing and value weighting units 30 to 37, referred to hereinafter as lookup and weight units, arranged as two groups of four supplying the two summing circuits 28 and 29.
- Each of the lookup and weight units 30 to 37 stores the same set of tiles and receives the X e and Y e coordinate values supplied by the inverse perspective transformation processor 15, the LOD signal 26, the scale signal 25, and two other pattern attribute signals, termed the pattern number 38 and the microinterpolation limit 39.
- the microinterpolation limit 39 is also supplied to the LOD calculator 24.
- Each tile stored in the lookup and weight units 30 to 37 provides all the modulation values needed to produce at least part of a particular pattern at a particular resolution over an area corresponding to that of the tile.
- Each distinct pattern is identified, in terms of addressing within the lookup and weight unit concerned, by a pattern number.
- Any one pattern may be stored in a number of different resolutions.
- the resolution is the result of the notional distance intended to be present between the centres of adjacent elements of a tile of the pattern, and is therefore higher the shorter this distance is.
- the notional distance between the centres is equal to T e for the tile in question.
- the highest resolution at which patterns are represented in the lookup and weight unit is not a fired degree of resolution in terms of T e .
- T eMIN the value of T e for the highest resolution
- the scale signal 25 represents Log2 T eMIN .
- Pe is also the distance between the centres of adjacent projected pixels along an Xe, Ye plane line that is the projection of the screen raster line containing the two pixels. This value will usually not be equal to the notional distance between the centres of adjacent elements of a tile of the pattern required at the region being scanned. Consequently the projected pixel centres will not usually map onto all the tile element centres of a tile.
- X e and Y e supplied by the processor are in binary form, those bits in X e and Y e which are of lower significance than the bit position representing the magnitude of T e in the tile to be addressed are not used in addressing the tile. These lower significance bits are used in a weighting process based on the following geometrical interpolation considerations.
- (X+1 ⁇ 2, Y+1 ⁇ 2) are the coordinates, in whole tile elements, of the centre of the bottom left hand one of four tile elements forming a square containing the point X e , Y e , then ( ⁇ X, ⁇ Y) are the coordinates of that point relative to that centre.
- the coordinates, in tile elements, of the centres of the other three elements are (X+1 ⁇ 2, Y+1+1 ⁇ 2), (X+1+1 ⁇ 2, Y+1 ⁇ 2), and (X+1+1 ⁇ 2, Y+1+1 ⁇ 2).
- the X e , Y e coordinates of the point are processed as coordinates (X+ ⁇ X+1 ⁇ 2) and (Y+ ⁇ Y+1 ⁇ 2) in units of T e .
- the interpolation algorithm uses the values ⁇ X and ⁇ Y. These are obtained by subtracting 0.5 from the fractional part of the (X+ ⁇ X+1 ⁇ 2), (Y+ ⁇ Y+1 ⁇ 2) coordinates and then taking the fractional part of the result. This is done in 2′s complement format so that the fractional part always has a positive value less than 1.
- the algorithm involves interpolating first in the X axis and then in the Y axis.
- X axis interpolation interpolates between A and B to give a value J and between C and D to give a value K.
- Y axis interpolation then interpolates between J and K to give the final interpolated modulation value T at the projected pixel centre point.
- Y axis interpolation: T (1- ⁇ Y)J + ( ⁇ Y)K
- the four adjacent values A, B, C, and D must be read out for each value of X e , Y e .
- the lookup and weight units 30 to 33 read out respectively A, B, C and D, and the summing circuit 28 carries out the final addition to produce T, which in this case is I N .
- the lookup and weight units 34 to 37 read out respectively A, B, C, and D of a lower resolution tile of the same pattern, and the summing circuit 29 carries out addition to produce its value of T which is I N+1 .
- the scale signal 25, decoded at the attribute store 23 from the pattern code, and the LOD signal 26 from the calculator 24 determine the values of T e required by the addressing circuitry of the units 30 to 37.
- the LOD calculator 24 calculates the value of log2 T e for the resolution which the pixel footprint Pe will fit.
- the LOD signal 26 in this case represents n and is supplied to all the lookup and weight units 30 to 37.
- n is zero or a positive integer
- the LOD signal 26 is treated as representing n
- the tiles addressed in the units 30 to 33 are tiles having elements of length 2 N feet
- the tiles addressed in the units 34 to 37 are tiles having elements of length 2 (N+1) feet.
- the LOD signal 26 is treated in all the eight units 30 to 37 as representing zero.
- Fig. 4 is a schematic block diagram of any one of the units 30 to 37.
- the scale signal 25 and the microinterpolation limit 39 are supplied to a scale calculator 40.
- the coordinate values X e and Y e are supplied to respective shifters 41 and 41 where each coordinate value is shifted so as to cause in each value the bit corresponding to T eMIN to become the bit signifying 2° at the output of the shifter. This operation is carried out with the use of the scale calculator output signal 43 which is supplied to the shifters 41 and 42.
- the outputs from the shifters are referred to as scaled outputs.
- the number of bits in each scaled output, X or Y is s + r + m p + 1 where r is the precision to which interpolation is carried out, m p is the microinterpolation limit, and (s+1) is a number which is log to the base 2 of the number of intensity modulation values along one side of the notional area containing the complete pattern at its highest resolution.
- This area may be the area of one tile or a plurality of tiles. If the complete pattern area is rectangular, the longer side is taken.
- the scaled outputs are supplied to an address generator 43 that also receives the LOD signal 26. If the LOD signal value is zero or negative, no shifting is carried out by the address generator, and the bit corresponding to T eMIN in each scaled output retains as its significance 2°. However, if the value of the LOD signal 26 is a positive integer, the value n of the LOD signal 26 is used to determine further shifting which results in the bit corresponding to 2 n in each scaled output being treated as signifying 2°.
- All the bits below the bit designated 2° are separated from the bits of higher significance, i.e. 2° and above, 2 ⁇ 1 is subtracted and the remaining bits become ⁇ X or ⁇ Y, if n is equal to or greater than zero, and are read to a weight generator 44 which calculates the appropriate one of the four expressions (1 - ⁇ X) (1 - ⁇ Y), ( ⁇ X) (1 - ⁇ Y), (1 - ⁇ X) ( ⁇ Y), and ( ⁇ X) ( ⁇ Y) depending upon whether the unit is unit 30 or 31 or 32 or 33, or unit 34 or 35 or 36 or 37.
- the result of this calculation is supplied by the weight generator 44 to a digital multiplier 45 that multiplies the intensity modulation value A or B or C or D, read out from a tile store 46, by the result from the generator 44.
- the output of the multiplier 45 is supplied to the summing circuit 28 or 29.
- the values of X and Y, which are whole numbers of tile elements, are combined to produce a relative tile element address which, if there are 256 elements in each tile, is a nine bit number.
- Each tile of any given pattern is one of a set of tiles of a particular resolution, determined by their common value of T e , and one of a set of tiles defining the particular pattern at a number of different resolutions.
- the LOD value supplied by the LOD signal 26 provides a number of higher significance bits to identity the resolution set to which the tile belongs. If the LOD signal value is any negative integer or zero, the set of tiles having the highest resolution, for the pattern concerned, is indicated.
- the combined LOD-derived bits and relative tile element address are supplied to the tile store 46 where they are combined with the pattern number 38 which identifies the pattern set to which the tile belongs.
- the complete tile address in the store 46 is formed by the combination of the pattern number 38 to identity the pattern, the LOD value to identify which resolution of the particular pattern is to be used, and the relative tile element address.
- the pattern number 38 and LOD value identify the particular tile to be read, and the relative tile element address identifies the particular element to be read within that tile.
- Each polygonal surface defined in the database memory 6 has an associated pattern number that is encoded in the pattern code which is transmitted as the pattern code signal 19 to the pattern attribute store 23.
- a non-zero value of the microinterpolation limit 39 is encoded in the pattern code and is supplied to the LOD calculator 24 and to each lookup and weight unit 30 to 37.
- a non-zero value of the microinterpolation limit 39 allows the integer value of log2 P e , used as the LOD value, to be a negative integer up to a limit (-m p ) where m p is the value of the microinterpolation limit.
- the blend factor is calculated in the same way as it is when the LOD value is positive.
- the effect of a negative value of LOD at the address generator 43 is to cause all the bits in ⁇ X from 2 ⁇ 1 to 2 -k , and all the bits in ⁇ Y from 2 ⁇ 1 to 2 -k to be treated as zeros where the LOD value is (-k).
- ⁇ X and ⁇ Y have values which are given by their 2 -(1+k) to 2 -(r+k) bits. Geometrically this is equivalent to moving the projected pixel centre towards the intensity modulation value A at (X+1 ⁇ 2, Y+1 ⁇ 2), by an amount that increases with the magnitude of k. Thus the resultant interpolated intensity modulation value is biased towards the value A.
- the visible effect of this is to emphasise step-like changes in intensity where they occur over a distance equal to the length of a tile element.
- the value of the microinterpolation limit is chosen to ensure that there is always sufficient smoothing to prevent aliassing.
- the bits for X and Y, which form the relative tile element address, remain the same as for the zero value of LOD, i.e.
- the blender circuit 22 receives slightly less rapidly changing signals from the summing circuit 29 than from the summing circuit 28.
- the blender circuit 22 therefore provides an extra slight shading effect at boundaries between tile elements having contrasting values, the amount of extra shading diminishing as the magnitude of k increases up to the limit m p .
- Figs. 5 and 6 illustrate an 8 by 8 array of tile element values and the corresponding square polygonal surface with the interior detail produced by microinterpolation of the tile element values.
- microinterpolation technique described hereinbefore can be used in an embodiment of the invention described and claimed in our copending European patent application No. 91303025.
- Data can be loaded into the stores 46 from the flight simulation computer 1 or the general purpose computer 2 over a data bus (not shown) for each runway threshold or other reference point, as will be apparent to those skilled in the art, to whom it will also be obvious that by having three pattern processors and making other obvious modifications, full colour visual display can be provided.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Aviation & Aerospace Engineering (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
Description
- This invention relates to apparatus for generating a visual display, and especially to computer generated image apparatus.
- Various techniques and apparatus for computer generated images are discussed in "Computer Image Generation", edited by Bruce J. Schachter and published by John Wiley & Sons of New York in 1983, ISBN 0-471-87287-3.
- One field in which computer image generation is being used is visual display systems for flight simulation systems. A typical flight simulation system has a replica of a pilot's seat and aircraft controls and instruments mounted on an enclosed platform which is moved to a limited extent to simulate changes in attitude of an aircraft in response to use of the controls by a trainee pilot in the seat and accelerations associated with changes of motion. A visual display is also mounted on the platform and presents the trainee pilot with a simulation of the view to be expected for the simulated flight, such flights being based on real possible journeys or flying conditions. The visual display may be presented by two or three display devices arranged to simulate aircraft windows through which the pilot would see the outside world.
- In United Kingdom patent specification GB 2061074, an apparatus is described which is intended to be combined with a polygon-based raster scan image generator and produces a signal for creating a so-called "textured" appearance in a displayed ground plane. A polygon-based raster scan image generator is a known type of computer image generator that, by utilising the simulated aircraft position and attitude data produced by a comuter-controlled flight simulator, calculates the raster display coordinates of the boundaries of polygonal surfaces that are to form the simulated perspective view of territory or cloud being flown over, and controls the intensities of the display pixels so as to produce different assigned intensities, and usually colours, for the different surfaces. The intensity of any particular surface simulated by a polygon-based raster scan image generator acting alone is uniform over that surface, and consequently lacks the visual clues provided in real situations by the surface detail of surfaces. A well known example of the visual clues given by surface detail is the information given by the pattern formed by brick in a brick wall. GB 2061074 describes a surface detail generator which is intended to be used to modulate the intensity signal output by a polygon-based raster scan image generator so as to create perspective transformed views of a single pattern lying in the displayed ground plane only. Also, although GB 2061074 discusses a memory hierarchy of the pattern stored in a plurality of levels of detail and the selection of an appropriate level of detail by using the sample spacing computed in simulated ground distance from the effective sample spacing along a raster line as a measure, GB 2061074 does not provide any technique for avoiding banding effects which can result from the changeovers between successive levels of detail. Furthermore, GB 2061074 does not disclose any means of associating particular surface detail effects with particular surfaces defined by the output of the polygon-based raster scan image generator.
- Most state of the art computer image generation systems now include means for generating surface detail, known as texture generators, that add to scene complexity and realism by adding specific surface detail to polygons. Typically these texture generators work by storing a 2-dimensional bit map of intensity values and mapping these in correct 3D perspective onto the polygons in real time. Because a bit map can be used repeatedly any number of times in the scene, texturing can provide surface detail over large areas of the display much more economically than could be achieved with polygons alone. Such a system is described in United Kingdom Patent Specification GB 2171579.
- Typical surface texture effects produced are natural textures such as grass, forests and sea surfaces.
- Sometimes it is desirable to create surface detail of a more man-made nature such as field patterns and urban areas. Such detail is of a more polygonal nature and implies high resolution if conventional polygons are to be used.
- To use polygons for high resolution is expensive because large numbers of relatively small polygons are required.
- According to the present invention, therefore, there is provided apparatus for generating a visual display, comprising first memory means storing geometrical surface data defined in relation to a respective coordinate system, and associated surface appearance data including surface intensity data, first processing means arranged to select from the data stored in the first memory means geometrical surface data and the associated surface appearance data for creating a display of a restricted two-dimensional perspective view of a region defined by observation point and attitude data supplied to the first processing means, the first processing means including input means for receiving variable observation point and attitude data, display means coupled to the first processing means for displaying the said restricted perspective view, second memory means storing surface detail data comprising a plurality of intensity modulation values each stored at a respective address corresponding to a point position in a notional plane, second processing means coupled to the first processing means to receive observation point and attitude data and to means for generating and supplying thereto pairs of display coordinates corresponding to points in the visual display, the second processing means being such as to generate for each pair of display coordinates supplied thereto a corresponding pair of coordinates substantially determined by an inverse perspective projection from the observation point to a plane defined in the respective coordinate system of the said geometrical surface data, addressing means coupling the second processing means to the second memory means so as to convert each said corresponding pair of coordinates into a predetermined plurality of respective addresses and to address the second memory means therewith, and intensity modulation means so coupling the second memory means to the display means as to cause the intensity data selected by the first processing means for a displayed point to be modulated by an intensity modulation value derived from the addressed plurality of intensity moduluation values for the same displayed point, the addressing means including means for weighting each addressed intensity modulation value with a respective geometrical weighting factor, and means for selecting the weighting factors in dependence upon a signal representative of surface detail data stored in the first memory means, the said predetermined plurality of respective addresses corresponding to a set of points in the said notional plane which define the vertices of at least one polygon containing the point defined by the said corresponding pair of coordinates determined by the inverse projection, and the respective geometrical weighting factors being related to the position of the contained point within the said polygon or polygons.
- The invention will now be described in more detail, by way of example, with reference to the accompanying drawings, in which:
- Figure 1 is a block schematic diagram of an apparatus embodying the invention,
- Figure 2 is a diagram in perspective illustrating geometrical relationships used in processing carried out by the apparatus of Figure 1,
- Figure 3 is a block diagram of circuitry for implementing part of the embodiment of Figure 1,
- Figure 4 is a block circuit diagram of part of the circuitry of Figure 3,
- Figures 5 is a diagram representing a data array, and
- Figure 6 is a representation of intensity modulation corresponding to the array of Figure 5.
- In Figure 1 of the drawings there is shown in a schematic block diagram a visual display processing system for a flight simulator having a flight simulation computer 1 which serves as the host computer in relation to the visual display processing system.
- The flight simulation computer 1 controls an enclosed platform (not shown) on which a trainee pilot is seated. The trainee pilot operates a replica of the controls of a particular aircraft and the computer 1, in response to input signals developed by the replica controls, moves the platform in a manner which to some extent produces the sensation of changes in attitude and movement of the simulated aircraft. The simulation computer 1 also generates data signals representative of the longitude, latitude, altitude and attitude of the aircraft corresponding to the position and attitude of the aircraft, relative to a reference point in a reference plane, which would have resulted from the trainee pilot's operation of the replica controls. These position and attitude signals are supplied to a
general purpose computer 2 which is part of the visual display processing system. - The trainee pilot is presented with a visual display of the view associated with the current position and attitude on the screen of a
cathode ray tube 3. The display is generated by a raster scan, and for each frame of the display, thegeneral purpose computer 2 generates geometrical transformationmatrix data signals 4 which it supplies to asurface transformation processor 5. - A typical simulated flight is a flight from one airport to another. To provide a visual display corresponding to such a flight, the screen of the
cathode ray tube 3 must show the pilot's view from take off at the first airport to landing at the second airport. The visual display processing system must be able to show correctly the view determined by any reasonably possible flight path. To limit the requirements, it is typically arranged that the pilot can be presented with a view of the ground features and sky within a 100 mile radius of a reference point, known as the runway threshold, of each airport, the view between the airports outside these limits being restricted to flight above a cloud level, so that only sky and cloud features are then displayed. The geometric data for creating polygon-based displays of the ground features and sky and cloud are held in adatabase memory 6 in the form of lists of coordinates for polygonal surface vertices, these coordinates being referred to as earth coordinates and being given in three dimensions Xe, Ye and Ze to allow for display of buildings, other noticeably three dimensional features, and a cloud base. The geometric data for overflown cloud features is also held in the database memory in a similar form. Thedatabase memory 5 also holds data assigning a value for the intensity of each polygonal surface defined by a set of vertices, and texture data in the form of a code, referred to as the pattern code, for each defined polygonal surface which indicates the texture effect to be displayed for the defined polygonal surface, and the plane number which identifies the texture plane in which the defined polygonal surface lies. - The earth coordinates for each airport have as their origin the respective runway threshold. The
general purpose computer 2 is therefore arranged to supply to the surface transformation processor 5 a signal indicating the currently applicable earth coordinates orgin, together with the transformation matrix data signals which theprocessor 5 uses to transform the earth coordinates of each surface vertex read out from thememory 5 within the earth coordinate system addressed into pilot coordinates Xp, Yp and Zp. The pilot coordinate system has the currently computed position of the pilot's eye as its origin and an angular relation to the earth coordinate system determined by the currently computed attitude, i.e. angular disposition, of the aircraft relative to the earth coordinate system. A complete list of sets of stored earth coordinates having as origin the runway threshold indicated by thegeneral purpose computer 2 is transformed by theprocessor 5 into pilot coordinates. To select from the transformed coordinates those which will be used to determine the view displayed by thecathode ray tube 3, constants determined by the position of the pilot in the aircraft, the area of the window defined by thecathode ray tube 3 and the distance of the pilot's eye from the screen of thetube 3, are used by theprocessor 5 to reject surface vertices represented by pilot coordinates not falling within the rectangular section pyramid defined by the pilot's eye and the window. The pilot coordinates of the remaining surface vertices are then transformed by theprocessor 5 into intermediate screen coordinates which have as their origin the centre point of the screen of thecathode ray tube 3. - The pilot coordinates, termed Xp, Yp and Zp, have the Zp axis defined as the line from the pilot's eye through the centre of window and perpendicular to the plane of the window, the Xp coordinate being parallel to the width of the window, and the Yp coordinate being parallel to the height of the window. The screen coordinates, termed Xs and Ys are respectively parallel to the width of the window and parallel to the height of the window, both lying in the plane of the window. The window lies in the plane of the cathode ray tube screen and has the centre of the screen as its centre point. However, to compensate for a delay in the part of the processing system that produces texture signals, the height of the window is chosen to be greater than the height of the screen, the raster lines being scanned vertically.
- The
matrix data signals 4 generated by thecomputer 2 include representations of the aircraft position Xo, Yo and Zo in the applicable earth coordinate system, and a rotation matrix [H] which defines the attitude of the aircraft. Theprocessor 6 calculates pilot coordinates Xp, Yp, Zp for each set of earth coordinates Xe, Ye, Ze as follows:
where [H] is the 3 by 3 matrix defined in United Kingdom patent specification GB 2171579. -
- NSL is the number of scan lines across the width W of the window,
- and NPE is the number of pixels along a raster line equal in length to the height H of the window.
-
- Since a simulated flight over three dimensional objects requires the display to show the varying appearance of, for example, buildings standing one behind the other as the aircraft flies past, the
database memory 6 holds its lists of geometrical data in an order and format which enables theprocessor 5 to reject those surfaces which are invisible from the current position of the pilot. This facility, referred to as attributing priorities to surfaces, and its method of implementation are known to those skilled in the art. - From the sets of screen coordinates for surface vertices, the
processor 5 generates a list of surface start and surface end points for each raster line. This list, together with the associated surface intensity and texture data, is written into one half of aframe buffer memory 7 for surface data. The other half of theframe buffer memory 7 contains the surface data for the preceding frame which is read by aline processor 8. Theprocessor 8 reads the surface data one raster line at a time and writes intensity and texture information for each pixel into part of a line buffer memory 9. The writing operation by theline processor 8 is synchronised by pulses from a rastersync pulses generator 10 which also controls the timing of the raster line scans of thecathode ray tube 3, the synchronising pulses supplied to theprocessor 8 being generated at the pixel rate during each line. The line buffer memory 9 is capable of storing more than one line so that anintensity modulator unit 11 can read out a complete line of pixel intensity data while theprocessor 8 is writing another line into the buffer memory 9. - The
intensity modulator unit 11 includes logic circuitry for multiplying pixel intensity values input from the line buffer memory 9 by modulating values input by the texture data generating part of the system. The modulated intensity values are supplied by themodulator unit 11 to a digital toanalog converter unit 12 which supplies corresponding analog intensity signals to thecathode ray tube 3. - In the present example, the
cathode ray tube 3 provides a monochrome display. - The
surface transformation processor 5 supplies geometrical inverse transformation matrix data signals 13 to atransformation matrix memory 14, which represent, in the present embodiment, one of two matrices, one matrix being for transforming screen coordinates into earth coordinates in the ground plane where Ze = 0, and the other matrix being for the transforming screen coordinates into earth coordinates in the sky plane, where Ze = Zc, i.e., the height of the cloud base. Which of these two matrices is supplied to a pipelined inverseperspective transformation processor 15 is determined by aplane number signal 16 supplied to thematrix memory 14 by the line buffer memory 9. Thedatabase memory 5 includes sky plane geometric feature data associated with one plane number, the ground plane geometric feature data being associated with the other plane number. The transformation matrices required to convert the screen coordinates into earth coordinates are inverse perspective matrices. - The screen coordinates are supplied to the
processor 15 by a pixel counter 17 and aline counter 18. These two counters are driven by synchronising pulses supplied by the rastersync pulse generator 10. Each raster line displayed on the screen of the tube 13 contains, for example, 768 pixels. However, the height of the window is 1024 in this case, and it is arranged that only the middle 768 pixels of data from the line buffer memory 9 are displayed on the screen. This allows sufficient time for the processing carried out by the inverseperspective transformation processor 15 and subsequent stages in the generation of texture data up to theintensity modulator 11 to be carried out in relation to the respective pixel intensity value input from the line buffer memory 9 to theintensity modulator unit 11. The first pixel to be displayed in any raster line is pixel number 128. Consequently, the value Ys = 128 is supplied by the pixel counter 17 to theprocessor 15 at a time exactly sufficiently in advance of the output of the intensity data for pixel number 128 by the line buffer memory 9 to ensure that the texture modulation applied to that intensity is the correct modulation for pixel number 128. This timing relationship is ensured by the signals supplied by the rastersync pulse generator 10 to theline processor 8 and the pixel counter 17. It is also arranged that theplane number signal 16 and apattern code signal 19 which are read out from the line buffer memory 9 are those corresponding to pixels sufficiently in advance of the pixel whose intensity is currently being read by theintensity modulator unit 11. Theplane number signal 16 and thepattern code signal 19 are representative of the plane numbers and pattern codes read from thedatabase memory 6 and passed on by theprocessor 5 via thememory 7 andprocessor 8 to the line buffer memory 9 without alteration. - In addition to storing inverse transformation matrices, the
transformation matrix memory 14 also stores a set of values of a constant, R, supplied by theprocessor 5, there being one value of R for each plane number. The values of R are - D is the perpendicular distance from the pilot's eye to the screen,
- and Zo is the perpendicular distance from the pilot's eye to the texture plane concerned, i.e., in the present example, to either the ground plane or the sky plane.
- The use of the values of R will be explained hereinafter.
- The pipelined inverse perspective transformation processor 17 calculates the earth coordinates Xe and Ye corresponding to the pair of screen coordinates Xs and Ys supplied thereto by the
line counter 18 and the pixel counter 17 at every pixel. - In order to create a texture effect in the ground and sky planes, the
intensity modulator unit 11 must modulate the pixel intensity data supplied from the line buffer memory 9 by varying the intensity values for pixels within each surface to be textured which lies within either the ground plane or the sky plane. To give a realistic appearance to the display, the present system takes into account the distance of the pilot from the part of the plane viewed, and the angle made between that part and the line of sight. - Modulation values are supplied to the
modulator unit 11 by apattern processor 20 that receives the calculated earth coordinates Xe and Ye from theprocessor 15 and another input from aprocesor 21 called here the pixel footprint processor. Intensity modulation values are stored as sets of values which sets are referred to hereinafter as tiles, in thepattern processor 20. Each tile contains from one value up to a square array of 16 by 16 values and the number of values in a tile is always a power of 2. The notional area covered in the simulated ground or sky plane by a single texture tile may be used repeatedly to cover a larger area of ground or sky plane displayed. - Each tile is treated in processing as a square area of square elements, the value of the intensity modulation held within any given element being constant. The side of each element represents a length Te in feet in the earth coordinate system. Only tiles with a value of Te which is a power of 2 are stored. The power of 2 may be negative, zero, or positive.
- To explain the operation of the
pixel footprint processor 21, a simple example will be described in which the view presented to the pilot's eye is of a horizontal ground plane uniformly textured, at ground level, up to the horizon. The texture pattern may be grass for example. From the pilot's position, the appearance of the ground plane will be of texture in which the detail diminishes towards the horizon. Pe is the length of one pixel as projected onto the ground plane. The distance from the pilot's eye to the centre of this projection is
Hence, -
- The relationships between the three sets of coordinate axes Xe, Ye and Ze, Xp, Yp, and Zp, and Xs and Ys, the screen pixel length Ps, the pixel length projection Pe on the ground plane, the pilot's eye position Xo, Yo, Zo in the ground coordinate system, and the angles α and β are illustrated in Fig. 2.
-
-
- Pe represents a notional texture tile element side length. However, Pe will not usually be equal to the value of Te for a tile representing the desired texture at the corresponding point in the viewed scene, since only tiles of certain values of Te are stored. The value of Pe will frequently lie between two adjacent values of Te for the desired texture. In the present example, the larger of the two values of Te will be twice the smaller value of Te. If Pe = log₂ (N+f) where N is an integer and f < 1, then the two values of Te between which Pe lies are 2N and 2N+1 feet.
- The line buffer memory 9 provides one intensity value for each pixel to be displayed on the screen of the
CRT display 3, and therefore the pattern processor supplies one modulating value per pixel to theintensity modulator unit 11. Thepixel footprint processor 21 supplies one value of log₂ Pe per pixel to thepattern processor 20 which generates from its stored intensity modulation values two values IN and IN+1 which are added together in different proportions by ablender circuit 22 to produce the final output intensity modulation value IB supplied to theintensity modulator unit 11. The addition carried out by theblender circuit 22, which is the output stage of thepattern processor 20, is effected in accordance with the equation - IN and IN+1 are values produced by the
pattern processor 20 as weighted values derived from values looked up in tiles with Te values of, respectively, 2N and 2N+1 feet. - The
processor 15 receives Xs, Ys values from theline counter 18 and the pixel counter 17, and for every pixel, produces a pair of Xe, Ye values, and a Zp value. -
-
- However, [H] is orthogonal, so that [H]⁻¹ is the transpose of [H].
- Zo is the altitude of the aircraft measured to the pilot's eye, and Ze is the height above ground level of the point (Xe, Ye, Ze). The relationships used for applying texture to the displayed ground plane are obtained by putting Ze = 0 in equation (1). For the sky plane it is necessary to treat the actual ground plane level as the sky plane, and therefore Zo is replaced by (-|Zc|+Zo|), where Zc is the cloud base height, and Ze again put to zero, in equation (1).
- Planes parallel to the ground plane but situated between the aircraft and the ground plane can also be textured if Zo is replaced in equation (1) by Zo - Zs where Zs is the height of the plane to be textured above the ground plane, Ze again being put to zero.
-
- The elements of [U] are constant for each frame to be displayed, and are supplied to the
processor 15 from thematrix memory 14. Xs and Ys are supplied by the line and pixel counters 18 and 17. -
- For the sky plane, Zo is replaced by (-|Zc| + |Zo| in the equation for Zp, and hence in U₃₁, U₃₂ and U₃₃.
- The
processor 15 computes Xe, Ye for every pixel along a raster line starting at Ys = T where T is the delay between the input of theprocessor 15 and the output of thepattern processor 20. - Fig. 3 shows the
pattern processor 20 in more detail. - The
processor 20 includes, in addition to theblender circuit 22, apattern attribute store 23 that receives and decodes thepattern code signal 19, anLOD calculator 24 that receives the log₂ Pe signal from thepixel footprint processor 21 and ascale signal 25 from thepattern attribute store 23 and calculates anLOD signal 26 and ablend factor signal 27, two summingcircuits blender circuit 22, and eight tile storage, addressing andvalue weighting units 30 to 37, referred to hereinafter as lookup and weight units, arranged as two groups of four supplying the two summingcircuits - Each of the lookup and
weight units 30 to 37 stores the same set of tiles and receives the Xe and Ye coordinate values supplied by the inverseperspective transformation processor 15, theLOD signal 26, thescale signal 25, and two other pattern attribute signals, termed thepattern number 38 and themicrointerpolation limit 39. - The
microinterpolation limit 39 is also supplied to theLOD calculator 24. - Each tile stored in the lookup and
weight units 30 to 37 provides all the modulation values needed to produce at least part of a particular pattern at a particular resolution over an area corresponding to that of the tile. Each distinct pattern is identified, in terms of addressing within the lookup and weight unit concerned, by a pattern number. - Any one pattern may be stored in a number of different resolutions. The resolution is the result of the notional distance intended to be present between the centres of adjacent elements of a tile of the pattern, and is therefore higher the shorter this distance is. The notional distance between the centres is equal to Te for the tile in question.
- All tiles stored of a given pattern represent the same notional area, regardless of their resolution. Tiles of different patterns may represent different notional areas.
- The highest resolution at which patterns are represented in the lookup and weight unit is not a fired degree of resolution in terms of Te. For example, it may be necessary to store some patterns at a highest resolution given by Te = 2⁻⁴ feet, whereas other patterns may be needed with a highest resolution no more detailed than is given by Te = 2⁷ feet. If the value of Te for the highest resolution is designated TeMIN, then the
scale signal 25 represents Log₂ TeMIN. - The value of Pe is also the distance between the centres of adjacent projected pixels along an Xe, Ye plane line that is the projection of the screen raster line containing the two pixels. This value will usually not be equal to the notional distance between the centres of adjacent elements of a tile of the pattern required at the region being scanned. Consequently the projected pixel centres will not usually map onto all the tile element centres of a tile. However, since the values of Xe and Ye supplied by the processor are in binary form, those bits in Xe and Ye which are of lower significance than the bit position representing the magnitude of Te in the tile to be addressed are not used in addressing the tile. These lower significance bits are used in a weighting process based on the following geometrical interpolation considerations.
- If (X+½, Y+½) are the coordinates, in whole tile elements, of the centre of the bottom left hand one of four tile elements forming a square containing the point Xe, Ye, then (ΔX,ΔY) are the coordinates of that point relative to that centre. The coordinates, in tile elements, of the centres of the other three elements are (X+½, Y+1+½), (X+1+½, Y+½), and (X+1+½, Y+1+½).
- Let the intensity modulation values at (X+½, Y+½), (X+½ Y+1+½), (X+1+½, Y+½) and (X+1+½, Y+1+½) be respectively, A, C, B and D.
- The Xe, Ye coordinates of the point are processed as coordinates (X+ΔX+½) and (Y+ΔY+½) in units of Te.
- The interpolation algorithm uses the values ΔX and ΔY. These are obtained by subtracting 0.5 from the fractional part of the (X+ΔX+½), (Y+ΔY+½) coordinates and then taking the fractional part of the result. This is done in 2′s complement format so that the fractional part always has a positive value less than 1. The algorithm involves interpolating first in the X axis and then in the Y axis. X axis interpolation interpolates between A and B to give a value J and between C and D to give a value K. Y axis interpolation then interpolates between J and K to give the final interpolated modulation value T at the projected pixel centre point.
X axis interpolation: -
- To implement the interpolation algorithm, the four adjacent values A, B, C, and D must be read out for each value of Xe, Ye. The lookup and
weight units 30 to 33 read out respectively A, B, C and D, and the summingcircuit 28 carries out the final addition to produce T, which in this case is IN. Similarly, the lookup andweight units 34 to 37 read out respectively A, B, C, and D of a lower resolution tile of the same pattern, and the summingcircuit 29 carries out addition to produce its value of T which is IN+1. - The
scale signal 25, decoded at theattribute store 23 from the pattern code, and theLOD signal 26 from thecalculator 24 determine the values of Te required by the addressing circuitry of theunits 30 to 37. -
- If N = m+n where m the scale signal value, then log₂ Pe = (m+n+f). The
LOD signal 26 in this case represents n and is supplied to all the lookup andweight units 30 to 37. When n is zero or a positive integer, then in theunits 30 to 33, theLOD signal 26 is treated as representing n, whereas in theunits 34 to 37 it is treated as representing n+1, which becomes the effective LOD value in those four units. As a result, the tiles addressed in theunits 30 to 33 are tiles having elements oflength 2N feet, whereas the tiles addressed in theunits 34 to 37 are tiles having elements oflength 2(N+1) feet. - When n is a negative integer, the
LOD signal 26 is treated in all the eightunits 30 to 37 as representing zero. - Fig. 4 is a schematic block diagram of any one of the
units 30 to 37. - The
scale signal 25 and themicrointerpolation limit 39 are supplied to ascale calculator 40. The coordinate values Xe and Ye are supplied torespective shifters calculator output signal 43 which is supplied to theshifters base 2 of the number of intensity modulation values along one side of the notional area containing the complete pattern at its highest resolution. This area may be the area of one tile or a plurality of tiles. If the complete pattern area is rectangular, the longer side is taken. - The scaled outputs are supplied to an
address generator 43 that also receives theLOD signal 26. If the LOD signal value is zero or negative, no shifting is carried out by the address generator, and the bit corresponding to TeMIN in each scaled output retains as itssignificance 2°. However, if the value of theLOD signal 26 is a positive integer, the value n of theLOD signal 26 is used to determine further shifting which results in the bit corresponding to 2n in each scaled output being treated as signifying 2°. - All the bits below the bit designated 2° are separated from the bits of higher significance, i.e. 2° and above, 2⁻¹ is subtracted and the remaining bits become ΔX or ΔY, if n is equal to or greater than zero, and are read to a
weight generator 44 which calculates the appropriate one of the four expressions (1 - ΔX) (1 - Δ Y), (ΔX) (1 - ΔY), (1 - ΔX) (ΔY), and (ΔX) (ΔY) depending upon whether the unit isunit unit weight generator 44 to adigital multiplier 45 that multiplies the intensity modulation value A or B or C or D, read out from atile store 46, by the result from thegenerator 44. The output of themultiplier 45 is supplied to the summingcircuit - Each tile of any given pattern is one of a set of tiles of a particular resolution, determined by their common value of Te, and one of a set of tiles defining the particular pattern at a number of different resolutions. The LOD value supplied by the
LOD signal 26 provides a number of higher significance bits to identity the resolution set to which the tile belongs. If the LOD signal value is any negative integer or zero, the set of tiles having the highest resolution, for the pattern concerned, is indicated. The combined LOD-derived bits and relative tile element address are supplied to thetile store 46 where they are combined with thepattern number 38 which identifies the pattern set to which the tile belongs. Thus the complete tile address in thestore 46 is formed by the combination of thepattern number 38 to identity the pattern, the LOD value to identify which resolution of the particular pattern is to be used, and the relative tile element address. Thepattern number 38 and LOD value identify the particular tile to be read, and the relative tile element address identifies the particular element to be read within that tile. - Each polygonal surface defined in the
database memory 6 has an associated pattern number that is encoded in the pattern code which is transmitted as thepattern code signal 19 to thepattern attribute store 23. To produce non-texture surface detail within a polygonal, a non-zero value of themicrointerpolation limit 39 is encoded in the pattern code and is supplied to theLOD calculator 24 and to each lookup andweight unit 30 to 37. - In the
LOD calculator 24, a non-zero value of themicrointerpolation limit 39 allows the integer value of log₂ Pe, used as the LOD value, to be a negative integer up to a limit (-mp) where mp is the value of the microinterpolation limit. The blend factor is calculated in the same way as it is when the LOD value is positive. The effect of a negative value of LOD at theaddress generator 43 is to cause all the bits in ΔX from 2⁻¹ to 2-k, and all the bits in ΔY from 2⁻¹ to 2-k to be treated as zeros where the LOD value is (-k). Consequently ΔX and ΔY have values which are given by their 2-(1+k) to 2-(r+k) bits. Geometrically this is equivalent to moving the projected pixel centre towards the intensity modulation value A at (X+½, Y+½), by an amount that increases with the magnitude of k. Thus the resultant interpolated intensity modulation value is biased towards the value A. The visible effect of this is to emphasise step-like changes in intensity where they occur over a distance equal to the length of a tile element. The value of the microinterpolation limit is chosen to ensure that there is always sufficient smoothing to prevent aliassing. The bits for X and Y, which form the relative tile element address, remain the same as for the zero value of LOD, i.e. the highest resolution of the pattern. Consequently although the value of theLOD signal 26 is increased by +1 in theunits 34 to 37, to the value (1- k), the same four tile element values A, B, C and D are read out in theunits 34 to 37 as in theunits 30 to 33. However, if the bits for ΔX and ΔY inunits 30 to 33 are 2-(1-k) to 2-(r+k), then the bits for ΔX and ΔY inunits 34 to 37 are 2-(1+k-1) to 2-(r+k-1) so that theblender circuit 22 receives slightly less rapidly changing signals from the summingcircuit 29 than from the summingcircuit 28. Theblender circuit 22 therefore provides an extra slight shading effect at boundaries between tile elements having contrasting values, the amount of extra shading diminishing as the magnitude of k increases up to the limit mp. - Figs. 5 and 6 illustrate an 8 by 8 array of tile element values and the corresponding square polygonal surface with the interior detail produced by microinterpolation of the tile element values.
- The microinterpolation technique described hereinbefore can be used in an embodiment of the invention described and claimed in our copending European patent application No. 91303025.
- Data can be loaded into the
stores 46 from the flight simulation computer 1 or thegeneral purpose computer 2 over a data bus (not shown) for each runway threshold or other reference point, as will be apparent to those skilled in the art, to whom it will also be obvious that by having three pattern processors and making other obvious modifications, full colour visual display can be provided.
Claims (6)
- Apparatus for generating a visual display, comprising first memory means (6) storing geometrical surface data defined in relation to a respective coordinate system, and associated surface appearance data including surface intensity data, first processing means (2, 5) arranged to select from the data stored in the first memory means (6) geometrical surface data and the associated surface appearance data for creating a display of a restricted two-dimensional perspective view of a region defined by observation point and attitude data supplied to the first processing means (2, 5), the first processing means (2, 5) including input means for receiving variable observation point and attitude data, display means (3) coupled to the first processing means (2, 5) for displaying the said restricted perspective view, second memory means (46) storing surface detail data comprising a plurality of intensity modulation values each stored at a respective address corresponding to a point position in a notional plane, second processing means (15) coupled to the first processing means (2, 5) to receive observation point and attitude data and to means (10, 17, 18) for generating and supplying thereto pairs of display coordinates corresponding to points in the visual display, the second processing means (15) being such as to generate for each pair of display coordinates supplied thereto a corresponding pair of coordinates substantially determined by an inverse perspective projection from the observation point to a plane defined in the respective coordinate system of the said geometrical surface data, addressing means (41, 42, 43) coupling the second processing means (15) to the second memory means (46) so as to convert each said corresponding pair of coordinates into a predetermined plurality of respective addresses and to address the second memory means (46) therewith, and intensity modulation means (11) so coupling the second memory means (46) to the display means (3) as to cause the intensity data selected by the first processing means (2, 5) for a displayed point to be modulated by an intensity modulation value derived from the addressed plurality of intensity moduluation values for the same displayed point, the addressing means (41, 42, 43) including means (44, 45) for weighting each addressed intensity modulation value with a respective geometrical weighting factor, and means (41, 42, 43) for selecting the weighting factors in dependence upon a signal (39) representative of surface detail data stored in the first memory means (6), the said predetermined plurality of respective addresses corresponding to a set of points in the said notional plane which define the vertices of at least one polygon containing the point defined by the said corresponding pair of coordinates determined by the inverse projection, and the respective geometrical weighting factors being related to the position of the contained point within the said polygon or polygons.
- Apparatus according to claim 1, wherein the second memory means and the addressing means (30-37) are such that two said polygons are defined and the weighting factors are different for the two polygons.
- Apparatus according to claim 1, wherein the addressing means are such that in response to at least one predetermined value of the said signal (39) representative of surface detail data, the two said polygons are identical.
- Apparatus according to any preceding claim, wherein the addressing means is such that the or each polygon is defined by four vertices.
- Apparatus for generating a visual display, comprising first memory means (6) storing geometrical surface data defined in relation to a respective coordinate system, and associated surface detail data including surface intensity data, first processing means (2, 5) arranged to select from the data stored in the first memory means (6) geometrical surface data and the associated surface appearance data for creating a display of a restricted two-dimensional perspective view of a region defined by observation point and attitude data supplied to the first processing means (2, 5), the first processing means (2, 5) including input means for receiving variable observation point and attitude data, display means (3) coupled to the first processing means (2, 5) for displaying the said restricted perspective view, second memory means (46) storing surface detail data comprising a plurality of intensity modulation values each stored at a respective address corresponding to a point position in a notional plane, second processing means (15) coupled to the first processing means (2, 5) to receive observation point and attitude data and to means (10, 17, 18) for generating and supplying thereto pairs of display coordinates corresponding to points in the visual display, the second processing means (15) being such as to generate for each pair of display coordinates supplied thereto a corresponding pair of coordinates substantially determined by an inverse perspective projection from the observation point to a plane defined in the respective coordinate system of the said geometrical surface data, addressing means (41, 42, 43) coupling the second processing means (15) to the second memory means (46) so as to convert each said coresponding pair of coordinates into a predetermined plurality of respective addresses and to address the second memory means (46) therewith, and intensity modulation means (11) so coupling the second memory means (46) to the display means (3) as to cause the intensity data selected by the first processing means (2, 5) for a displayed point to be modulated by an intensity modulation value derived from the addressed plurality of intensity modulation values for the same displayed point, the addressing means (41, 42, 43) including means (44, 45) for weighting each addressed intensity modulation value with a respective weighting factor, and means (41, 42, 43) for selecting the weighting factors in dependence upon a signal (39) representative of surface detail data stored in the first memory means (6), the said predetermined plurality of respective addresses corresponding to a set of points in the said notional plane which define the vertices of a polygon containing the point defined by the said corresponding pair of coordinates determined by the inverse projection, and the weighting factors being selectable to bias the said derived intensity modulation value towards a value at one of the said predetermined plurality of respective addresses.
- Apparatus for generating a visual display, substantially as described hereinbefore with reference to the accompanying drawings.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9013559A GB2245460B (en) | 1990-06-18 | 1990-06-18 | Apparatus for generating a visual display |
GB9013559 | 1990-06-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
EP0462788A2 true EP0462788A2 (en) | 1991-12-27 |
EP0462788A3 EP0462788A3 (en) | 1993-03-31 |
Family
ID=10677804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19910305486 Withdrawn EP0462788A3 (en) | 1990-06-18 | 1991-06-14 | Apparatus for generating a visual display |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0462788A3 (en) |
CA (1) | CA2044804A1 (en) |
GB (1) | GB2245460B (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994022100A1 (en) * | 1993-03-25 | 1994-09-29 | Delean Bruno Camille Roger Jea | Method for processing an image in a computerized system |
US5790708A (en) * | 1993-03-25 | 1998-08-04 | Live Picture, Inc. | Procedure for image processing in a computerized system |
WO1999010842A1 (en) * | 1997-08-25 | 1999-03-04 | Ngan Ka Ham | Method of constructing a solid graph using honeycomb cells |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9501832D0 (en) | 1995-01-31 | 1995-03-22 | Videologic Ltd | Texturing and shading of 3-d images |
GB2343599B (en) * | 1998-11-06 | 2003-05-14 | Videologic Ltd | Texturing systems for use in three dimensional imaging systems |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4384338A (en) * | 1980-12-24 | 1983-05-17 | The Singer Company | Methods and apparatus for blending computer image generated features |
GB2171579A (en) * | 1985-02-20 | 1986-08-28 | Singer Link Miles Ltd | Apparatus for generating a visual display |
EP0450978A2 (en) * | 1990-04-06 | 1991-10-09 | Link-Miles Limited | Apparatus for generating a visual display |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4692880A (en) * | 1985-11-15 | 1987-09-08 | General Electric Company | Memory efficient cell texturing for advanced video object generator |
US4805116A (en) * | 1986-04-23 | 1989-02-14 | International Business Machines Corporation | Interpolated display characteristic value generator |
EP0319165B1 (en) * | 1987-12-04 | 1995-10-18 | EVANS & SUTHERLAND COMPUTER CORPORATION | System for using barycentric coordinates as for polygon interpolation |
-
1990
- 1990-06-18 GB GB9013559A patent/GB2245460B/en not_active Expired - Fee Related
-
1991
- 1991-06-14 EP EP19910305486 patent/EP0462788A3/en not_active Withdrawn
- 1991-06-17 CA CA002044804A patent/CA2044804A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4384338A (en) * | 1980-12-24 | 1983-05-17 | The Singer Company | Methods and apparatus for blending computer image generated features |
GB2171579A (en) * | 1985-02-20 | 1986-08-28 | Singer Link Miles Ltd | Apparatus for generating a visual display |
EP0450978A2 (en) * | 1990-04-06 | 1991-10-09 | Link-Miles Limited | Apparatus for generating a visual display |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994022100A1 (en) * | 1993-03-25 | 1994-09-29 | Delean Bruno Camille Roger Jea | Method for processing an image in a computerized system |
FR2703170A1 (en) * | 1993-03-25 | 1994-09-30 | Delean Bruno Camille Roger | Method of processing an image in a computer system |
AU681641B2 (en) * | 1993-03-25 | 1997-09-04 | Mgi Software Corporation | Method for processing an image in a computerized system |
US5790708A (en) * | 1993-03-25 | 1998-08-04 | Live Picture, Inc. | Procedure for image processing in a computerized system |
US5907640A (en) * | 1993-03-25 | 1999-05-25 | Live Picture, Inc. | Functional interpolating transformation system for image processing |
US6181836B1 (en) | 1993-03-25 | 2001-01-30 | Mgi Software Corporation | Method and system for non-destructive image editing |
US6512855B1 (en) | 1993-03-25 | 2003-01-28 | Roxio, Inc. | Method and system for image processing |
US6763146B2 (en) | 1993-03-25 | 2004-07-13 | Roxio, Inc. | Method and system for image processing |
USRE43747E1 (en) | 1993-03-25 | 2012-10-16 | Intellectual Ventures I Llc | Method and system for image processing |
WO1999010842A1 (en) * | 1997-08-25 | 1999-03-04 | Ngan Ka Ham | Method of constructing a solid graph using honeycomb cells |
AU737225B2 (en) * | 1997-08-25 | 2001-08-16 | Ka-Ham Ngan | Method of constructing a substantial image using honeycomb structure elements |
US6380938B1 (en) | 1997-08-25 | 2002-04-30 | Ngan Ka-Ham | Method of constructing a solid graph using honeycomb cells |
Also Published As
Publication number | Publication date |
---|---|
EP0462788A3 (en) | 1993-03-31 |
GB2245460B (en) | 1994-04-06 |
GB2245460A (en) | 1992-01-02 |
GB9013559D0 (en) | 1990-08-08 |
CA2044804A1 (en) | 1991-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0160660B1 (en) | A method and apparatus for texture generation | |
US5630718A (en) | Weather simulation system | |
US4985854A (en) | Method for rapid generation of photo-realistic imagery | |
EP0528837B1 (en) | Image generator | |
EP0137108A1 (en) | A raster display system | |
US4855934A (en) | System for texturing computer graphics images | |
US4343037A (en) | Visual display systems of the computer generated image type | |
US6600489B2 (en) | System and method of processing digital terrain information | |
US5598359A (en) | Weather effects generator for simulation systems | |
US5409379A (en) | Weather simulation system | |
US5854632A (en) | Apparatus and method for simulating specular reflection in a computer graphics/imaging system | |
GB2243523A (en) | Generating elliptical objects | |
WO1999067748A2 (en) | An improved method and apparatus for per pixel mip mapping and trilinear filtering | |
US4951230A (en) | Method and apparatus for tiling an image | |
GB2171579A (en) | Apparatus for generating a visual display | |
GB2051525A (en) | C.G.I.-Surface textures | |
EP0462788A2 (en) | Apparatus for generating a visual display | |
EP0314368B1 (en) | Method and apparatus for hidden surface removal | |
EP0450978A2 (en) | Apparatus for generating a visual display | |
EP0250588B1 (en) | Comprehensive distortion correction in a real time imaging system | |
EP0164457A1 (en) | An image generator | |
GB2242810A (en) | Addressing a texture memory | |
EP0314367A2 (en) | Method and apparatus for tiling an image |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): DE FR GB |
|
17P | Request for examination filed |
Effective date: 19921016 |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): DE FR GB |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 19970101 |
|
R18D | Application deemed to be withdrawn (corrected) |
Effective date: 19970103 |