BUMP MAPPING IN 3-D COMPUTER GRAPHICS

Abstract: A method of processing computer graphics information for rendering an image on a display comprising preparing a texture map in which each point is given one of a limited number of codes, each code identifying a parameter set which defines the colour and brightness of that point of the map. Prior to rendering, a conversion calculation is performed to provide a new parameter set for each code which is applicable to a particular polygon. This gives a look-up table used to render into the frame buffer.

Description: Bump Mapping in 3-D Computer Graphics This invention is concerned with 3-D computer graphics, in particular creating a 2-D image in which the various objects and surfaces have a realistic appearance. The appearance is determined by the perceived surface texture, colour and brightness. In the final rendering, i.e. defining the final coordinates and other parameters of the pixels which go to make up a frame of an image, normally individual calculations are made for each pixel. These calculations link the orientation in space defined by its surface normal, of the relevant spot on a surface with the assumed brightness, colour and direction of the illumination falling on that spot to define how that spot will look to an observer. Such calculations involve complex mathematics and require considerable processing power and memory if they are to be made in real time for realistic animations. Texture mapping and bump mapping are discussed, for example, in '3-D Computer Animation', by Vince, Addison-Wesley (1992). The invention aims to provide a much simplified method of bump mapping which is faster and requires less processing power, particularly for the animation of computer games. The invention proposes the use of a look-up table in which a pre-defined limited set of texture parameters is allocated a set of reference codes, and the texture map, which is normally used as the source of data for calculation of the texture of any pixel, consist of an array of reference codes for accessing said texture parameters. According to the invention there is proposed a method of processing computer graphics information for rendering an image on a display comprising preparing a texture map in which each point is given one of a limited number of codes, each code identifying a parameter set which defines the colour and brightness of that point of the map. A more detailed example of the operation of the inventive technique will now be described. In a further development of the invention, the method comprises: a) performing a conversion calculation to produce a set of new parameters for each code, which correspond to the location and attitude of a 3-D surface to be mapped; and b) allocating to each frame pixel a set of new parameters identified by the code allocated to the point of the texture map corresponding to that pixel. Initially, a table is prepared in which, out of an infinite number of surface normals which might be calculated for each spot on a surface in 3-D image space, a restricted number e.g. sixteen, are chosen to be representative of the full range. Each of this restricted number is allocated a reference code. In preparing a texture map, the nearest of the sixteen normals to the true normal at a particular spot is chosen for that spot. Each texture map stored in memory, instead of giving detailed information as to the exact topography of the surface, merely gives an approximation in the form of a reference code allocated to each spot in the map. Using this restricted list of surface normals, a single set of e.g. sixteen, calculations can be made for a polygon with a given light direction, colour, intensity and viewpoint to produce a corresponding list of surface texture characteristics, each allocated the corresponding reference code. This now represents a look-up table for use in rendering a scene into the frame buffer. When rendering, individual calculations are no longer required for each pixel for the 2-D image. Rather, only the reference code for that texel (texture pixel in the texture map) needs to be read and the look-up table then consulted to find the required lighting intensity for the pixel to be rendered. Although this technique only gives approximations, it is simple, fast and easily implemented. It is adequate for the animation of e.g. computer games, which do not require great subtlety, and for which speed and minimisation of computing power are important. It is usable effectively only for an assumed single point light source at a great distance. Since the possible surface normals and their corresponding parameter sets are limited to sixteen, the need to do calculations for any random set of parameters is avoided. However, the pre-calculations of the look-up table are only worthwhile if they are fewer than the pixels being rendered by this means.

Claims: CLAIMS 1. A method of processing computer graphics information for rendering an image on a display comprising preparing a texture map in which each point is given one of a limited number of codes, each code identifying a parameter set which defines the colour and brightness of that point of the map. 2. A method as claimed in claim 1, further comprising: a) performing a conversion calculation to produce a set of new parameters for each code, which correspond to the location and attitude of a 3-D surface to be mapped; and b) allocating to each frame pixel a set of new parameters identified by the code allocated to the point of the texture map corresponding to that pixel. 3. A method as claimed in claim 2, wherein step a) is used to form a look-up table which is stored for use in step b). 4. A method of processing computer graphics information substantially as herein described with reference to the accompanying drawings.

Inventors: WARNES PETER ROBERT, WARNES, PETER, ROBERT
Applicants: ARGONAUT TECHN LTD, WARNES PETER ROBERT, ARGONAUT TECHNOLOGIES LIMITED, WARNES, PETER, ROBERT
Application year: 1995
Main classification: G06T15
IPC codes: G06T11, G06T15