US2013155065A1PendingUtilityA1

System and method for creating motion blur

Assignee: ADVANCED MICRO DEVICES INCPriority: Mar 30, 2005Filed: Feb 15, 2013Published: Jun 20, 2013
Est. expiryMar 30, 2025(expired)· nominal 20-yr term from priority
G06T 13/20
50
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

An embedded, programmable motion blur system and method is described. Embodiments include receiving a plurality of vertices in a graphics processing unit (GPU), displacing at least one vertex, receiving a primitive defined by at least one of the displaced vertices, and generating a plurality of primitive samples from the primitive. The receiving of a plurality of vertices, the displacing, the receiving a primitive, and the generating are all performed prior to rendering of the scene. The system includes a central processing unit (CPU), a memory unit coupled to the CPU, and at least one programmable GPU. The GPU includes a vertex shader and a geometry shader programmable to perform geometry amplification and generate a plurality of primitive samples, both of these performed before the scene is rendered.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method for creating motion blur in a computer-generated scene, the method comprising:
 receiving a plurality of vertices in a graphics processing unit (GPU), the plurality of vertices associated with a first object;   displacing at least one vertex of the plurality of vertices;   receiving, in the GPU, a primitive defined by at least one of the displaced vertices, the primitive having an initial position; and   generating a plurality of primitive samples from the primitive, wherein a last one of the generated primitive samples has an aperture extent position and wherein each of the remaining generated primitive samples has a position between the initial position and the aperture extent position;   wherein the receiving of a plurality of vertices, the displacing, the receiving a primitive, and the generating are all performed prior to rendering of the scene.   
     
     
         2 . The method of  claim 1 , wherein the generating of the plurality of primitive samples further includes delimiting at least one convex hull based on the initial and aperture extent positions. 
     
     
         3 . The method of  claim 2 , wherein generating the plurality of primitive samples further includes constructing the plurality of primitive samples in the delimited convex hull at programmable intervals. 
     
     
         4 . The method of  claim 1 , wherein the primitive is a triangle defined by three vertices. 
     
     
         5 . The method of  claim 1 , further comprising:
 performing the displacing on at least one second vertex in a second plurality of vertices corresponding to a second object moving in a direction different from a moving direction of the first object;   receiving a second primitive defined by at least one of the displaced second vertices; and   performing the generating to generate a second plurality of primitive samples from the second primitive to create motion blur of the second object;   wherein the performing of the displacing on at least one second vertex, the receiving of the second primitive, and the generating of a second plurality of primitive samples are all performed prior to rendering of the scene.   
     
     
         6 . A graphics processing system configured to create motion blur in a scene, comprising:
 a central processing unit (CPU);   a memory unit coupled to the CPU;   at least one programmable graphics processing unit (GPU) coupled to the CPU and to the memory, wherein the at least one GPU comprises:
 a vertex shader, programmable to receive an input vertex that is present in the scene, and to output a displaced vertex before the scene is rendered, the vertex being associated with a first object; and 
 a geometry shader, programmable to:
 perform geometry amplification of a received primitive having an initial position, and 
 generate a plurality of primitive samples by performing operations on the received primitive, wherein a last one of the generated primitive samples has an aperture extent position and wherein each of the remaining generated primitive samples has a position between the initial position and the aperture extent position; 
 
 wherein the performing of geometry amplification and the generating of a plurality of primitive samples are performed before the scene is rendered. 
   
     
     
         7 . The system of  claim 6 , further comprising buffer resources used by the vertex shader and the geometry shader to store shared data. 
     
     
         8 . The system of  claim 6 , wherein the geometry shader is further programmable to generate the plurality of primitive samples by delimiting at least one convex hull based on the first and second positions. 
     
     
         9 . The system of  claim 8 , wherein the geometry shader is further programmable to generate the plurality of primitive samples by constructing the plurality of primitive samples in the delimited convex hull at programmable intervals. 
     
     
         10 . The system of  claim 6 , wherein the received primitive is a triangle defined by three vertices. 
     
     
         11 . The system of  claim 6 , further comprising:
 a second vertex shader programmable to receive a second input vertex and to output a second displaced vertex before the scene is rendered, the second vertex corresponding to a second object moving in a direction different from a moving direction of the first object; and   a second geometry shader programmable to perform the geometry amplification of a second received primitive and to perform the generating to generate a second plurality of primitive samples from the second primitive to create motion blur of the second object;   wherein the performing of geometry amplification and the generating are performed before the scene is rendered.   
     
     
         12 . The system of  claim 6 , further comprising a rasterizer coupled to receive the displaced and amplified primitives. 
     
     
         13 . The system of  claim 12 , further comprising a pixel shader coupled to receive an output of the rasterizer. 
     
     
         14 . The system of  claim 13 , further comprising a frame buffer coupled to the pixel shader for storing frames to be displayed. 
     
     
         15 . A non-transitory computer-readable medium having stored thereon instructions which, when executed, cause the creation of motion blur in an animated scene, the instructions including:
 receiving a plurality of vertices;   displacing at least one vertex of the plurality of vertices;   receiving a primitive defined by at least one of the displaced vertices, the particular primitive having an initial position; and   generating a plurality of primitive samples from the primitive by performing operations on the primitive, wherein a last one of the generated primitive samples has an aperture extent position and wherein each of the remaining generated primitive samples has a position between the initial position and the aperture extent position;   wherein the receiving of a plurality of vertices, the displacing, the receiving a primitive, and the generating a plurality of primitive samples are all performed prior to rendering of the scene.   
     
     
         16 . The non-transitory computer-readable medium of  claim 15 , wherein generating the plurality of primitive samples further includes delimiting at least one convex hull based on the initial and aperture extent positions. 
     
     
         17 . The non-transitory computer-readable medium of  claim 16 , wherein generating the plurality of primitive samples further includes constructing the plurality of primitive samples in the delimited convex hull at programmable intervals. 
     
     
         18 . The non-transitory computer-readable medium of  claim 15 , wherein the primitive is a triangle defined by three vertices. 
     
     
         19 . The non-transitory computer-readable medium of  claim 15 , wherein the instructions further include:
 performing the displacing on at least one second vertex in a second plurality of vertices corresponding to a second object moving in a direction different from a moving direction of the first object;   receiving a second primitive defined by at least one of the displaced second vertices; and   performing the generating to generate a second plurality of primitive samples from the second primitive to create motion blur of the second object;   wherein the performing of the displacing on at least one second vertex, the receiving of the second primitive, and the generating of a second plurality of primitive samples are all performed prior to rendering of the scene.

Join the waitlist — get patent alerts

Track US2013155065A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.