Rendering 3D surfaces through limit surface projections
First Claim
1. A computer-implemented method for use in rendering a 3D surface, the method comprising:
- obtaining an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdividing the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh;
for each subdivision mesh, applying a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface; and
for each subdivision mesh, rendering an image of the projected surface instead of an image of the subdivision mesh.
1 Assignment
0 Petitions
Accused Products
Abstract
In rendering a 3D surface, a computer obtains an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces. The computer subdivides the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh. For each subdivision mesh, the computer applies a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface. The computer then renders an image of the projected surface for the subdivision mesh instead of rendering an image of the subdivision mesh itself.
35 Citations
30 Claims
-
1. A computer-implemented method for use in rendering a 3D surface, the method comprising:
-
obtaining an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdividing the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh;
for each subdivision mesh, applying a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface; and
for each subdivision mesh, rendering an image of the projected surface instead of an image of the subdivision mesh. - View Dependent Claims (2, 3, 4, 5, 6, 7)
where n represents the number of vertices in a neighborhood surrounding a particular vertex vr, where r represents the number of subdivisions applied to the bash mesh to derive the subdivision mesh, and where α
(n) is a weighting function described by the equation;
where
-
-
6. The method of claim 4, wherein applying a computer-implemented algorithm to the vertices in a subdivision mesh to project the vertices onto a limit surface includes:
-
changing at least one factor in the predetermined equation; and
theninserting the vertices into the predetermined equation.
-
-
7. The method of claim 6, wherein changing at least one live factor includes replacing the weighting function α
- (n) with a modified weighting function ε
(n).
- (n) with a modified weighting function ε
-
8. A computer-implemented method for use in rendering a 3D surface, the method comprising:
-
obtaining an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdividing the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh;
for each subdivision mesh, applying a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface, and where applying the computer-implemented algorithm includes inserting the vertices in the subdivision mesh into a predetermined equation that includes a factor that accounts for the projection of the vertices onto the limit surface and that is calculated by solving the following equation;
where
and where n represents the number of vertices in a neighborhood surrounding a particular vertex; and
for each subdivision mesh, rendering an image of the projected surface instead of an image of the subdivision mesh.
-
-
9. A computer-implemented method for use in rendering a 3D surface, the method comprising:
-
obtaining an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdividing the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh;
for each subdivision mesh, applying a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface, and where applying the computer-implemented algorithm includes inserting the vertices into the following equation;
where n represents the number of vertices in a neighborhood surrounding a particular vertex vr, where r represents the number of subdivisions applied to the bash mesh to derive the subdivision mesh, and where ε
(n) is a weighting function described by the equation;
where
andfor each subdivision mesh, rendering an image of the projected surface instead of an image of the subdivision mesh.
-
-
10. A computer-implemented method for use in rendering a 3D surface, the method comprising:
-
obtaining an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdividing the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, where each subdivision mesh includes more vertices than each preceding mesh, and where subdividing includes inserting the vertices from a mesh to be subdivided into a predetermined equation;
for each subdivision mesh, applying a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface, where applying the computer-implemented algorithm includes replacing the weighting function α
(n) in the predetermined equation with a modified weighting function ε
(n) and then inserting the vertices into the predetermined equation, and where the modified weighting function ε
(n) is calculated according to the following equation;
where
andfor each subdivision mesh, rendering an image of the projected surface instead of an image of the subdivision mesh.
-
-
11. A computer program, residing on a tangible storage medium, for use in rendering a 3D surface, the program comprising executable instructions that enable a computer to:
-
obtain an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdivide the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh;
for each subdivision mesh, apply a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface; and
for each subdivision mesh, render an image of the projected surface instead of an image of the subdivision mesh. - View Dependent Claims (12, 13, 14, 15, 16, 17)
where n represents the number of vertices in a neighborhood surrounding a particular vertex vr, where r represents the number of subdivisions applied to the bash mesh to derive the subdivision mesh, and where α
(n) is a weighting function described by the equation;
where
-
-
16. The program of claim 14, wherein, in applying the computer-implemented algorithm to the vertices in a subdivision mesh to project the vertices onto a limit surface, the computer changes at least one factor in the predetermined equation and then inserts the vertices into the predetermined equation.
-
17. The program of claim 16, wherein, in changing at least one factor, the computer replaces the weighting function α
- (n) with a modified weighting function ε
(n).
- (n) with a modified weighting function ε
-
18. A computer program, residing on a tangible storage medium, for use in rendering a 3D surface, the program comprising executable instructions that enable a computer to:
-
obtain an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdivide the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh;
for each subdivision mesh, apply a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface, and where, in applying the computer-implemented algorithm, the computer inserts the vertices in the subdivision mesh into a predetermined equation that includes a factor that accounts for the projection of the vertices onto the limit surface and that is calculated by solving the following equation;
where
and where n represents the number of vertices in a neighborhood surrounding a particular vertex; and
for each subdivision mesh, render an image of the projected surface instead of an image of the subdivision mesh.
-
-
19. A computer program, residing on a tangible storage medium, for use in rendering a 3D surface, the program comprising executable instructions that enable a computer to:
-
obtain an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdivide the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh;
for each subdivision mesh, apply a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface, and where, in applying the computer-implemented algorithm, the computer inserts the vertices into the following equation;
where n represents the number of vertices in a neighborhood surrounding a particular vertex vr, where r represents the number of subdivisions applied to the bash mesh to derive the subdivision mesh, and where ε
(n) is a weighting function described by the equation;
where
andfor each subdivision mesh, render an image of the projected surface instead of an image of the subdivision mesh.
-
-
20. A computer program, residing on a tangible storage medium, for use in rendering a 3D surface, the program comprising executable instructions that enable a computer to:
-
obtain an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdivide the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, where each subdivision mesh includes more vertices than each preceding mesh, and where, in subdividing, the computer inserts the vertices from a mesh to be subdivided into a predetermined equation;
for each subdivision mesh, apply a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface, where, in applying the computer-implemented algorithm, the computer replaces the weighting function α
(n) in the predetermined equation with a modified weighting function ε
(n) and then inserts the vertices into the predetermined equation, and where the modified weighting function ε
(n) is calculated according to the following equation;
where
andfor each subdivision mesh, render an image of the projected surface instead of an image of the subdivision mesh.
-
-
21. A computer system comprising:
-
a processor and a memory device coupled to a system bus;
a display device operable to display rendered images of a 3D surface;
a graphics controller configured to receive data from the system bus and use the data in rendering the 3D surface on the display device; and
a 3D graphics program loaded into the memory device to assist the processor in delivering the data to the graphics controller, the 3D graphics program comprising executable instructions that cause the processor to;
obtain an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdivide the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh;
for each subdivision mesh, apply a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface; and
for each subdivision mesh, render an image of the projected surface instead of an image of the subdivision mesh. - View Dependent Claims (22, 23, 24, 25, 26, 27)
where n represents the number of vertices in a neighborhood surrounding a particular vertex vr, where r represents the number of subdivisions applied to the bash mesh to derive the subdivision mesh, and where α
(n) is a weighting function described by the equation;
where
-
-
26. The system of claim 24, wherein, in applying the computer-implemented algorithm to the vertices in a subdivision mesh to project the vertices onto a limit surface, the processor changes at least one factor in the predetermined equation and then inserts the vertices into the predetermined equation.
-
27. The system of claim 26, wherein, in changing at least one factor, the processor replaces the weighting function α
- (n) with a modified weighting function ε
(n).
- (n) with a modified weighting function ε
-
28. A computer system comprising:
-
a processor and a memory device coupled to a system bus;
a display device operable to display rendered images of a 3D surface;
a graphics controller configured to receive data from the system bus and use the data in rendering the 3D surface on the display device; and
a 3D graphics program loaded into the memory device to assist the processor in delivering the data to the graphics controller, the 3D graphics program comprising executable instructions that cause the processor to;
obtain an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdivide the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh;
for each subdivision mesh, apply a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface, and where, in applying the computer-implemented algorithm, the processor inserts the vertices in the subdivision mesh into a predetermined equation that includes a factor that accounts for the projection of the vertices onto the limit surface and that is calculated by solving the following equation;
where
and where n represents the number of vertices in a neighborhood surrounding a particular vertex; and
for each subdivision mesh, render an image of the projected surface instead of an image of the subdivision mesh.
-
-
29. A computer system comprising:
-
a processor and a memory device coupled to a system bus;
a display device operable to display rendered images of a 3D surface;
a graphics controller configured to receive data from the system bus and use the data in rendering the 3D surface on the display device; and
a 3D graphics program loaded into the memory device to assist the processor in delivering the data to the graphics controller, the 3D graphics program comprising executable instructions that cause the processor to;
obtain an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdivide the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, and where each subdivision mesh includes more vertices than each preceding mesh;
for each subdivision mesh, apply a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface, and where, in applying the computer-implemented algorithm, the processor inserts the vertices into the following equation;
where n represents the number of vertices in a neighborhood surrounding a particular vertex vr, where r represents the number of subdivisions applied to the bash mesh to derive the subdivision mesh, and where ε
(n) is a weighting function described by the equation;
where for each subdivision mesh, render an image of the projected surface instead of an image of the subdivision mesh.
-
-
30. A computer system comprising:
-
a processor and a memory device coupled to a system bus;
a display device operable to display rendered images of a 3D surface;
a graphics controller configured to receive data from the system bus and use the data in rendering the 3D surface on the display device; and
a 3D graphics program loaded into the memory device to assist the processor in delivering the data to the graphics controller, the 3D graphics program comprising executable instructions that cause the processor to;
obtain an initial digital data set that defines a base mesh coarsely approximating the 3D surface, where the base mesh includes vertices connected to form 2D faces;
subdivide the 2D faces of the base mesh one or more times to form one or more subdivision meshes, where each subdivision mesh more closely approximates the 3D surface than each preceding mesh, where each subdivision mesh includes more vertices than each preceding mesh, and where, in subdividing, the processor inserts the vertices from a mesh to be subdivided into a predetermined equation;
for each subdivision mesh, apply a computer-implemented algorithm to the vertices in the subdivision mesh to project the vertices onto a limit surface that represents the actual shape of the 3D surface, where the projected vertices define a projected surface, where, in applying the computer-implemented algorithm, the processor replaces the weighting function α
(n) in the predetermined equation with a modified weighting function ε
(n) and then inserts the vertices into the predetermined equation, and where the modified weighting function ε
(n) is calculated according to the following equation;
where
andfor each subdivision mesh, render an image of the projected surface instead of an image of the subdivision mesh.
-
Specification