Method and system for generating light values for a set of...

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

06504538

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to computer graphics and, more particularly, to a method for generating light values for a set of vertices.
2. Description of the Related Art
One of the principal goals of computer graphics is the rendering of realistic images (e.g., two- or three-dimensional images). Rendering images of real or imaginary objects typically involves generating geometric models (e.g., polygonal surfaces) of the objects and applying lighting effects to them. In computer graphics, surfaces of an object are generally modeled by a set of vertices that define graphics primitives such as polygons, edges, and/or vertices. These vertices may be produced from a variety of sources such as an application, tesselated NURBS surfaces, spheres, cones, etc. The vertices may be connected by edges and a sequence of edges or vertices may define one or more polygons.
Among others, rendering of realistic 3D graphics requires accurate and efficient modeling of 3D surfaces based upon the position, orientation, and characteristics of the surfaces and the light sources illuminating them. In particular, the interaction between lights and surfaces must be accurately modeled for rendering. Conventional computer graphics systems have implemented various illumination techniques to generate light values at individual pixels using an illumination or lighting model. For example, conventional lighting models typically model one or more lighting effects such as ambient light, diffuse reflection, and specular reflection, which are well known in the art. The ambient light effect accounts for a lighting effect resulting from multiple reflections of light from the surfaces present in a scene. The diffuse reflection accounts for reflection of light from a surface, especially a dull, matte surface while the specular reflection accounts for reflection of light off a shiny surface.
FIG. 1
illustrates a schematic diagram of vectors N, L, and H typically used in conventional illumination models. Vector L is a light direction vector pointing from a point P on a surface
100
to a light source, such as a light bulb. Vector N is the outward surface normal vector at point P. View vector V is a vector pointing from point P to a viewer. Vector H is a half-angle vector bisecting the angle formed by the light vector L and the eye vector V. The angle between the vectors N and H is defined as angle &thgr;. The vectors L and H are referred to herein as light vectors. Since the half-angle vector H is essentially a sum of the vectors L and V, it is also known as sum vector S.
In diffuse reflection modeling, the reflected light from the surface point P falls off approximately uniformly as a function of an angle between the vectors N and L. The diffuse light fall-off in the diffuse reflection model is typically modeled by using a dot product term N·L. In specular reflection modeling, on the other hand, the light reflected from surface point P is modeled as falling off exponentially as seen from a direction of view vector V. The fall-off is generally modeled by a dot product term (N·H)
s
where s is a surface material's specular-reflection coefficient.
The ambient, diffuse, and specular models are well known and are described in greater detail in
Computer Graphics: Principles and Practice
by James D. Foley et al., Addison-Wesley (1996), ISBN 0-201-84840-6, which is incorporated herein by reference and constitutes a portion of the background against which the present invention was developed. Additionally, the OpenGL™ (versions 1.1 and 1.2) application programming interface (API) describes a particular lighting model that includes effects like spotlighting, diffuse light reflection, specular light reflection, and related parameters for implementing a model. The OpenGL™ (versions 1.1 and 1.2) graphics application programming interface is commercially available from SGI, also known as Silicon Graphics, Inc., the assignee of the present application, and is incorporated herein by reference.
Conventional methods typically evaluate light color values at the vertices of primitives by computing the diffuse and specular term dot products. For example, the OpenGL™ graphics application programming interface, version 1.1 determines a vertex color C by evaluating the lighting equation for each light source i as follows:
&AutoLeftMatch;
C
=


emission
material
+
ambient
light_model
*
ambient
material
+



i
=
0
n
-
1

(
1
k
c
+
k
l

d
+
k
q

d
2
)
i
*
(
spotlighteffect
)
i
*


[
ambient
light
*
ambient
material
+


(
max

{
L
·
N
,
0
}
)
*
diffuse
light
*
diffuse
material
+


(
max

{
H
·
N
,
0
}
)
shininess
*
specular
light
*
specular
material
]

i
Eq. (1)
In Equation (1), the term 1/[k
c
+k
l
d+k
q
d
2
] is also referred to as “attenuation factor,” where d is the distance between the position of a light source i and the vertex, k
c
represents constant attenuation, k
l
is linear attenuation, and k
q
represents quadratic attenuation. Those skilled in the art will recognize that Equation (1) may be evaluated for each light source i (e.g., local light source) illuminating a given vertex of a primitive.
It should be appreciated that Equation (1) may also be applied to a given pixel to compute a color value for the pixel. However, applying such equation to individual pixels in a primitive is typically prohibitively expensive in terms of cost and time. Hence, most conventional methods implement well known shading methods such as Gouraud shading and Phong illumination techniques to generate the color values for the individual pixels within the primitive. However, other illumination techniques are described in U.S. patent application Ser. No. 08/839,035, filed Apr. 23, 1997, entitled “A Method and System for Real Time Illumination of Computer Generated Images,” by Vimal Parikh et al. In addition, U.S. Pat. No. 5,659,671 entitled “Method and Apparatus for Shading Graphical Images in a Data Processing System,” by Tannenbaum et al. also describes Phong lighting and shading methods. The disclosures of these references are incorporated herein by reference.
In implementing a light equation to evaluate light color values, conventional techniques have typically computed the light vectors L and H for each vertex in a polygon mesh describing a scene and for each light illuminating the vertex. Unfortunately, implementing conventional shading methods generally requires considerable computing resources to evaluate due to the complexity in evaluating the vectors in dot products N·L and (N·H) of the diffuse and specular terms. For example, conventional methods typically normalize (i.e., unitize) vectors N, L, and H for computing the dot products in a lighting equation such as Equation (1) described above. This is because the unit vectors are direction vectors having a magnitude of one. The dot product of two unit vectors allows determination of similarity in directions of the vectors. By way of example, the dot product of two normal vectors is equal to 1 when the vectors have the same direction and 0 when the vectors are perpendicular to each other.
However, the vector normalization is a costly process that requires numerous multiplication, addition, division, and inverse square root operations. For example, a unitized vector of L vector is evaluated by computing L/|L|=L/[L·L]
1/2
=L/[Lx
2
+Ly
2
+Lz
2
]
1/2
, where Lx, Ly, and Lz are x, y, z components of the vector L, respectively. Using the normalized vectors, the diffuse term is computed by evaluating the dot product N·L. Likewise, the specular term is also determined using the normalized vectors by evaluating the dot product N·H raised to the shininess exponent, s. The diffuse and specular terms are then used in the above equation along with the other well-known variables to produce an intensity (e.g., light color) at a given pixel. Given that a polygon mesh may inc

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 and system for generating light values for a set of... 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 and system for generating light values for a set of..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for generating light values for a set of... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3041993

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