Method, system and computer program product for multi-pass...

Computer graphics processing and selective visual display system – Computer graphics processing – Three-dimension

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06384824

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to shading computer-generated images.
2. Related Art
A. Light Equation Calculations in Shading
In computer graphics, shading is an important component that contributes to the realism of a geometric scene to be rendered. The calculations associated with shading can be split into two parts: finding surface reflectance properties at each point being shaded, and computing the incident illumination at the point being shaded. Surface reflectance properties are used by computer graphics application programming interfaces (graphics APIs) to define how a surface dissipates light. For example, one graphics API, OpenGL® by Silicon Graphics, Inc., supports five surface reflectance properties: diffuse and ambient properties, specular and shininess properties, and an emissive property. See, e.g. R. Fosner,
OpenGL® Programming for Windows
95
and Windows NT
(Addison-Wesley Pub.: Reading, Mass. 1997), Chapter 9, “Colors, Materials, and Lights,” pp. 181-201. Computing the incident illumination takes into account the angle of an illumination source relative to an object surface. Lighting, half angle, and/or viewing vectors (L, H, V) are used to compute incident illumination.
These shading calculations are combined in a lighting equation to determine a color value for a respective pixel. The lighting equation can vary depending upon the particular illumination model or graphics effect that is desired. One example lighting equation used by the OpenGL® API determines a color value C
s
as follows:
C
S
=
E
m
+
A
m
*
A
s
+
(

i
=
0
k
-
1

A
tt
*
SpotL

(
A
m
*
A
l
+
D
m
*
D
l
*
(
L
·
N
)
+
S
m
*
S
l
*
(
H
·
N
)
n
)
)
+
S
m
*
Env
wherein, E
m
represents emissivity, A
m
is a material ambient coefficient, A
s
is a scene ambient coefficient, A
l
is an ambient light color, A
tt
is an attenuation factor, SpotL is a spotlight attenuation factor, D
m
is a diffuse material coefficient, D
l
is diffuse light color, S
m
is a specular material coefficient, S
l
is specular light color, n is the specular power (e.g., shininess), and Env is an environment mapping coefficient. The summation sign sums overall lights k, and like other terms in the lighting equation can be omitted depending upon a particular illumination model. L and H are the lighting and half angle vectors, respectively. See, Beider et al.,
OpenGL® Programming Guide
, Silicon Graphics, Inc. (Addison-Wesley Publishing Co., 1993), pp. 182-194 (incorporated herein by reference).
B. Phong Shading
Shading quality is increased dramatically with Phong shading, which interpolates and normalizes vertex normal vectors at each pixel. See, Phong, B.-T., “Illumination For Computer Generated Pictures”,
Communications of the ACM
18 6:311-317 (June 1975). In Phong shaders, light and halfangle vectors are computed directly in world space or interpolated, either of which requires their normalization relative to a local viewer and light.
FIG. 1A
shows a lighting vector L, half-angle vector H, normal vector N, and viewing vector V relative to an example object surface, such as, a sphere. These vectors are passed to a Phong shader.
FIG. 1B
shows rasterization hardware
100
for one example implementation of Phong shading. This hardware includes three sets of interpolator and normalizer units
110
,
120
,
130
coupled in parallel to an illumination module
150
. The sets of interpolator and normalizer units interpolate and normalize respective normal, lighting, and half-angle vectors (N, L, and H). Interpolated and normalized normal, lighting, and half-angle vectors are then passed to illumination module
150
to be used in further lighting and shading calculations.
Phong shading adds cost to rasterization hardware. However, higher quality lighting is almost universally desired in three-dimensional graphics applications, and advancing semiconductor technology is making Phong shading hardware more practical to many users and vendors.
C. Bump Mapping
Bump mapping is a technique used in advanced shading applications for simulating the effect of light reflecting from small perturbations across a surface. See, Blinn, J. F., “Simulation of Wrinkled Surfaces”,
Computer Graphics
(
SIGGRAPH '
78
Proceedings
) vol. 12, (Aug. 1978), pp. 286-292. A single component texture map, f(u,v), is interpreted as a height field that perturbs the surface along its normal vector, N=(P
u
×P
v
)/|(P
u
×P
v
)|, at each point. Rather than actually changing the surface geometry, however, only the normal vector is modified.
FIG. 2
shows an example of a normal vector N, a perturbation &Dgr;N, and the resultant vector N′.
From the partial derivatives of the surface position in the u and v parametric directions (P
u
and P
v
), and the partial derivatives of the image height field in u and v (f
u
and f
v
), a perturbed normal vector N′ is given by:
 N′=((P
u
×P
v
)+D)/|(P
u
×P
v
)+D|  (1)
where, a displacement vector D becomes:
D=−f
u
(P
v
×N)−f
v
(N×P
u
)  (2)
In these equations, P
u
and P
v
are not normalized. This causes the bump heights to be a function of the surface scale because P
u
×P
v
changes at a different rate than D. If the surface scale is doubled, the bump heights are halved. This dependence on the surface often is an undesirable feature and a constant bump height is forced instead. See, Blinn, J. F., “Simulation of Wrinkled Surfaces”,
Computer Graphics
(
SIGGRAPH '
78
Proceedings
), vol. 12, (Aug. 1978), pp. 286-292.
A full implementation of these equations in a rasterizer can be impractical, so the computation is divided among a preprocessing step, per-vertex, and per-pixel calculations. An expensive method to implement bump mapping in hardware, and one that is planned for a high-end graphics workstation, is to compute P
u
×P
v
, P
v
×N, and N×P
u
at polygon vertices and interpolate them to polygon interiors. See, Cosman, M. A. & Grange, R. L., “CIG Scene Realism: The World Tomorrow”,
Proceedings of I/ITSEC
1996 on CD-ROM, (1996), p. 628. The perturbed normal vector is computed and normalized as in Equation 1, with f
u
and f
v
read from a texture map. The resulting normal vector is used in an illumination model. One approximation to this expensive implementation has been proposed, where P
v
×N and N×P
u
are held constant across a polygon. See, Ernst, I., et al., “Hardware Supported Bump Mapping: A Step Towards Higher Quality Real-Time Rendering”, 10
th Eurographics Workshop on Graphics Hardware
(1995), pp. 63-70. This approximation is known to have artifacts.
A further technique provides high-quality, accelerated shading by bump mapping in a coordinate space, such as, atangent space or object space. See, U.S. Pat. No. 5,880,736, issued to Peercy et al., on Mar. 9, 1999 (incorporated in its entirety herein by reference). Among other things, this technique implements bump mapping by leveraging Phong shading hardware at full speed, eliminating either a large investment in special purpose hardware or a slowdown during bump mapping.
In general, as described below, the present invention is not limited to a particular bump-mapping algorithm and can be used in any graphics system that supports bump-mapping.
D. Environment Mapping
An environment map is a 360 degree image of an environment as viewed from a single reference point. Environment maps are used to model a scene at an infinite distance from a reference point. They are an arbitrary function of direction alone, and ignore parallax. Examples of environment maps include spheric or circular environment maps and cubic environment maps.
A reflection vector R is used to index an environment map.
FIG. 3
shows an object surface with respective normal, lighting and reflection vectors N, V, R. One common calculation for R is:
R=2*{circumflex over (N)}*({circumflex over (N)}•{ci

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method, system and computer program product for multi-pass... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method, system and computer program product for multi-pass..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method, system and computer program product for multi-pass... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2834985

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.