USRE42287EExpiredUtility

Stochastic level of detail in computer animation

89
Assignee: PIXARPriority: Mar 17, 1998Filed: Oct 9, 2003Granted: Apr 12, 2011
Est. expiryMar 17, 2018(expired)· nominal 20-yr term from priority
G06T 2210/36G06T 13/20
89
PatentIndex Score
63
Cited by
18
References
41
Claims

Abstract

A method for smoothly transitioning between different object representations in computer animation using stochastic sampling. The method allows for level of detail transitions between object representations made up of different geometric primitives, of different types, with different rendering attributes, and even different topologies without “popping” or other visual artifacts.

Claims

exact text as granted — not AI-modified
1. A method for computer rendering an image, comprising:
 storing a plurality of different representations of an object in a scene to be rendered;  
 selecting a plurality of sample locations within an area of a pixel of an image;  
 associating with each of said sample locations one of said plurality of different representations, wherein each of said plurality of different representations is pseudorandomly associated with one of said sample locations;  
 computing an image contribution at each of said sample locations based on the associated one of said plurality of different representations; and  
 combining said image contributions computed at each of said sample locations to form the image.  
 
     
     
       2. The method of  claim 1  wherein each of said plurality of different representations of an object comprises a set of geometric primitives. 
     
     
       3. The method of  claim 2  wherein a plurality of said sets of geometric primitives are of different types. 
     
     
       4. The method of  claim 3  wherein said sets of geometric primitives are bound with differing rendering attributes. 
     
     
       5. The method of  claim 1  wherein a first of said different object representations has a first topology and a second of said different object representations has a second topology different from said first topology. 
     
     
       6. The method of  claim 1  wherein two or more of said plurality of different representations correspond to different level of detail representations. 
     
     
       7. The method of  claim 2  wherein a different level of detail representation is represented by each of said sets of geometric primitives. 
     
     
       8. The method of  claim 1  wherein said sample locations are pseudorandomly distributed within said area of said pixel. 
     
     
       9. The method of  claim 1  wherein each of said plurality of different representations is  said sample locations are pseudorandomly associated with one of said sample locations  distributed within said area of said pixel. 
     
     
       10. The method of  claim 1  wherein the  a probability that each of said plurality of different representations is pseudorandomly associated with a particular one of said sample locations varies responsive to image based selection criteria. 
     
     
       11. The method of  claim 1  further comprising:
 defining an image based selection criteria for said object in said scene;  
 defining overlapping ranges of the selection criteria for which alternative ones of said plurality of different representations of the object may be utilized;  
 defining, in said overlapping ranges of the selection criteria, transition functions that prescribe the importance of said alternative representations as a function of the selection criteria; and  
 wherein each of said plurality of different representations is associated with said sample locations with probability proportional to said importance of said different representations.  
 
     
     
       12. The method of  claim 11  wherein the selection criteria is the projected raster area of the object's bounding box. 
     
     
       13. The method of  claim 11  wherein the transition functions are piecewise linear. 
     
     
       14. The method of  claim 11  wherein in overlapping ranges the importance of alternative representations sum to 1 so that the object is not over or under represented in the transition region. 
     
     
       15. The method of  claim 1  further comprising:
 establishing partitions of a range of a random variable, each of said partitions associated with one of said different representations of said object;  
 determining a value of said random variable for each of said sample locations; and  
 wherein associating with each of said sample locations one of said plurality of different representations comprises: 
 associating each of said sample locations with one of said plurality of different representations based on the one of said partitions in which said value of said random variable associated with said sample location falls.  
 
 
     
     
       16. The method of  claim 11  wherein in overlapping ranges the importance of alternative representations sum to less than 1 for smoothing a transition to a state where the object is not visible. 
     
     
       17. The method of  claim 11  further comprising:
 establishing partitions of a range of a random variable, each of said partitions associated with one of said different representations of said object;  
 determining a value of said random variable for each of said sample locations; and  
 wherein associating said plurality of different representations with said sample locations with probability proportional to said importance of said different representations comprises: 
 associating each of said sample locations with one of said plurality of different representations based on the one of said partitions in which said value of said random variable associated with said sample location falls.  
 
 
     
     
       18. The method of  claim 1     wherein the plurality of different representations of an object comprise a first representation and a second representation,        wherein the plurality of sample locations comprise a first plurality of sample locations and a second plurality of sample locations,        wherein associating with each of said sample locations comprises associating the first plurality of sample locations with the first representation and the second plurality of sample locations with the second representation;        wherein computing the image contribution comprises computing sample values from the first plurality of sample locations and computing sample values from the second plurality of sample locations, and        wherein combining said image contributions comprises combining the sample values from the first plurality of sample locations and the sample values from the second plurality of sample locations to determine a value of the pixel in the image.     
     
     
       19. The method of  claim 18  wherein a number of sample locations in the first plurality of sample locations is determined in response to a variable selected from the group consisting of: viewing angle with respect to a surface of the object, importance of the object in a scene, rendering performance cost for rendering the object using the first representation of the object, orientation of the object. 
     
     
       20. The method of  claim 18  wherein the first representation and the second representation have differences selected from the group consisting of: different shading paradigms, different texture maps, different surface properties, displacement maps. 
     
     
       21. The method of  claim 18  wherein the first representation and the second representation have differences selected from the group consisting of: different geometric primitives, different geometric topologies, different levels of detail, different bump maps. 
     
     
       22. The method of  claim 18  wherein the first representation of the object and the second representation of the object have differences selected from the group consisting of: different camera times, different lens characteristics, different orientation of the object. 
     
     
       23. A memory for a computer system including a processor, the memory comprising:
   code that directs the processor to determine a first plurality of sampling locations pseudorandomly associated with at least a portion of a first representation of an object and to        determine a second plurality of sampling locations pseudorandomly associated with at least a portion of the second representation of the object store a plurality of different representations of an object in a scene to be rendered;        code that directs the processor to render locations in the portion of the first representation of the object associated with the first plurality of sampling locations to obtain first sampled values select a plurality of sample locations within an area of a pixel of an image;        code that directs the processor to render locations in the portion of the second representation of the object associated with the second plurality of sampling locations to obtain second sampled values associate with each of said sample locations one of said plurality of different representations, wherein each of said plurality of different representations is pseudorandomly associated with one of said sample locations;        code that directs the processor to combine the first sampled values for the first plurality of sampling locations and the second sampled values for the second plurality of sampling locations to form at least one sampled value for the portion of the object compute an image contribution at each of said sample locations based on the associated one of said plurality of different representations; and        code that directs the processor to record the at least one sampled value as part of an image combine said image contributions computed at each of said sample locations to form the image;        wherein the first plurality of sampling locations are not identical to the second plurality of sampling locations;        wherein the codes reside on a tangible media.     
     
     
       24. The memory of  claim 23  wherein the code that directs the processor to pseudorandomly locations select the plurality of sample locations within the area of the pixel comprises code that directs the processor to stochastically determine the plurality of sampling locations. 
     
     
       25. The memory of  claim 23  wherein the plurality of different representations includes a first representation of the portion of the object and a second representation of the portion of the object that are different; and
   wherein the first representation of the portion of the object and the second representation of the portion of the object comprise different geometric characteristics selected from the group consisting of: geometric primitives, geometric topology, displacement maps.   
 
     
     
       26. The memory of  claim 23  wherein the plurality of different representations includes a first representation of the portion of the object and a second representation of the portion of the object that are different; and
   wherein the first representation of the portion of the object and the second representation of the portion of the object comprise different levels of detail.   
 
     
     
       27. The memory of  claim 23  wherein the plurality of different representations includes a first representation of the portion of the object and a second representation of the portion of the object that are different; and
   wherein the first representation of the portion of the object and the second representation of the portion of the object comprise different shading paradigms selected from the group consisting of: texture maps, colors, materials, surface maps, displacement maps.   
 
     
     
       28. The memory of  claim 23  wherein the plurality of different representations includes a first representation of the portion of the object and a second representation of the portion of the object that are different; and
   wherein code that directs the processor to associate with each of said sample locations one of said plurality of different representation comprises code that directs the processor to determine a weighted distribution for a first plurality of sampling locations associated with the first representation of the portion of the object and a second plurality of sampling locations associated with the second representation of the portion of the object from the plurality of sampling locations in response to a factor selected from the group consisting of: a size of the portion of the object in a scene, a viewing angle with respect to the portion of the object.   
 
     
     
       29. The memory of  claim 23  wherein the plurality of different representations includes a first representation of the portion of the object and a second representation of the portion of the object that are different; and
   wherein code that directs the processor to associate with each of said sample locations one of said plurality of different representation comprises code that directs the processor to determine a number of sampling locations for a first plurality of sampling locations associated with the first representation of the portion of the object from the plurality of sampling locations in response to importance of the object in a scene.   
 
     
     
       30. The memory of  claim 23  wherein the plurality of different representations includes a first representation of the portion of the object and a second representation of the portion of the object that are different; and
   wherein code that directs the processor associate with each of said sample locations one of said plurality of different representation comprises code that directs the processor to determine a number of sampling locations for a first plurality of sampling locations associated with the first representation of the portion of the object from the plurality of sampling locations in response to a rendering performance cost for rendering the sampling locations.   
 
     
     
       31. The memory of  claim 23  wherein the plurality of different representations includes a first representation of the portion of the object and a second representation of the portion of the object that are different; and
   wherein the first representation of the portion of the object and the second representation of the portion of the object are associated with properties selected from the group consisting of: chronological times, camera characteristics, object orientations.   
 
     
     
       32. The memory of  claim 23  wherein the code that directs the processor to determine the first plurality of sampling locations associated with at least the portion of the first representation of an object and to determine the second plurality of sampling locations associated with at least the portion of the second representation of the object associate with each of said sample locations one of said plurality of different representation comprises:
   code that directs the processor to determine a plurality of sampling locations associated with a portion of an object; and    
   code that directs the processor to determine a first plurality of sampling locations and a second plurality of sampling locations from the plurality of sampling locations.   
 
     
     
       33. An apparatus comprising:
   a memory configured to store a first representation of a portion of an object and to store a second representation of the portion of the object; and        a processor coupled to the memory, wherein the processor is configured to determine locations within an area of a pixel, wherein the processor is configured to pseudorandomly associate a first representation of the portion of the object with a first plurality of locations to determine a first plurality of sampled values, wherein the processor is configured to pseudorandomly associate a second representation of the portion of the object with a second        plurality of locations to determine a second plurality of sampled values, wherein the processor is configure to combine the first plurality of sampled values and the second plurality of sampled values to determine a value for a pixel associated with the object;        wherein the processor is configured to pseudo - randomly determine the plurality of locations of the object associated with the pixel in the image;        wherein the first plurality of locations are not identical to the second plurality of locations; and        wherein the memory is also configured to store the value for the pixel in an image.     
     
     
       34. The apparatus of  claim 33     wherein the processor is also configured to determine the plurality of locations of the object, and        wherein the processor is configured to determine the first plurality of locations from the plurality of locations.     
     
     
       35. The apparatus of  claim 34  wherein the processor is also configured to determine a ratio between a number of locations in the first plurality of locations and a number of locations in the second plurality of locations. 
     
     
       36. The apparatus of  claim 34  wherein the processor is also configured to determine a number of locations in the first plurality of locations from a number of locations from the plurality of locations in response a factor selected from to one of the group consisting of: viewing angle with respect to at least the portion of the object, importance of the object in a scene, rendering performance cost for rendering the object at the first plurality of locations. 
     
     
       37. The apparatus of  claim 34  wherein the first representation of the portion of the object and the second representation of the portion of the object are different and are comprise selected from the group consisting of: different geometric primitives, different geometric topologies, different levels of detail, different bump maps. 
     
     
       38. The apparatus of  claim 34  wherein the processor is also configured to render the first representation of the object and render the second representation of the object. 
     
     
       39. The apparatus of  claim 38  wherein the first representation of the portion of the object and the second representation of the portion of the object are different and are comprise differences selected from the group of properties consisting of: times, camera characteristics, object positions. 
     
     
       40. The apparatus of  claim 34  wherein the first representation of the portion of the object and the second representation of the portion of the object are different and comprise different shading parameters selected from the group consisting of: texture maps, colors, materials, surface maps, displacement maps. 
     
     
       41. The apparatus of  claim 33  wherein the plurality of sample locations are associated with sub- pixel locations in the pixel.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.