Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
COMPUTER GRAPHICS METHODS AND SYSTEMS FOR GENERATING IMAGES WITH ROUNDED CORNERS
Document Type and Number:
WIPO Patent Application WO/2008/024869
Kind Code:
A3
Abstract:
Methods, systems, apparatus, and computer program/software code products, operable in a computer graphics system designed to render images and Io apply shading to images, enable the following: during rendering of an image, modifying the shading normal in the region of a corner of an object in the image, such that when shading is applied to the image, the shaded image is capable of providing to a human viewer, when view ing the comer in the image, the appearance or visual illusion of a rounded comer, wherein the modifying comprises: calculating an amount of modification to be applied to an original shading normal in the region of the comer to simulate the appearance of a given fillet radius R, the calculating comprising: interrogating surfaces within a distance R of the corner for their shading normal, and calculating a new normal that is a weighted blend between the shading normal of the original surface and the shading normal of the interrogated neighboring surface, thereby, by the shading effect, to simulate at render-time a rounding by varying the shading normal, creating a variation of the surface normal consistent with the appearance the object would have had. had it actuallv been rounded.

Inventors:
ANDERSSON HAKAN (SE)
Application Number:
PCT/US2007/076563
Publication Date:
December 11, 2008
Filing Date:
August 22, 2007
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MENTAL IMAGES INC (US)
ANDERSSON HAKAN (SE)
International Classes:
G06T15/50
Foreign References:
US6163319A2000-12-19
Other References:
LAINE S. ET AL.: "Soft shadow volumes for ray tracing", ACM, vol. 24, no. 3, July 2005 (2005-07-01), pages 1156 - 1165, XP002502988
MANEESH ET AL.: "Efficient image-based methods for rendering soft shadows", ACM, July 2000 (2000-07-01), pages 375 - 384, XP001003577
Attorney, Agent or Firm:
JACOBS, David (1050 Winter StreetSuite 1000, #108, Waltham MA, US)
Download PDF:
Claims:

The following is claimed:

1 In a computer graphics s> stem operable to render images and to apph shading to images, the improv ement comprising during rendering of an image, modify ing the shading normal m the region of a comer of an object in {he image, such thai w hen shading is applied Io the image, {he shaded image ss capable of pro\ idmg to a human \ iev\ or, w hen \ sew ing the coi ner in the image, the appearance or \isual illusion of a rounded corner, wherein the modif\ ing comprises calculating an amount of modification to be applied to an ouginαl shading norma] m the region of the comer to simulate the appearance of a gn en fillet radius R. the calculating comprising interrogating surfaces within a dist&ice R of the comei for their shading normal, and calculating a new normal thai is a weighted blend between lhe shading noimal of the original surface and the shading normal of the interrogated neighboring surface, therebx , b> the shading effect, to simulate at lendei-lime a rounding b\ \ an ing the shading noimai. creating a \ an an on of the surface normal consistent w ith the appearance the obiecl would have had. had it aetualh been rounded

2 In the computer graphics s> stem of clam 1 , the fmther impπn ement wherein the w eighting begins at the distance R. where it complete.) fa\ ors the original shading normal, and continues to a point where the distance to the neighboring face is effectn eh zero, and in which a weighting function JS used to determine a blend ralio of lhc tw o normals as a function of tins distance

3 In the computer giaphicp s\ stem of claim 2, the fimhcr impro\ ement wherein different weight functions \ ield different apparent profiles of the edge of the comer

4 In the computer giaphscs s\ stem of claim 2. the further impro\ ement wherein the w eighted modification of the shading normal is performed m a similar fashion on both adjacent faces of a coiner as ιhc\ are rendered

so that the edge region of both surfaces have an apparent shading in which each visually fades toward the other,

5. In the computer graphics system of claim 4. the further improvement wherein: the weighting function is selected such that at the actual geometric edge of the corner, where the distance to the neighbor is effectively zero, the weighting function yields the same result for both faces, with a substantially 50/50 blend of the tw o surface normals, so that substantially no discontinuity can be visually perceived in the shading of the edge, and it can be perceived as smooth by a human viewer, thereby enabling the illusion of a round comer,

6. In a computer graphics system operable to render images using an image rendering process, and to apply shading to rendered images using a shading model, and wherein, as a surface point P is being shaded, it is assumed to have one shading normal N« and one geometric normal N g , the improvement comprising. modifying the shading normal in the region of a corner of an object in the image such that the region of the comer of the object in the image will, when shaded by using a shading model, provide to a human viewer the visual appearaice of a rounded edge, the modifying comprising: interrogating the nearbv region of the comer for adjacent surfaces within a radius of R of the corner, wherein R is the apparent fillet radius for the comer.

7. In the computer graphics system of claim 6. the further improv ement wherein: the computer graphics system is operable to render images by applying a shading mode! Io geometric representations constructed from a scene description containing geometric primitives, and the interrogating comprises querying data structures associated with the scene for adjacency information usable to find adjacent surfaces within a radius R of the comer.

8. ϊn the computer graphics system of claim ?, the further improvement wherein the interrogating comprises executing a ray-casting process, the ray -casting process comprising: finding a tangent plane defined by two vectors, u and v, thai are tangential to the geometric norma! of a currently shaded primitive of the image, wherein vector finding is accomplished by selecting an arbitrary vector and projecting it into the plane of the geometric norma! to find the is vector, and using a cross product to find the vector v.

9. In the computer graphics system of claim 8, the further improvement wherein: the ray casting process further comprises displacing the source point of the ray casting process a selected small distance.

10. In the computer graphics sy stem of claim 9, the further improvement wherein if the point is displaced along the negative direction of the geometric normal vector, convex cornei^ are found; and if the point .is displaced along the positive direction, concave corners are found.

1 1. In the computer graphics system of ciaim ( λ the further improvement wherein the ray casting process further composes: firing a set of n substantially evenly spaced rays within, the pJane defined by the u and v vectors, and recording any surfaces hit.

12. In the computer graphics system of claim 1 L the further improvement wherein the process Further comprises modifying the normal, wherein for each primitive hit by the cast rays, a shading normal H 11 of the primitive is calculated at the hit point, as well as the distance to the hit point, D; if D > R, the hit is disregarded, but if D < R, a weight factor is calculated in accordance with: f -[1-(DZR)J-[I-(N 1 -H 8 )T ; and then, the normal JI 1 , is weighted by factor f, and the result is added to the current shadinε normal. N x .

13. ϊn the computer graphics sy stem of claim 12, the further improvement wherein: when all n rays have been sent, the shading normal N 8 is re-normalized to have unit length, and {hen, {he new shading normal can be used by a shading model for shading the

14. In the computer graphics system of claim 13, the further improvement wherein the new shading norma! can be further modified by bump mapping before being used by a shading model for shading the image.

15. In the computer graphics system of claim 7, the further improvement wherein the process further comprises modifying the normal, wherein for each primitive found using adjacency information, a shading norma! H n of the found primitive is calculated at the closest perpendicular point D for the found primitive, and a distance to point D is also calculated; if D > R. the point is disregarded, but if O < R. a weight factor is calculated in accordance with: f =-[i -(DZR)J-[I-(N 5 -H 8 )T ; and then, the normal H n is weighted by factor f. and the result is added to the current shading normal, N s .

16. In the computer graphics system of claim 15. the further improvement comprising: re-normalizing the shading normal N k to have unit length to yield a new shading normal and utilizing the new shading normal in a shading model for shading the image.

17. In the computer graphics system of claim 16, the further improvement wherein the new shading normal can be further modified by bump mapping before being used by a shading model for shading the image.

) 8. A computer program product operable in a computer m a computer graphics system operable to render images and to apply shading to images, the

compute! program product compusing compute! -readable ptogtam code stored on a compute* -jeadable medium, the computes -teadable piogsam code composing computer program code executable b\ the computer to enable the compute* , during rendering of an image, to modtfv the shading norma! in the tegion of a cornet of an object in the image, such thai when shading ss applied Io the image b\ the computes gjaphics Sλ stein, the shaded image is capable of punsding to a human \ sew er, when \ tew nig the corner m the image, the appearance or \ isual illusi on of a rounded comer, wherein the compute program cυde further comprises computer pjtogram code executable h\ the computer io enable the computer to calculate an amount of modification to be applied to an original shading normal m the region of the comer to simulate the appearance of a gn en fillet radium R, the calculating comprising interrogating surfaces within a distance R of the cornci for their shading normal, and calculating a new normal that is a weighted blend between the shading normal of the original surface aid the shading normal of the interrogated neighboring surface. theiebv . b\ the shading effect, to simulate at lendei-ume a founding b> \ an ing the shading noimal, aeatmg a \ amnion of the surface normal consistent with the appearance the object would h&\ e had. had it actual!) been rounded

10 A s>\ stem, operable m a coiπpulet in a computer gtaphics s\ stem operable to render images and to apph shading to images, the s\ stem comprising means to enable the computer, during tendering of an image, to modil> the shading normal in the region of a comer of an object in the image, such that w hen shading is applied to the image b> the computer graphics ss stent the shaded image is capable of pro\ sding to a human \ lewer. when \ sewing the corner HI the image, the appeatance or \ isual tiluston of a rounded comer, w herein the means to enable the computer to modify tlie shadmi. nonnal furthei comprises means Io enable Uw computer to calculate an amount of modification to he applied to ai original shading normal in the region of the comer to simulate the appearance of a guen fillet tadius R. the calculating comprising interrogating surfaces w tthin a distance R of the corner for their shading normal, and calculating a new normal thai is a w eighted blend between the shading normal of the oiiginal smface and the shading normal of the intettogated neighboung surface.

thereby, fay the shading effect, to simulate at render-time a rounding by varying ihe shading normal, creating a variation of the surface norma! consistent with the appearance the object would have had. had it actually been rounded.

20. In a computer graphics system operable to render images and to apply shading to images, a method comprising ' during rendering of an image, modifying the shading normal in the region of a comer of an object in the image, such that when shading is applied to the image, the shaded image is capable of providing to a human viewer, when viewing the corner in the image, the appearance or visual illusion of a rounded comer, wherein the modifying comprises: calculating an amount of modification to be applied to an original shading normal in the region of the corner Io simulate the appearance of a given fillet radius R, the calculating comprising: interrogating surfaces within a distance R of the corner for their shading normal, and calculating a new normal that is a weighted blend between the shading normal of the original surface and the shading normal of the interrogated neighboring surface, thereby, by the shading effect, to simulate at render-time a rounding fay varying the shading normal, creating a variation of " the surface norma! consistent with the appearance the object would have had, had it actually been rounded.

Description:

COMPUTER GRAPHICS METHODS AND SYSTEMS FOR GENERATING IMAGES WITH ROUNDED CORNERS

Crossiftefere^

This application for patent (Attorney Docket MHNT-202) claims the priority benefit of United States Provisional Patent Application Serial No. 60/823.312. filed August 23. 2006 {Attorney Docket M EN 1 ' -202-PR), incorporated herein by reference as if set forth in its entirety .

Field of the invention

The present invention relates to the field of computer graphics, and more particularly, to improved methods and systems that enable the creation, within a computer-based system for synthetic image rendering, of the visual appearance of filleted edges or rounded corners on polygonal objects.

Background of the Invention

The use of computer graphics systems and software for computer graphics systems, particularly such systems and software adapted for the generation and rendering of three-dimensionaJ images, continues to grow at an explosive rate, as demand from the . motion picture industry and others increases.

Users of software for the realistic rendering of three-dimensional images demand the highest possible realism in the resulting images. Yet the modeling tools at their disposal tend to create model objects with an unrealistic mathematical precision, where every edge is completely sharp and angular. Edges in the "real world' * are typically rounded or worn, if ever so slightly.

One solution to this problem has been to explicitly model these roundings as chamfers or fillets in the actual 3D model. Although this approach results in more natural looking edges, it also causes higher complexity, i.e., an increase in polygon count, and a much more complex model.

It would be desirable to provide methods and systems capable of rendering more realistic three-dimensional images, with the appearance of rounded corners or filleted edges, without significant increases in process complexity or storage requirements.

I

Summary .of the Invention

One aspect of the invention relates to methods, systems, devices, apparatus, and/or computer program/software code products operable in a computer graphics system operable to render images and to apply shading to images, and operable to enable the computer graphics system to provide images in which objects have the appearance of rounded corners. In one aspect of the invention, the methods, systems, devices, apparatus, and/or computer program/software code products relate to the following: during rendering of an image, modifying the shading normal in the region of a corner of an object in the image, such that when shading is applied to the image. the shaded image is capable of providing to a human viewer, when viewing the corner in the image, the appearance or visual illusion of a rounded comer, wherein the modifying comprises:

(1 ) calculating an amount of modification to be applied to an original shading normal in the region of the corner to simulate the appearance of a given fillet radius R, the calculating comprising:

(2) interrogating surfaces vvithin a distance R of the corner for their shading normal and calculating a new- normal that is a weighted blend between the shading normal of the original surface and the shading normal of the interrogated neighboring surface.

(3) thereby, by the shading effect, to simulate at render-time a rounding by varying the shading nomiai. creating a variation of the surface normal consistent with the appearance the object would have had, had it actually been rounded.

In a further aspects of the invention, the weighting begins at the distance R. where it completely favors the original shading normal, and continues to a point where the distance to the neighboring face is effectively zero, and in which a weighting function is used to determine a blend ratio of the two normals as a function of this distance. Different weighting functions yield different apparent profiles of the edge of the comer. In one aspect of the invention, the weighted modification of the shading norma! is performed in a similar fashion on both adjacent faces of a comer as they are rendered, so that the edge region of both surfaces have an apparent shading in which each visualh fades toward the other.

The weighting function can be selected such that at the actual geometric edge of ihe corner, where the distance to the neighbor is effectively zero, the weighting function yields the same result for both faces, with a substantially 50/50 blend of Ihe two surface normals, so that substantially no discontinuity cart be visually perceived in the shading of Ihe edge, and it can be perceived as smooth by a human viewer, thereby enabling the illusion of a round corner.

In another aspect of the invention, iri a computer graphics system operable to render images using an image rendering process, and to apply shading to rendered images using a shading model and wherein, as a surface point P is being shaded, it is assumed to have one shading normal N, and one geometric normal N ϊ; the methods, systems, devices, apparatus and/or computer program code/software products aspects of the inv ention provide for; modifying the shading normal in the region of a comer of an object in the image such that Ihe region of the comer of the object in the image will, when shaded by using a shading model, provide to a human viewer the v isual appearance of a rounded edge, ihe modifying comprising: interrogating the nearby- region of the corner for adjacent surfaces within a radius of R of the corner, wherein R is the apparent fillet radius for the corner. in a further aspect of the invention, where the computer graphics system is operable to render images by applying a shading model to geometric representations constructed from a scene description containing geometric primitives, the interrogating comprises querying data structures associated with the scene for adjacency information usable to find adjacent surfaces within a radius R of the comer,

In another aspect of the invention, wherein the interrogating comprises executing a ray-casting process, the ray-easting process can comprise: finding a tangent plane defined by two vectors, u and v, that are tangential to the geometric normal of a currently shaded primitive of the image, wherein vector finding is accomplished by selecting an arbitrary vector and projecting it into the plane of the geometric normal to find Ae u vector, and using a cross product to find the vector v. The ray casting can further comprise displacing the source point of the ray casting process a selected small distance; wherein if ihe point is displaced along the negative direction of the geometric normal vector, convex comers are found; and if the point is displaced along the positive direction, concave corners are found. The ray casting can further comprise firing a set of n substantially evenly spaced ray s within the plane defined by the u and v vectors, and recording any surfaces hit.

In a fuilhfit aspect of the nn ention. the process further composes moditS mg the normal. wheiein for each pnmitn e hit b> the cast ra\ X a shading norma! H 1 , of the pπmstn e is calculated at the ha point, &> well as the distance to the ha poml. D. if D v R, the ha is disregarded, but if D -- R, a weight factor is calculated in accGi dance with f - [i-i DfR)] [I ~<»H f f ' , and then, the normal H 11 is w eighted b> factor f. and the result is added to the current shading normal. \ s W hen all n ra> s ha\e been sent, tiie shading nomiai \ is ie-normali/ed to ha\e unit length, and then, the new shading normal can be used b\ a shading model for shading the image

The new shading norma] can be further modified bx bump mapping before being used b\ a shading model fυr shading the image

Wheie ia> casting is not used, and instead adjaccncx information i^ a\ ail able, a slight \ aπation can be emρio\ ed, wherein the process further comprises modsf> mg {he normal, wheiem for each pnmifn e found using the adiacenc> information, a shading noimal H n of the found pnπutπ e is ealctiiated at the closest perpendicular poun D for the found pnmitπ c. and a distance to point D is also calculated, if D "- R, the point is disregarded, but tf D <- R, a weight factor is calculated in accordance with

and then, the normal H n ts w eighted b\ factor f. and the result i^ added to the current shading normal, N v Again, re-normal i/sng and bump mapping can be irttls/ed

Bdef Description of the Prawings

FIG I show .s an image rendered according Io the prior art. containing umiaturalh sharp edges

FIG 2 shows an image, rendered in accordance with aspects of the present invention, in which a rounded \ i^uaJ appearance has been cjeaied for the sharp edge^ in the MG 1 image

FIG 3λ is a diagiam of a shading technique according to the prior art. and FIG 3B is c»t image created using the technique iikbtiated m FfG JA

FIG τθ is a diagram of a technique for ioundoig edges according Io the paor art. and MG 3D is an image created using the technique illustrated in FIG 3C

FϊG. 3E is a diagram of a technique for creating a visual appearance of a rounded edge, according to an aspect of the present invention, and FlG. 3F is an image created using the technique illustrated in FiG. 3E

FIGS. 4 and 5 are diagrams of a portion of an object, illustrating the use of a ray casting technique to find hit points on neighboring surfaces.

FlG. 6 is a diagram of a portion of an object, illustrating a further example of an aspect of the present invention.

FIGS. 7-11 show a series of flowcharts illustrating general techniques according to the presently described aspects of the invention. FIG, 12 shows a schematic diagram of a conventional persona! computer, or like computing apparatus, in which aspects of the present invention can be deployed.

FfGS, 13 and 14 show schematic diagrams illustrating a conventional network - based computing system and network devices, in which aspects of the present invention can be deployed.

Detailed Desc πpiioπ of the In yen tioii

The systems and techniques described herein provide a shading effect consistent with a rounded edge. FϊG. 1 shows an example of an image 20 containing overly sharp edges 22. FlG. 2 shows a version of the image 20'. which has been modified in accordance with the described systems and techniques to create the visual impression of rounded edges 22'. As described in further detail below , in FϊG. 2, the underlying geometry' of the modeled object has not been modified.

Thus, the present invention provides systems and techniques for providing rounded corners and edges without substantially greater complexity. The described systems and techniques shift the generation of these edges into the realm of rendering, reducing the modeler ' s burden, and providing a novel render-time approach for calculating the proper shading for providing the appearance of a rounded comer or filleted edge.

The present description of lhe invention is organized into the following sections:

1 Overview

2. Example of Render- rime Rounded Comers

2.1 Finding the Tangent Plane

2.2 Displacing the Source Point

2 3 Castmg the Ra> s

24 Modi is ing the Normal

2 5 Subsequent Processing

2 6 Further E\ample(s)

2 7 General Technique^

1 Di 'togi ' tal Processing Fm itonnionl m Which ϊm enturn

Can Be Implemented

I. Overview Shading in computer graphics is typically determined b> the direction of the shading normal \ ector ibi each point on each suiface to be shaded relatn e Io the direction(s) of the incoming ra> (s) of light The presenth described s> stems and techniques are based on modiix ing an object ' s surface shading normals to be consistent with the appearance the modeled object w ould ha\ e, if its geometn had aefualh been rounded

FlG 3λ is a diagram illustrating the shading of a portion of an object 100 The shaded portion of the object 100 includes a first surface 102 and a second, neighboring surface 104 ϊhe m o surfaces meet at an edge 106 For each point of the first surface 102 to be shaded, lheie is calculated a shading normal H ) H, w hich is not necessaπh the same as the geυπietnc normal Similar!} . foi each point of the neighboring surface 104 to be shaded, there is also calculated a shading normal 1 10 When the image is rendered, a shatter uses the shading noimals to determine the shading of surfaces 102 and 104 FIG 3B shov\ s the rendered image of object 100 it vuil be seen in FlG 3B that the rendered object 100 has unnatural K sharp edges 106 and corners 107 FlG 3C is a diagram illustrating a traditional technique for addressing the issue of unnaturalK sharp edges 106 and corners 107 m the rendered image of object 100 fn FlG 30. the geometrical model of the object 200 has been modified to include a rounded transition 212 betw een the first and second surfaces 202 and 204 In the present example, the rounded transition 212 has a circular profile corresponding to cncle 214 with radms R Using the modified model, when the image is rendered, a first set of shading normals 208 is calculated for the first surface 202. a second set of shading normals 210 is calculated for the second surface 204, and a third set of shading normals 2 } 6 is calculated for the rounded transition portion 212 FlG 3D show s the rendered image of modified object 200 vuth iounded edges 206 and corners 207

While the approach illustrated m FlG. 3C results in a more realistic image, il increases ihe complexity of the model, and the burden on the modeler.

FIG. 3E is a diagram illustrating a technique according to an aspect of the present invention. In this approach, the geometry of surfaces 302 and 304 and edge 306 of object 300 is not modified. Rather, a rounded appearance is simulated during rendering by modifying the surface shading normals 308 and 310 within distance R of edge 306. The modified shading normals 308 and 3 i 0 generally correspond to ihe shading normals 216 of the "truly " rounded case shown in FIGS, 3C-3D, Even though ihe underlying geometry of surfaces 302 and 304 and edge 306 is unmodified, the modification of the shading normals 308' and 310' results in a more natural, rounded appearance, as shown in rendered image of the object 300 shown in FIG. 3F. Thus, the described technique allows the creation of rounded edges 306 and corners 307 without increasing the complexity of the model, and without increasing the burden on the modeler. To calculate the amount of modification applied to the original shading normal to simulate the appearance of a given fillet with a specified radius R. neighboring surfaces within the distance R are interrogated for their shading normal. A new normal is generated that is a weighted biεnd between the shading norma! of the original surface and the shading normal of the interrogated neighboring surface. The weighting begins at the distance R to completely favor the original shading normal all the way to the point where the distance to the neighboring face is effectively zero. A weighting function is used to decide the blend ratio of the two normals as a function of this distance. Different weight functions yield different apparent profiles of the edge. This weighted skewing of the shading normal is performed in similar Fashion on both faces as they are rendered, causing the edge region of both surfaces to have a shading that fades towards the other.

When the weight function is chosen such that at the actual geometric edge, i.e., where the distance to the neighbor is effectively zero, it yields the same result for both faces, for example, a 50% blend of the two surface normals, no discontinuity will be seen in the shading of the edge, and it will be perceived as "smooth,' * permitting a perfect visual impression of a rounded comer.

2. Example of Render-Time Rounded Corners

We next describe an example of render-time comer rounding in accordance with the present invention. The example described below does nol utilize any special pre-generaled information. However, such extensions may be added to provide a variant that is potentially slightly more optimized, at the cost of the additional storage space for neighboring face information. In particular, while the example described below utilizes a ray casting technique for interrogation, ray casting is not necessary if data structures containing adjacency information, or from which adjacency information can be derived, are available to the processor/method. The term "adjacency information" is used herein to refer to information stored in association with an image. such as information typically stored in association with respective polygons of an image, that can be used to determine polygons adjacent to a given polygon. In a number of conventional computer graphics systems, every polygon in an image contains information as to which other polygons are "near" or adjacent to that poly gon. Where such information is not available, ray casting is one technique that can be used to interrogate and determine adjacent polygons or surfaces.

Those skilled in the art will understand and appreciate that the techniques and/or examples described herein may be implemented, or modified or expanded, to utilize adjacency information, in order to provide a technique that is potentially slightly more optimized, at the cost of the additional storage space necessary to store neighboring face information. When such information is av ailable, the nearest in-plane perpendicular point on the neighboring primitive that intersects the plane of the original primitive (see example below) can be used directly, rather than the point hit by the ray casting process. In all significant ways, however, the rest of the process is substantially the same once the point on the neighboring surface is found, whichever process is used to find it.

Turning to the following illustrated example: The following example utilizes input parameter R, for the radius of the apparent rounding of the edge. No further input either from user or the geometric pipeline is required. It should be noted, however, that additional parameters may be provided for, if desired.

As each surface point P is being shaded, it is assumed to have one shading normal N, and one geometric normal N j ,. The two normals N s and N j , may or may not he identical, depending on the characteristics of the underlying surface.

The goal is to modify lhe shading normal N s such that when the object is subsequently shaded using a suitable shading model such as the well-known Phong shading model a v isual appearance is created of a rounded edge.

Phong shading is an interpolation method in computer graphics, using interpolation of surface normals in rasterizing polygons, in an effort to obtain enhanced resolution of specular reflections such as those generated by the Phong reflection model The term Phong shading ma> also refer to the reflection model, or to the combination of the reflection model and the interpolation method Phong shading and other shading techniques axe described in Akenine-MolSer & Haines, "Real-Time Rendering," 2d ed,, A. K. Peters (2002). which is incorporated herein by reference in ils entirety.

As mentioned above and discussed in further detail below, if no adjacency information is available, the nearby region is probed for adjacent surfaces within a radius of R. According to the present aspect of the invention, this probing of the nearby region is performed using a ray casting step or process,

2λ Finding the Tangent Plane

FIO. 4 shows a diagram of a portion of an object 400 having a first surface 402 and a second, neighboring surface 404 that meet at an edge 406. A first shading normal 408 is shown for point P on first surface 402, and a representative second shading normal 410 is shown for second surface 404. Referring now to FIO. 4, the ray casting- begins by finding two vectors, u and v, which are tangential to the geometric normal of the currently shaded primitive. This may be achieved, for example, by picking an arbitrary vector and projecting it into the plane of the geometric normal, watching out for the degenerate case where the arbitrary vector is too close in orientation to the geometric normal KJ find she u vector and using a cross product to find the vector v. as shown in FJO. 4.

2,2 Displacing the .Source Point

P, the point being shaded, is by definition in the plane of the currently shaded primitive. It is desirable to avoid costly and confusing self-intersections. For this reason, the start point of the ray casting process is displaced a slight distance δ, as shown in FIG. 5, not drawn to scale. In present example, the start point is displaced R/iOOO along the direction of the geometric surface normal, expressed as the following Equation (1):

' R ' * V l 000 ; J

Jf the point .is displaced along the negative direction of the geometric normal vector, convex corners are found. If the point is displaced along the positive direction, concave corners are found.

2,3 Casting the Rays

The next step is to fire a set of n evenly spaced rays 416 within the plane defined by the u and v vectors and record any surfaces hit. Experience has shown that n ::: 6 yields acceptable results. However, the number of rays may be vaπed, as desired.

2.4 Modifying the Normal

For each primitive hit by these cast rays, the shading normal H 1 , of the hit pomt is calculated, as well as the distance to the hit point D, As mentioned abov e, the shading normal JI 1 , is .not .necessarily the same as the geometric normal of the hit point

If D > R j the hit is rejected, but if D < R, a weight factor f is calculated, using the fol lowing Equati on (2 ):

f - [l~(D/R)}[l -(N s « β )] 2 Eq. (2)

The hit normal H n is weighted by this factor f. The weighted hit norma! f H 1 , is then added to the current shading normal N, to generate a modified shading norma) N, 1 , expressed as the following Equation (3):

NV - N, + f H n Eq. O)

For each point to be shaded, the above-described technique is repeated iterative!}- for all of the cast rays. As mentioned above, satisfactory results have been obtained using six equally spaced rays emanating from the source point. The respective weighted contributions of the shading normals of each hit point are added to the original shading normal N s . as expressed by the following Equation (4);

N 1 / = N, + fr H n , + fr H n2 + IVH n ,; + ... f n - H 1111 Eq. (4)

The use of six equally spaced rays has worked reasonably well in practice, especially in ihe case of a "cube comer."

2.5 Subsequent Processing When all rays are sent, {he modified shading normal N 5 * must be renomialized to have unit length, as express in the following Equation (5)'

N s ' - 1 N 5 1 ! Eq. {5}

After renormalization. trie modified shading normal is fed into a conventional shading model, such as the models of Phong. Ward, or the tike.

According to a further aspect of the invention, the new shading norniaJ may he further modified by traditional hump mapping before being fed into the conventional shading model. Bump mapping is described in J. F. Blirm, "Simulation of Wrinkled Surfaces". Computer Graphics. Vol. 12 (3). pp. 286-292, SIGGRAPH- ACM (August 1978), incorporated herein by reference.

2.6 Further Example{s)

A further example of ihe above-described techniques is illustrated m FlG. G, which is a diagram of a portion of a modeled object 500 including a first original surface 502 and a second, neighboring surface 504 that meet at an edge 506, for which it is desired to create a rounded appearance.

A system user provides as an input a desired radius R for the rounded edge. Conceptually speaking, the inputted radius R is the radius of a circle 514 that is tangent Io both ihe original surface 502 and the neighboring surface 504 at respective points 516 and 5 S 8. The descri bed techniques create the visual i mpression of a curved surface extending between points 516 and 518, without modifying Ihe geometry of the modeled object 500. As discussed above, the described technique creates the desired visual effect by modifying the respective shading normals of each modeled point on the first surface 502 between point 516 and edge 506, and on the second surface between edge 506 and point 518.

The technique is now described with respect to an exemplar)- point P on the original surface 502. Point P has an initial shading normal Nv

In the present example, it is assumed that no adjacency information is available, and that therefore a ray casting technique is used to locate hit points on neighboring surfaces. However, as discussed above, if adjacency information is available, then hit points may be located through a simple lookup operation without the need for a ray casting technique.

Assuming that no adjacency in formats on is available, a ray casting technique is used to locale hit points on neighboring surfaces. As discussed above, the ra> s are cast along a plane that is tangential to the geometrical normal of point P. For the purposes of the present discussion, it is assumed that the geometrical normal is the same as the shading normal, and that surface 102 lies on the tangent plane.

In order to prevent self-intersection. Point P and the tangent plane are displaced by distance δ, not drawn to scale. As mentioned above, a suitable value for δ is R/ 1000. Displaced point P 1 is used as the source point in a ray -casting operation, using rays extending along the displaced tangent plane. As mentioned above, satisfactory results have been obtained by using six equally spaced rays emanating from source point P f .

There is then calculated the distance D between source point P' and hit point H. There is also calculated the shading normal H n for the hit point H. The values for distance D, radius R, unmodified shading normal N,. and hit point shading normal B s are then incorporated into Equation (2) to calculate a value for weighting factor f. After weighting factor f has been calculated, it is then multiplied Io the hit normal shading vector H n to produce a weighted vector Y-U n - As expressed by Equation (3), the weighted hit normal shading vector f-H,, is then added to original shading normal N s to produce modified shading normal N s \

As discussed above, the process is repeated iteratively for each ray emanating from the source point, and the weighted contributions of each additional hit point are added to the shading normal

After the iterations have been completed, the resulting modified shading normal is normalized to have a length of 1. The normalized, modified shading normal jN s '| is then used by the shader during rendering of the image.

2.7 Overall Methods

FIGS, 7-1 S. axe flowcharts of methods in accordance with the present invention and the discussion above.

FiG. 7 is directed to a technique 700. including the following:

Box 701 During rendering modιf\ shading norma! in tegion of corner of ob|ect in image, such that when shading ss applied to an image, the shaded image is capable ofprox idmg to a human uexves . when x iewsπg a corner in {he image, the appeaj ance or usual illusion of a rounded corner Bo\ 702 Calculate amount of modification, io be applied to original shading noiiTial in le-gjon of cornei to simulate appearance of gι\ en fillet radius R

Box 703 Interrogate surfaces w ilhm a distance R of the comer for their shading normal (FiGS 9 aid 10. discussed below, show λ aiious aitematn es for Box 703 ) Box 704 Calculate a new normal that is> a w eighted blend between the shading normal of onjnnai surface and the shading normal of the interrogated neighboring surface, thereto to simulate at render-tmie, b\ ihe shading effect, a rounding υf the corner - to λ an ing the shading nos mal. creating a \ aπaiion of the surface normal consistent v\ ith the appearance the object w ouid hax e had. had it actually been rounded λs noted in the dmgiam. and discussed abo\ e. in one aspect of the im entiυn. w eighting begim at ihe distance R, where it cornpleteh fa\ OγN the oϋgirial shading normal and continues to a pomt where the distance to the neigh boπng face is cfTecδx e!> /eso. the weighting function JS used to determine a b!end ratio of two normals as a function of distance Different w eight functions > ield different apparent profiles of the edge of the coiner In \ anous aspects of the im ention, xvcightcd modification of the shading normal is performed in a similar fashion on both adjacent faces of comer as the\ are rendered, so {hat the edge region of both surfaces hav e apparent shading in which each \ isualh fades toward the other Also as noted abo\ e. m one aspect of the im cnuυα. the weighting lυnctioii ss selected such that at the actual geometric edge of corner, whcie ihe distance to the neighbor is effectϊx clx zero, the \\ eighting function x icJds same result for both faces, with substantialh 50/50 Mend of two surface normals, so that subsianuaiU no discυntmuitx can be MsualK perceiv ed m the shading υf the edge, and it can be ρercei\ ed as smooth b\ human \ icw er, thereto enabling illusion of rounded comers FlG 8 shows a technique 800 that is> a \ aπation of the technique 700 shown in

FIG 7. and includes the follow ing

Box 801 \iodii> shading normal N ^ m the region of corner of object in image such that iegioii of comet of object m image will when shaded h\ using shading model. prm ide to human \ lewcr MSUJI appeaiance of rounded edge

Box 802: Interrogate nearby region of corner for adjacent surfaces within radius of r of corner, wherein R is apparent fillet radius for corner,

FIG, 9 shows an alternative 900 for Box 703 of FlG. 7, and includes the following: Box Vt)I: Interrogate by querying data structures associated with scene for adjacency information useable to find adjacent surfaces within a radius r of the corner.

HG. 10 shows a second alternative 1000 for Box 703 of FlG, 7, this one utilizing, ray casting, and includes the following:

Box 1001. Interrogate by executing ray casting, find tangent plane defined by two vectors, u and v. tangential to geometric normal N « of a currently shaded primitive of image, in one aspect or example of the invention, vector-finding can include the following: select arbitrary vector and project it into plane of geometric normal to find vector u, and use cross product to find vector v.

Box 1002: Displace source point of ray casting process a selected small distance. If the point is displaced along the negative direction of the geometric normal vector, convex corners are found: if the point .is displaced along the positive direction. concave corners are found.

Box 1003: Fire a set of n substantially evenly spaced rays within the plane delned by the u and v vectors, and record any surfaces hit. Box 1004: Modify the normal: For each primitive hit by cast rays, shading normal H,, of the primitive is calculated at the hit point, as well as the distance to the hit point, D.

Box 1005. If D > R, the hit is disregarded, but if D < R. weight factor is calculated in accordance with: f -[l -(D/R)].[i -(R'H,)T

Box 1006: Weight normal Ii n by factor f, and add result to current shading normal, N ( .

Box 1007: When all n rays have been sent re-normalize shading normal N s to have unit length. Box 1008. Use new shading normal in shading model for shading the image.

FIG 1 OA shows an alternative for Box 1008, and includes the following:

Box 1008a: further modify new shading norma! by bump mapping.

Box 1008b: Use modified shading norma! in shading model for shading the image.

FϊG 1 i shows, a technique i 100 that uses adjacency information {instead of ray casting), and includes the following:

Box 1 101 . Modifying the normal: for each primitive found using adjacency information, shading normal H n of found primitn e is calculated at closest perpendicular point D for found pπmith e, and distance to point d is also calculated.

Bov i 102 if D > R, point is disregarded, ϊf D < R. a \x eight factor is calculated in accordance with.

Box 1 103 Weight normal H n by factor f. Box 1 104. Add result to current shading normal, N 8

Box 1 105 Re-norma1i/e shading normal ns to ha\ e unit length to y ield a new shading normal.

Bo\ 1 106" Use new shading normal in a shading model for shading the image. FIG. 1 1 further shows an alternative for Box 1 106, including the following Box 1 106a: Modify new shading normal by bump mapping.

Bo\ 1 106b. Then use modified new shading normal in shading model for shading the image.

3, Typical Digital Processing Environment In Which Invention Can Be Implemented

The following is a discussion, to be read in connection with FIOS 12-14. of typical relath ek cøm entional digital processing structures and enuronmems in which the abo\ e-described im ention mas be implemented and practiced

U will be understood by those skilled in the art thai the present invention, as described abo\ e, provides methods, systems, de\ ices and computer program products that enable the creation of the appearance of rounded comers and edges and other actis ities m computer graphics ss stems, whose output is typically a human-perceptible <or digitally stored and/or transmitted) image or series of images that can comprise, for example, an animated motion picture, computer aided design representation, or other typical computer graphics output The present im ention can thus be implemented as part of the computer software or computer hardware of a computer that forms part of a computer graphics sy stem, along with a display, user interface elements such as a key board, tablet and/or mouse, memory, storage, and other conv entional computer graphics system components. While conventional components of such kind are well

known to those skilled in the art, and thus need not be described in great detail herein, the following overview indicates how the present invention can he implemented in conjunction with such components in a computer graphics system

More particularly,, those skilled in the art will understand thai the present invention can be utilized in the generation and synthesis of images, such as for display in a motion picture or other dynamic display. The techniques described herein can be practiced as part of a computer graphics system, in w hich a pixel value is generated for pixels in an image. The pixel value is representative of a point in a scene as recorded on an image plane of a simulated camera. The underlying computer graphics system can be configured to generate the pixel value for an image using a selected methodology, such as that of the present invention.

The previous detailed description illustrates examples of methods, structures, systems, and computer software products in accordance with these techniques. It will be understood by those skilled in the art that lhe described methods and systems can be implemented in software, hardware, or a combination of " software and hardware, using conventional computer apparatus such as a personal computer (PC) or equivalent device operating in accordance with (or emulating) a conventional operating system such as Microsoft Windows, Linux, or Unix, either in a standalone configuration or across a network. The various processing aspects aid means described herein may therefore be implemented in the software and/or hardware elements of a properly configured digital processing device or network of devices. Processing ma> be performed sequent! all} or in parallel, and may be implemented using special purpose or re-configurable hardware.

As an example. FlG. 12 attached hereto depicts an illustrative computer system 1200 mat can cam- out such computer graphics processes. With reference to FlG. 12, the computer system 1200 in one embodiment includes a processor module 1201 and operator interface elements comprising operator input components such as a keyboard 1202A and/or a mouse 1202B (or digitizing tablet or other analogous eiement(s), generally identified as operator input element(s) 1202) and an operator output element such as a video display dev ice 1203, The illustrative computer system 1200 can be of a conventional stored-program computer architecture. The processor module 1201 can include, for example, one or more processor, memory and mass storage devices, such as disk and/or tape storage elements (not separately shown), which perform processing and storage operations in connection with digital data provided thereto. The operator

mput dementis) 1202 can he pro\ ided to permit an op≤taloj Io input information fbi piocessing The udeo display device 1203 ears be pro\ ided io display output sπibimation generated h\ the processor module 1201 on a screen 1204 to the operator, inducting data that the operatoi max input Ibϊ processing, mfoimation thai the opetatoi ma\ input to control processing, as well as information generated duiing piocessmg The processor module 1201 can generate information lot display b> the udeo displax deuce 1203 using a so-called "graphical user interface " ("GUI " ), in which information for \ ariυus applications programs ϊS displa> ed using \ anous " windows "

The terms "mernon ", "stoiagtf and "disk storage dev ices" can encompass am computer readable medium, such as a computer hard disk, computer flopp> disk, computer-readable Hash dm e. computer-readable R 4Vt or ROM element or am other known means of encoding digital information The term "applications programs", "applications", "programs", "computer progiam product" oi "computer softwase product" can encompass an> computer program product consisting of eompister- readable programs instructions encoded and/or stored on a computer readable medium, whethei that medium is fixed oi remo\ able, permanent oi eiasabfe, or otheiwtse As noted, for example, m block 1322 of the schematic block diagram of MG 14. applications and daϊa can be stored on a disk, m R AVl, ROM. on other removable or fixed storage, whether internal or external, and can be downloaded or uploaded, in aecotdance wnh piactices and techniques well known in the an 4s will also be noted ϊπ this document, the present m ention can take the form of software or a computer program pioduct stored on a computer-readable medium, oi it can be m the form of compute! program code that can be uploaded ot downloaded, oi fixed in an FPGA. ROM or other electronic stmcture, or it can take the foim of a method oi a s\ stem for cam mg out such a method In each case, the sm ention is operable to enable a computer or computer s\ stem to calculate a pixel \ alue fot pixels m an image or scene, and the pixel \ alue can be used b\ other eleinenis of a cυπiputei graphics S-S siem. winch can be com eniional elements such as graphics cards, display controllers, or display elements such as LCDs aul/or CR Is. to generate a displa> -controlling electiical or electronic output, and uUimateK to enable the dispiαs of an image in a human-perceptihle fotm, and/or the storage of such an image (or data spectf\ rag such an image) for laser displax and or processing

Although the computer s\ stem 1200 JS shown as comprising particnlai components, such as the ke\ bυaid 1202 A and mouse I202B for recen ing input

1 ?

information from an operator, and a video display device 1203 for displaying output information to the operator, it will be appreciated thai the computer system 1200 may include a -variety of components in addition to or instead of those depicted in FlG. 12. In addition, the processor module 1201 can include one or more network ports, generally identified by reference numeral 1205, which are connected to communication links which connect the computer system 1200 in a computer network. The network- ports enable the computer system J 200 to transmit information to, and receive information from, other computer systems and other devices in the network, In a typical network organized according to, for example, the client-server paradigm, certain computer systems in the network are designated as servers, which slore data and programs {generally, "information " ) for processing by the other, client computer systems, thereby to enable the client computer systems to conveniently share {he information. A client computer system which needs access Io information maintained by a particular server will enable the server to download the information to it over the network. After processing the data, the client computer system may also return the processed data to the server for storage. In addition to computer systems (including {he above-described servers and clients), a network may also include, for example, printers and facsimile devices, digital audio or video storage and distribution devices, and the like, which may be shared among the various computer systems connected in the network. The communication links interconnecting the computer systems in the network may. as is conventional- comprise any convenient information-carrying medium, including wires, optical fibers or other media for earning signals among the computer systems. Computer systems transfer information over the network by means of messages transferred over the communication links, with each message including information and an identifier identifying {he device to receive the message, ϊn addition lo the computer system 1200 shown in the drawings, methods, devices or software products in accordance with the present invention can operate on any of a wide range of conventional computing devices and systems, such as those depicted by way of example in FIGS. 13 and 14 (e.g.. network system 1300), whether standalone, networked, portable or fixed, including conventional PCs I 302, laptops 1304, handheld or mobile computers 1306. or across the Internet or other networks 1308, which may in turn include servers 1310 and storage 131.2.

In hne with conventional computer software and hardware practice, a software application configured in accordance with the invention can operate within, e.g.. a PC

1302 like that shown iti FϊGS. 13-14, in which program instructions can be read from ROM or CD ROM 13 ϊ 6 (FKK 14), magnetic disk or other storage 132«) and loaded into RAM 1314 for execution by CPU 1318. Data can he input into trie system via any known device or means, including a conventional keyboard, scanner, mouse, digitizing tablet, or other elements 1303. As shown in FIC. 14, the depicted storage 1320 includes removable storage. As further shown in FIG. 14, applications and data 1322 can be located on some or all of fixed or removable storage or ROM, or downloaded.

Those skilled in the art will understand that the method aspects of {he invention described herein can be executed in hardware elements, such as a Field-Programmable Gate Array (FPGA) or an Application-Specific Integrated Circuit (ASIC) constructed specifically to cany out the processes described herein, using ASIC construction techniques known to ASIC manufacturers. Various forms of ASfCs are available from many manufacturers, although currently available ASICs do not provide the functions described in this patent application. Such manufacturers include Intel Corporation and NVf DlA Corporation, both of Santa Clara, California, The actual semiconductor elements of a conventional ASIC or equivalent integrated circuit are not: part of the present invention, and vvill not be discussed in detail herein.

Those skilled in the art will also understand that ASICs or other conventional integrated Circuit or semiconductor elements can be implemented in such a manner, using the teachings of the present invention as described in greater detail herein, to cam out λe methods of the present invention as shown in FϊGS. 1-1 1 , discussed above.

Those skilled in the art will also understand that method aspects of the present invention can be carried out within commercially available digital processing systems, such as workstations and personal computers (PCs), operating under the collective command of the workstation or PC's operating system and a computer program product configured in accordance with the present invention. The term ' " computer program product" can encompass any set of computer-readable programs instructions encoded on a computer readable medium. A computer readable medium can encompass any form of computer readable element, including, but not limited to, a computer hard disk, computer floppy disk computer -readable flash drive, computer-readable RAM or ROM element, or any other known means of encoding, storing or providing digital information, whether local to or remote from the workstation, PC or other digital processing device or system. Various forms of computer readable elements and media are well known in the computing arts, and their selection is ieft to the impiementer. In

each case, the invention is operable to enable a computer sy stem to calculate a pixel value, and the pixel vaJue can be used by hardware elements in the computer system, which can be conventional elements such as graphics cards or display controllers, to generate a display-controlling electronic output Conventional graphics cards and display controllers are well known in the computing aits are not necessarily part of the present invention, and their selection can be left fo the sroplemeiuer

While the foregoing description includes details which will enable those skilled in the art to practice the invention, it should be recognized that the description is illustrative in nature and that many modifications and variations thereof will be apparent to those skilled in the art having the benefit of these teachings. It is accordingly intended that the invention herein be defined solely by the claims appended hereto and that the clams be interpreted as broadly as permitted by the prior art.