WO2004095376A2 - Efficient bump mapping using height maps - Google Patents
Efficient bump mapping using height maps Download PDFInfo
- Publication number
- WO2004095376A2 WO2004095376A2 PCT/GB2004/001315 GB2004001315W WO2004095376A2 WO 2004095376 A2 WO2004095376 A2 WO 2004095376A2 GB 2004001315 W GB2004001315 W GB 2004001315W WO 2004095376 A2 WO2004095376 A2 WO 2004095376A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- texture
- filtering
- height
- bump map
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Definitions
- This invention relates to a method and apparatus for generating bump map data for use in a 3 dimensional computer graphics system.
- each perturbation is computed by first taking derivates of a bump displacement texture or 'height map' and subsequently applying it to the original surface normal and surface tangent vectors.
- the height map is a simple array of scalar values that gives the 'vertical' displacement or 'height' of- a surface at regular grid points relative to that surface. Typically these are represented by monochromatic image data, e.g. a bitmap, with the brightness of any pixel being representative of the 'height' at that point . Standard texture mapping practices are used to access the height data. The normal perturbations and lighting calculations are done in global or model space.
- Figure 8a shows the application of Blinn' s method to an 'illuminated' flat surface.
- a normal map can then be pre-computed, prior to rendering, by taking the cross product of the local derivative vectors of the height function sampled at regular positions .
- texture filtering e.g. those based on the well-known MIP mapping techniques
- the height map should be repeatedly down-sampled and the associated normal map regenerated to produce the multiple MIP map levels . Problems can arise, however, when applying the texture filtering techniques, e.g. bilinear or trilinear filtering, to normal maps .
- the height map could be of relatively low precision - often as low as, say 8 or even 4 bits per pixel - the normal map may require 16 to 32 bits per pixel.
- the pre-processing steps of generating and compressing the normal map and the process of using the compressed normal map in 3D rendering are shown in Figure 2.
- a height map 2 is used for normal map generation 4.
- An optional compression step 6 may then be used to produce an output map 8.
- an optional decompression step is first performed on- the-fly before the map is used by shading calculations 12 to provide pixel data to an output frame buffer 14.
- a 2D texture can be considered to be a vector function of 2 variables (U, V) .
- U 2 variables
- V 2 variables
- the values of U and V range from 0 to N.
- the pixel, or 'texel', values stored in the texture can be considered to be representative of the points in the centres of the respective texels, i.e. at coordinates (i+0.5, j+0.5), where i and j are integers and represent the texel coordinate of the particular texel . This is illustrated in figure 3 for texel i ) , the centre of which is indicated by '20' .
- Such a point has texture coordinates (u s ,v s ) where i+Q.5 ⁇ u s ⁇ i+l.5 and j+o.5 ⁇ v s ⁇ y'+1.5 •
- the texture values for any point in the square will be formed from a bilinear blend of the four surrounding texels.
- V : Vs - 0.5;
- Vi : floor (V ) ;
- Vblend V - Vi
- Figure 4a shows hardware, typical in the art, that performs the first steps of the above bilinear algorithm.
- the requested sample position is input, '50', and the positions adjusted by % a texel, '51' via a subtraction.
- the 'floors' of the coordinate values are computed, '52', and these define the texel integer coordinates, '53', for the top left texel of the required set of 4 texels.
- the values are also subtracted, '54', from previous values to produce the blending factors for the bilinear operation, '55' .
- the colours in 3D computer graphics are usually 4-D entities, having Red, Green, Blue, and Alpha (i.e. transparency) components.
- All four components of the various colour values are operated on in parallel . This is shown in the second stage of the bilinear operation in Figure 4b.
- the integer texel coordinates computed in '53' are used to access the four neighbouring texels, '60' thru '63' . Each of these has its own Red, Green, Blue, and Alpha components.
- the individual scalar results are then recombined into the one resulting colour, '69' .
- a bi-quadratic B-spline which has CI continuity (i.e. continuous first derivative) .
- a bi-quadratic B-spline also has the property that, for any point on the surface, a sub- grid of 3x3 control points is needed to evaluate that point and/or derivatives at that point.
- a one-dimensional slice though a section of a quadratic B-spline is shown in figure 5.
- the points, '80', '81', and '82' can be considered to be three adjacent control points in a row of the grid.
- the region of the curve between '85', and '86' depends only on these three control values (and the neighbouring 6 values in the 3x3 sub-grid in the case of a bi-quadratic surface) .
- the region of interest is the central 'square', i.e. a position specified by ⁇ ,v) , where 0 ⁇ u,v ⁇ l .
- one method based on de Casteljau would be to bi-linearly interpolate sets of 2x2 neighbouring control points, using ⁇ ,v) as weights, to produce a new set of 2x2 intermediate control points.
- One of the four sets of 2x2 intermediate control points is indicated by '102'.
- tangents to the surface are required, a method such as given by Mann and Rose ("Computing values and derivatives of Bezier and B- spline tensor products", CAGD, Vol 12, February 1995) can be used. For the bi-quadratic case, this can be done by performing additional linear interpolations using the 2x2 intermediate control values. Finally, taking the cross product of these tangents generates the surface normal .
- the height map defines 'height' values only at certain sample locations and so a means of computing the height surface at other points is required.
- bump mapping requires the surface normal which, in turn, usually implies the need for surface tangents. Blinn points out that the surface height is not actually required and proposes a function that only computes tangents.
- Blinn' s function performs 3 bilinear blends respectively of the top left, top right, and bottom left neighbours, and then computes the differences of the top left and top right result and the top left and bottom left result as part of the tangent generation.
- Peercy et al's pre- perturbed normal map method makes bump mapping more practical in real-time hardware, it still requires 'large' texture formats as well as the separate pre-processing step to convert a height map to normal map.
- the 'large' texture formats consume valuable bandwidth as well as memory and cache storage and, although special normal map compression techniques exist, these formats are still often larger than the original source height map. Also filtering of the normal map may also be problematic.
- a further limitation of Peercy et al's technique is that dynamic bump mapping, i.e. where the bump heights are computed frame-by-frame, is far more difficult to achieve.
- the height values may be generated as the result of a separate rendering pass .
- the pre-processing step, including generation of the various MIP map levels, may take too much time to allow real-time rendering.
- the filtered surface normals are created 'on demand' and are not stored. This provides the joint benefits of reducing the amount of texture data and bandwidth needed for bump mapping, as well as overcoming some of the issues with the filtering of normal maps . This feature is also important when using dynamic height maps in real-time rendering since a pre-processing step may be prohibitive.
- Figure 1 shows the process of perturbing surface Normals as described by Blinn
- Figure 2 shows a flow chart of the pipeline used for Peercy et al's method described above
- Figure 4a shows an overview coordinate calculation device in typical prior art bilinear hardware
- Figure 4b shows an overview of prior art hardware that applies the bilinear blending to the addressed texels
- Figure 5 shows a segment of a piecewise quadratic B- spline curve, or equivalently, a section through a biquadratic B-spline Surface
- Figure 6 shows a plan view of a section of a height map being interpreted as a bi-quadratic B-spline surface
- Figure 7 shows an overview of a hardware system embodying the invention with modifications to support normal generation from height maps
- Figure 8a shows the results of bumping mapping using Blinn' s height map derivative function
- Figure 8b shows the function used by a preferred embodiment
- Figure 9 shows some alternative filter patterns that could be used for computing derivatives of a bump map.
- height map textures which store an array of height values, using preferably 4 or 8 bits per texel .
- Each value will encode a fixed-point number with some number of fraction bits - preferably 1/4 of the bits will be assigned to the fractional part.
- the embodiment fits a bi-quadratic B-spline through this set of points, thus giving the virtual height map texture CI continuity (i.e. continuous first derivatives).
- the points '80', '81', and '82' represent three adjacent height values/control points in a row of the height map.
- the value in the texture is allocated (preferably) to the y dimension while the other coordinate values (i.e., x and z) are implicitly defined by the texel' s coordinate position.
- Alternative embodiments may assign these dimensions in some other permutation.
- the other control points needed for the surface in the texel region are shown, in plan form, in Figure 6.
- the 3x3 grid of samples is then fed into the 'Replicate' unit, 152, which outputs values to the Red, Green, Blue, and Alpha bilinear units.
- the Red channel receives the top left grid of 2x2 scalar values, i.e. those fetched from... a b d e
- the green channel receives the top right set, the blue, the bottom left, and the alpha receives the bottom right.
- V or e' some values, such as V or e' , will be used more than once, thus the grids supplied to each unit overlap at least partially.
- Vblend n — H
- unit 155 actually only outputs three values: Tangl [y] , Tang2 [y] and 1 Texturesize.
- This vector is then normalised, preferably by squaring the N vector, computing the inverse of the square root of the result, and multiplying that scalar by the original components.
- the normalisation step may appear expensive, but it would be a requirement of any system that supported compressed normal maps, such as that described in WO9909523 or British patent application No. 0216668.4. Thus, if such texture formats were already supported, the re-normalisation hardware would be reused.
- An example of the output of this embodiment is shown in Figure 8b.
- trilinear filtering can be adapted to support normal generation - the only difference in procedure will be that the values fed into tangent construction unit '155' will be a 'blend' of the values computed from two adjacent MIP map levels chosen.
- Other embodiments supporting improved anisotropic filtering are also feasible.
- an interpolated scale factor may be applied to the deltas/tangents before normalisation so that a height map can be scaled differently for different models or different parts of the same model.
- the blend factor adjust unit, 153 is not used and the B-spline control points are converted to the equivalent Bezier representations according to Equation 1 in a modified '152' unit.
- the actual interpolated height value would be computed by including a third linear blending operation.
- Blinn' s height interpolation function could be employed.
- the blend factor adjust unit, 153 is not used and it is unnecessary to use the bilinear 'alpha' channel. That also implies that it is unnecessary to fetch source texel ' ' .
- the tangent unit, 155 then simplifies to compute the difference of 'green' and 'red' and the difference of 'blue' and 'red' .
- dedicated sampling hardware could be included that takes numerous texture samples and applies an alternative derivative filter such as 4 taps, Sobel, Prewitt, Parks-McClellan derivatives filters as represented in figure 9.
- colour textures are also filtered using bi-quadratic B-splines, either through the addition of bilinear filtering units, or by iterations through the colour channels, whereby the individual weights to the bilinear units are adjusted according to the previously described embodiments .
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04723632.8A EP1616303B1 (en) | 2003-04-15 | 2004-03-26 | Efficient bump mapping using height maps |
JP2006506031A JP4637091B2 (en) | 2003-04-15 | 2004-03-26 | Efficient bump mapping using height maps |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0308737A GB2400778B (en) | 2003-04-15 | 2003-04-15 | Efficient bump mapping using height map |
GB0308737.6 | 2003-04-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2004095376A2 true WO2004095376A2 (en) | 2004-11-04 |
WO2004095376A3 WO2004095376A3 (en) | 2005-01-20 |
Family
ID=9956851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/GB2004/001315 WO2004095376A2 (en) | 2003-04-15 | 2004-03-26 | Efficient bump mapping using height maps |
Country Status (5)
Country | Link |
---|---|
US (2) | US20040207631A1 (en) |
EP (1) | EP1616303B1 (en) |
JP (1) | JP4637091B2 (en) |
GB (1) | GB2400778B (en) |
WO (1) | WO2004095376A2 (en) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9081681B1 (en) * | 2003-12-19 | 2015-07-14 | Nvidia Corporation | Method and system for implementing compressed normal maps |
DE102004040372B4 (en) * | 2004-08-20 | 2006-06-29 | Diehl Avionik Systeme Gmbh | Method and device for displaying a three-dimensional topography |
US7961195B1 (en) | 2004-11-16 | 2011-06-14 | Nvidia Corporation | Two component texture map compression |
US8078656B1 (en) | 2004-11-16 | 2011-12-13 | Nvidia Corporation | Data decompression with extra precision |
US7734118B2 (en) * | 2004-11-17 | 2010-06-08 | Adobe Systems Incorporated | Automatic image feature embedding |
US7928988B1 (en) | 2004-11-19 | 2011-04-19 | Nvidia Corporation | Method and system for texture block swapping memory management |
JP4265791B2 (en) * | 2004-12-08 | 2009-05-20 | 株式会社ソニー・コンピュータエンタテインメント | Normal map data generation method, drawing processing method, and drawing processing apparatus |
US7916149B1 (en) | 2005-01-04 | 2011-03-29 | Nvidia Corporation | Block linear memory ordering of texture data |
US7747106B2 (en) * | 2005-06-13 | 2010-06-29 | Sarnoff Corporation | Method and system for filtering, registering, and matching 2.5D normal maps |
US7551177B2 (en) * | 2005-08-31 | 2009-06-23 | Ati Technologies, Inc. | Methods and apparatus for retrieving and combining samples of graphics information |
AU2006200969A1 (en) * | 2006-03-07 | 2007-09-27 | Canon Information Systems Research Australia Pty Ltd | Print representation |
US8594441B1 (en) | 2006-09-12 | 2013-11-26 | Nvidia Corporation | Compressing image-based data using luminance |
US7853092B2 (en) * | 2007-01-11 | 2010-12-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Feature block compression/decompression |
US8724895B2 (en) | 2007-07-23 | 2014-05-13 | Nvidia Corporation | Techniques for reducing color artifacts in digital images |
FR2929417B1 (en) * | 2008-03-27 | 2010-05-21 | Univ Paris 13 | METHOD FOR DETERMINING A THREE-DIMENSIONAL REPRESENTATION OF AN OBJECT FROM POINTS, COMPUTER PROGRAM AND CORRESPONDING IMAGING SYSTEM |
US8373718B2 (en) | 2008-12-10 | 2013-02-12 | Nvidia Corporation | Method and system for color enhancement with color volume adjustment and variable shift along luminance axis |
US8610732B2 (en) * | 2008-12-11 | 2013-12-17 | Nvidia Corporation | System and method for video memory usage for general system application |
US7973705B2 (en) * | 2009-07-17 | 2011-07-05 | Garmin Switzerland Gmbh | Marine bump map display |
US8947448B2 (en) | 2009-12-24 | 2015-02-03 | Sony Corporation | Image processing device, image data generation device, image processing method, image data generation method, and data structure of image file |
KR102477265B1 (en) * | 2015-09-24 | 2022-12-13 | 삼성전자주식회사 | Graphics processing apparatus and method for determining LOD (level of detail) for texturing of graphics pipeline thereof |
RU2637901C2 (en) * | 2015-11-06 | 2017-12-07 | Общество С Ограниченной Ответственностью "Яндекс" | Method and data storing computer device for drawing graphic objects |
RU2629439C2 (en) * | 2015-12-29 | 2017-08-29 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system of storage of data for drawing three-dimensional graphic objects |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09231402A (en) * | 1996-02-27 | 1997-09-05 | Sony Corp | Bump mapping method and picture generating device |
US5949424A (en) * | 1997-02-28 | 1999-09-07 | Silicon Graphics, Inc. | Method, system, and computer program product for bump mapping in tangent space |
GB9717656D0 (en) * | 1997-08-20 | 1997-10-22 | Videologic Ltd | Shading three dimensional images |
US6850244B2 (en) * | 2001-01-11 | 2005-02-01 | Micron Techology, Inc. | Apparatus and method for gradient mapping in a graphics processing system |
US6765584B1 (en) * | 2002-03-14 | 2004-07-20 | Nvidia Corporation | System and method for creating a vector map in a hardware graphics pipeline |
-
2003
- 2003-04-15 GB GB0308737A patent/GB2400778B/en not_active Expired - Lifetime
- 2003-07-01 US US10/611,719 patent/US20040207631A1/en not_active Abandoned
-
2004
- 2004-03-26 EP EP04723632.8A patent/EP1616303B1/en not_active Expired - Lifetime
- 2004-03-26 WO PCT/GB2004/001315 patent/WO2004095376A2/en active Application Filing
- 2004-03-26 JP JP2006506031A patent/JP4637091B2/en not_active Expired - Lifetime
-
2005
- 2005-09-16 US US11/228,876 patent/US7733352B2/en not_active Expired - Lifetime
Non-Patent Citations (5)
Title |
---|
ERNST I ET AL: "Hardware-supported bump mapping" COMPUTERS AND GRAPHICS, PERGAMON PRESS LTD. OXFORD, GB, vol. 20, no. 4, 1 July 1996 (1996-07-01), pages 515-521, XP004025145 ISSN: 0097-8493 * |
HAST A ET AL: "Reconstruction filters for bump mapping" JOURNAL OF WSCG UNIV. WEST BOHEMIA CZECH REPUBLIC, 4 February 2002 (2002-02-04), - 8 February 2002 (2002-02-08) pages 9-12, XP002299248 ISSN: 1213-6972 * |
LOE K F: "A sinusoidal polynomial spline and its Bezier blended interpolant" JOURNAL OF COMPUTATIONAL AND APPLIED MATHEMATICS ELSEVIER NETHERLANDS, vol. 71, no. 2, 27 July 1996 (1996-07-27), pages 383-393, XP002299249 ISSN: 0377-0427 * |
MALZBENDER T ET AL: "POLYNOMIAL TEXTURE MAPS" COMPUTER GRAPHICS. SIGGRAPH 2001. CONFERENCE PROCEEDINGS. LOS ANGELES, CA, AUG. 12 - 17, 2001, COMPUTER GRAPHICS PROCEEDINGS. SIGGRAPH, NEW YORK, NY : ACM, US, 12 August 2001 (2001-08-12), pages 519-528, XP001049925 ISBN: 1-58113-374-X * |
PATENT ABSTRACTS OF JAPAN vol. 1998, no. 01, 30 January 1998 (1998-01-30) & JP 9 231402 A (SONY CORP), 5 September 1997 (1997-09-05) * |
Also Published As
Publication number | Publication date |
---|---|
EP1616303A2 (en) | 2006-01-18 |
GB2400778A (en) | 2004-10-20 |
JP4637091B2 (en) | 2011-02-23 |
US7733352B2 (en) | 2010-06-08 |
GB0308737D0 (en) | 2003-05-21 |
GB2400778B (en) | 2006-02-01 |
WO2004095376A3 (en) | 2005-01-20 |
US20060109277A1 (en) | 2006-05-25 |
JP2006523876A (en) | 2006-10-19 |
EP1616303B1 (en) | 2023-05-03 |
US20040207631A1 (en) | 2004-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7733352B2 (en) | Efficient bump mapping using height maps | |
US20210097642A1 (en) | Graphics processing | |
US7692661B2 (en) | Method of creating and evaluating bandlimited noise for computer graphics | |
JP4522996B2 (en) | A system for adaptive resampling in texture mapping. | |
US6788304B1 (en) | Method and system for antialiased procedural solid texturing | |
WO2003038761A2 (en) | Rendering 3d objects with parametric texture maps | |
US7672476B2 (en) | Bandlimited noise for computer graphics | |
US20060158451A1 (en) | Selection of a mipmap level | |
US6400370B1 (en) | Stochastic sampling with constant density in object space for anisotropic texture mapping | |
US20050128213A1 (en) | Image rendering apparatus and method using mipmap texture mapping | |
US20060202990A1 (en) | Computer graphics system and method for rendering a computer graphic image | |
EP1058912B1 (en) | Subsampled texture edge antialiasing | |
KR100633029B1 (en) | Method of Analyzing and Modifying a Footprint | |
JP3940434B2 (en) | Image texture mapping using texel cache | |
WO1999063489A1 (en) | Method and system for antialiased procedural solid texturing | |
US7689057B2 (en) | Method of bandlimiting data for computer graphics | |
Jarosz et al. | Bilinear Accelerated Filter Approximation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2006506031 Country of ref document: JP |
|
REEP | Request for entry into the european phase |
Ref document number: 2004723632 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2004723632 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2004723632 Country of ref document: EP |