A computationally efficient method for rendering skin tissue to achieve lifelike results includes application of a blurring algorithm to a two-dimensional light map. The algorithm is compact and is not derived from complex mathematical models of subsurface scattering in translucent materials, and yet achieves results similar to more complex models. The method includes receiving three-dimensional surface geometry relating to a digital object and other information for defining modeled light reflected from the surface, generating a two-dimensional matrix of light intensity values mapped to the surface geometry, blurring the matrix using a compact algorithm, and rendering the object using the blurred light intensity values.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A computer-implemented method, comprising: generating a first matrix of light intensity values representing diffuse light reflection from a color-neutral surface of an object, the first matrix excluding any representation of subsurface light scattering and specular reflection; blurring the first matrix of light intensity values to define a blurred matrix; generating pixel values for an image of the object using the blurred matrix of light intensity values in combination with a color map representing specular surface colors of the object thereby providing a rendered image simulating subsurface scattering near a surface of the object; and storing in a computer memory the pixel values of the image.
A computer-implemented method for rendering skin or similar materials to simulate subsurface scattering involves these steps: First, generate a 2D matrix representing diffuse light reflection from the object's surface, excluding subsurface scattering and specular reflection. Then, blur this matrix to create a blurred matrix. Next, generate pixel values for the image using the blurred matrix combined with a color map representing specular surface colors. This process simulates subsurface scattering near the object's surface. Finally, store these pixel values in computer memory.
2. The method of claim 1 , wherein blurring the first matrix further comprises convolving the light intensity matrix.
The method of rendering skin or similar materials, which involves generating a first matrix of light intensity values representing diffuse light reflection from a color-neutral surface, blurring this matrix, generating pixel values using the blurred matrix and a color map of specular surface colors, and storing the pixel values, further specifies that blurring the first matrix involves convolving the light intensity matrix. Convolution is used as the blurring algorithm.
3. The method of claim 1 , wherein blurring the first matrix further comprises processing the light intensity matrix using a Fast Fourier Transform function.
The method of rendering skin or similar materials, which involves generating a first matrix of light intensity values representing diffuse light reflection from a color-neutral surface, blurring this matrix, generating pixel values using the blurred matrix and a color map of specular surface colors, and storing the pixel values, further specifies that blurring the first matrix involves using a Fast Fourier Transform (FFT) function to process the light intensity matrix.
4. The method of claim 1 , wherein blurring the first matrix further comprises executing a blurring algorithm of the form e −(x 2 +y 2 )/σ , where x and y are the horizontal and vertical widths, respectively, of the blur kernel in number of lumels, e is the base of the natural logarithm, and σ is a spreading parameter.
The method of rendering skin or similar materials, which involves generating a first matrix of light intensity values representing diffuse light reflection from a color-neutral surface, blurring this matrix, generating pixel values using the blurred matrix and a color map of specular surface colors, and storing the pixel values, further specifies that blurring the first matrix involves using a blurring algorithm of the form e −(x 2 +y 2 )/σ , where x and y are the horizontal and vertical widths of the blur kernel in pixels, e is the base of the natural logarithm, and σ is a spreading parameter.
5. The method of claim 1 , further comprising generating the color map as one or more matrices of values representing the specular surface reflection from the object.
The method of rendering skin or similar materials, which involves generating a first matrix of light intensity values representing diffuse light reflection from a color-neutral surface, blurring this matrix, generating pixel values using the blurred matrix and a color map of specular surface colors, and storing the pixel values, further includes generating the color map as one or more matrices representing specular surface reflection from the object.
6. The method of claim 5 , wherein generating the color map further comprises generating separate matrices for each of three color separation channels.
The method that generates a color map as one or more matrices representing specular surface reflection, in addition to generating a first matrix of light intensity values representing diffuse light reflection from a color-neutral surface, blurring this matrix, generating pixel values using the blurred matrix and the color map of specular surface colors, and storing the pixel values, specifies that generating the color map involves creating separate matrices for each of the three color separation channels (e.g., red, green, blue).
7. The method of claim 6 , wherein blurring the first matrix further comprises blurring the first matrix for each of the three color separation channels according to the general expression I x , y = V x , y · I 0 , 0 ; where I x,y is a blurred value of each (x,y) th lumel, V x,y is an attenuation factor for each (x,y) th lumel defining a blur kernel having a predetermined width, and I 0,0 is an unblurred value of each (x,y) th lumel of the first matrix.
The method that generates separate color matrices for each of three color separation channels, in addition to generating a first matrix of light intensity values representing diffuse light reflection from a color-neutral surface, blurring this matrix, generating pixel values using the blurred matrix and the color map of specular surface colors, and storing the pixel values, specifies that blurring the first matrix involves blurring it for each color channel according to the equation I x , y = V x , y · I 0 , 0 , where I x,y is the blurred light intensity value for a pixel at coordinates (x,y), V x,y is an attenuation factor defining the blur kernel, and I 0,0 is the original unblurred light intensity value at that pixel.
8. The method of claim 7 , wherein blurring the first matrix further comprises computing the blur kernel V x , y = 1 ( x 2 + y 2 + 1 ) P RGB separately for each channel, wherein x and y are computed over the range of −h RGB to h RGB , h RGB is a corresponding h R , h G , or h B halfwidth of the blur kernel for each channel, and P RGB is a corresponding P R , P G , or P B power factor for each channel.
The method that blurs a matrix for each color channel according to the equation I x , y = V x , y · I 0 , 0 , in addition to generating a first matrix of light intensity values representing diffuse light reflection from a color-neutral surface, blurring this matrix, generating pixel values using the blurred matrix and the color map of specular surface colors, and storing the pixel values, specifies computing the blur kernel using V x , y = 1 / ( x 2 + y 2 + 1 ) P RGB separately for each channel. x and y are computed over the range of −h RGB to h RGB , where h RGB is a corresponding h R , h G , or h B halfwidth of the blur kernel for each channel, and P RGB is a corresponding P R , P G , or P B power factor for each channel.
9. The method of claim 8 , wherein blurring the first matrix further comprises computing V x,y using a corresponding value of P R , P G , and P B for each respective color channel within a range of 2 to 4.
The method that computes the blur kernel using V x , y = 1 / ( x 2 + y 2 + 1 ) P RGB separately for each channel, in addition to generating a first matrix of light intensity values representing diffuse light reflection from a color-neutral surface, blurring this matrix, generating pixel values using the blurred matrix and the color map of specular surface colors, and storing the pixel values, involves calculating V x,y using P R , P G , and P B values in the range of 2 to 4 for their respective color channels.
10. The method of claim 8 , wherein blurring the first matrix further comprises computing V x,y over a halfwidth h RGB determined by h RGB = K RGB · W a + b where W is the width or largest dimension of the first matrix, in number of lumels, K RGB is a corresponding kernel size factor K R , K G , and K B for each respective color channel within a range of 5 to 20, a is within a range of 1000 to 2000, and b is within a range of 0 to 1.
The method that computes the blur kernel using V x , y = 1 / ( x 2 + y 2 + 1 ) P RGB separately for each channel, in addition to generating a first matrix of light intensity values representing diffuse light reflection from a color-neutral surface, blurring this matrix, generating pixel values using the blurred matrix and the color map of specular surface colors, and storing the pixel values, specifies computing V x,y over a halfwidth h RGB determined by the formula h RGB = K RGB · W a + b. Here, W is the width of the first matrix in pixels, K RGB is a kernel size factor (K R , K G , K B ) for each channel (range 5 to 20), 'a' is in the range of 1000 to 2000, and 'b' is in the range of 0 to 1.
11. A system for rendering an appearance of subsurface scattering in an object, comprising: a computer memory storing a blurred two dimensional matrix of light intensity values representing diffuse reflection from a color-neutral surface and excluding representation of subsurface light scattering and specular reflection; and a processing unit in communication with the computer memory, wherein the processing unit is programmed with instructions for rendering the object using the blurred two dimensional matrix of light intensity values in combination with a color map representing specular surface colors of the object thereby providing a rendered image simulating subsurface scattering near a surface of the object.
A system for rendering an appearance of subsurface scattering in an object consists of computer memory that stores a blurred 2D matrix of light intensity values representing diffuse reflection, excluding subsurface scattering and specular reflection. A processing unit communicates with the memory and is programmed to render the object using the blurred matrix, combined with a color map representing specular surface colors. The final rendered image simulates subsurface scattering near the surface.
12. The system of claim 11 , wherein the processing unit is programmed with instructions for generating the blurred two dimensional matrix of light intensity values from an unblurred two dimensional matrix of light intensity values.
The system for rendering subsurface scattering that uses a computer memory storing a blurred 2D matrix of light intensity values, and a processor programmed to render an object using the blurred matrix and a specular color map, specifies that the processing unit is further programmed to generate the blurred 2D matrix of light intensity values from an unblurred 2D matrix of light intensity values.
13. The system of claim 12 , wherein the processing unit is programmed with instructions for generating the blurred two dimensional matrix of light intensity values by executing a blurring algorithm of the form e −(x 2 +y 2 )/σ , where x and y are the horizontal and vertical widths, respectively, of the blur kernel in number of lumels, e is the base of the natural logarithm, and σ is a spreading parameter.
The system for rendering subsurface scattering that generates a blurred 2D matrix from an unblurred 2D matrix, uses a computer memory storing a blurred 2D matrix of light intensity values, and a processor programmed to render an object using the blurred matrix and a specular color map, further specifies that the blurring algorithm has the form e −(x 2 +y 2 )/σ , where x and y represent horizontal and vertical widths of the blur kernel in pixels, e is the base of the natural logarithm, and σ is a spreading parameter.
14. The system of claim 11 , further comprising the color map stored in a computer memory as a two dimensional matrix of values representing specular surface reflection from the object.
The system for rendering subsurface scattering that uses a computer memory storing a blurred 2D matrix of light intensity values, and a processor programmed to render an object using the blurred matrix and a specular color map, further comprises the color map itself stored in computer memory as a two-dimensional matrix of values representing specular surface reflection from the object.
15. The system of claim 12 , wherein the processing unit is programmed with instructions for generating the color map as one or more matrices of values representing specular surface reflection from the object.
The system for rendering subsurface scattering that generates a blurred 2D matrix from an unblurred 2D matrix, uses a computer memory storing a blurred 2D matrix of light intensity values, and a processor programmed to render an object using the blurred matrix and a specular color map, specifies that the processing unit is programmed to generate the color map as one or more matrices representing specular surface reflection from the object.
16. The system of claim 12 , wherein the processing unit is programmed with instructions for generating the color map comprising separate matrices for each of three color separation channels.
The system for rendering subsurface scattering that generates a blurred 2D matrix from an unblurred 2D matrix, uses a computer memory storing a blurred 2D matrix of light intensity values, and a processor programmed to render an object using the blurred matrix and a specular color map, specifies that the processing unit is programmed to generate the color map by creating separate matrices for each of the three color separation channels (e.g., red, green, blue).
17. The system of claim 16 , wherein the processing unit is programmed with instructions for generating the blurred two dimensional matrix of light intensity values for each of the three color separation channels according to the general expression I x , y = V x , y · I 0 , 0 ; where I x,y is a blurred value of each (x,y) th lumel, V x,y is an attenuation factor for each (x,y) th lumel defining a blur kernel having a predetermined width, and I 0,0 is an unblurred value of each (x,y) th lumel of the first matrix.
The system that generates separate color matrices for each of three color separation channels, in addition to generating a blurred 2D matrix from an unblurred 2D matrix, uses a computer memory storing a blurred 2D matrix of light intensity values, and a processor programmed to render an object using the blurred matrix and a specular color map, specifies that the processing unit is programmed to generate the blurred light intensity values for each color channel according to the expression I x , y = V x , y · I 0 , 0 , where I x,y is the blurred value of a pixel at (x,y), V x,y is the attenuation factor defining the blur kernel, and I 0,0 is the original unblurred value.
18. The system of claim 17 , wherein the processing unit is programmed with instructions for generating the blurred two dimensional matrix of light intensity values further by computing the blur kernel V x , y = 1 ( x 2 + y 2 + 1 ) P RGB separately for each channel, wherein x and y are computed over the range of −h RGB to h RGB , h RGB is a corresponding h R , h G , or h B halfwidth of the blur kernel for each channel, and P RGB is a corresponding P R , P G , or P B power factor for each channel.
The system that generates a blurred matrix for each color channel using I x , y = V x , y · I 0 , 0 , in addition to generating a blurred 2D matrix from an unblurred 2D matrix, uses a computer memory storing a blurred 2D matrix of light intensity values, and a processor programmed to render an object using the blurred matrix and a specular color map, specifies that the processor computes the blur kernel using V x , y = 1 / ( x 2 + y 2 + 1 ) P RGB separately for each channel. x and y are computed over the range of −h RGB to h RGB , h RGB being h R , h G , or h B halfwidth of the blur kernel for each channel, and P RGB is P R , P G , or P B , a power factor for each channel.
19. The system of claim 18 , wherein the processing unit is programmed with instructions for generating the blurred two dimensional matrix of light intensity values comprising computing V x,y using a corresponding value of P R , P G , and P B for each respective color channel within a range of 2 to 4.
The system that computes the blur kernel with V x , y = 1 / ( x 2 + y 2 + 1 ) P RGB separately for each channel, in addition to generating a blurred 2D matrix from an unblurred 2D matrix, uses a computer memory storing a blurred 2D matrix of light intensity values, and a processor programmed to render an object using the blurred matrix and a specular color map, involves the processing unit computing V x,y using P R , P G , and P B values ranging from 2 to 4 for their corresponding color channels.
20. The system of claim 18 , wherein the processing unit is programmed with instructions for computing V x,y over a halfwidth h RGB determined by h RGB = K RGB · W a + b where W is the width or largest dimension of the first matrix, in number of lumels, K RGB is a corresponding kernel size factor K R , K G , and K B for each respective color channel within a range of 5 to 20, a is within a range of 1000 to 2000, and b is within a range of 0 to 1.
The system that computes the blur kernel with V x , y = 1 / ( x 2 + y 2 + 1 ) P RGB separately for each channel, in addition to generating a blurred 2D matrix from an unblurred 2D matrix, uses a computer memory storing a blurred 2D matrix of light intensity values, and a processor programmed to render an object using the blurred matrix and a specular color map, involves the processing unit calculating V x,y over a halfwidth h RGB determined by h RGB = K RGB · W a + b. W is the width of the first matrix, K RGB is a kernel size factor (K R , K G , K B ) for each color channel (range 5 to 20), 'a' ranges from 1000 to 2000, and 'b' ranges from 0 to 1.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
March 12, 2009
August 20, 2013
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.