Systems and methods for soft shadowing in 3-d rendering
AssigneeImagination Technologies Limited
InventorsJustin P. DeCell, Luke T. Peterson
Life of this patent
Estimating the term…
Abstract
Graphics processing systems and methods provide soft shadowing effects into rendered images. This is achieved in a simple manner which can be implemented in real-time without incurring high processing costs so it is suitable for implementation in low-cost devices. Rays are cast from positions on visible surfaces corresponding to pixel positions towards the center of a light, and occlusions of the rays are determined. The results of these determinations are used to apply soft shadows to the rendered pixel values.
Claims20
A machine-implemented method of graphics processing, comprising:
- identifying visible surfaces of a scene for pixels of a frame of pixels;
- determining origins for casting rays from the visible surfaces for a plurality of the pixels towards a light;
- determining whether each of the rays is occluded from reaching the light;
- for each of the rays that are determined to be occluded from the light, recording a distance along the ray from the surface to its respective occlusion;
- for each of the rays that are determined to be not occluded from the light, searching for one or more pixels for which a ray is determined to be occluded from the light, and if at least one pixel is found in the search, determining a distance based on the distances recorded for the found pixels;
- and
- for each of the rays for which a distance is recorded:
- determining a blending region for a blending filter based on the recorded distance for the ray;
- transforming that blending region into the frame of pixels;
- blending shadow information for pixels in the frame of pixels that are within the transformed blending region;
- and
- using the blended shadow information to determine shadowing for one or more pixels corresponding to the ray.
A graphics processing unit configured to render a frame representing a scene, the graphics processing unit comprising:
- surface identification logic configured to identify surfaces within the scene;
- and
- processing logic configured to process graphics data for identified surfaces;
- wherein the graphics processing unit is configured to:
- identify visible surfaces of the scene for pixels of the frame;
- determine origins for casting rays from the visible surfaces for a plurality of the pixels towards a light;
- determine whether each of the rays is occluded from reaching the light;
- for each of the rays that are determined to be occluded from the light, record a distance along the ray from the surface to its respective occlusion;
- for each of the rays that are determined to be not occluded from the light, search for one or more pixels for which a ray is determined to be occluded from the light, and if at least one pixel is found in the search, determine a distance based on the distances recorded for the found pixels;
- and
- for each of the rays for which a distance is recorded:
- determine a blending region for a blending filter based on the recorded distance for the ray;
- transform that blending region into the frame of pixels;
- blend shadow information for pixels in the frame of pixels that are within the transformed blending region;
- and
- use the blended shadow information to determine shadowing for one or more pixels corresponding to the ray.
A non-transitory computer readable storage medium having stored thereon a computer readable description of an integrated circuit that, when processed in an integrated circuit manufacturing system, causes the integrated circuit manufacturing system to manufacture a graphics processing unit comprising:
- surface identification logic configured to identify surfaces within the scene;
- and
- processing logic configured to process graphics data for identified surfaces;
- wherein the graphics processing unit is configured to:
- identify visible surfaces of the scene for pixels of the frame;
- determine origins for casting rays from the visible surfaces for a plurality of the pixels towards a light;
- determine whether each of the rays is occluded from reaching the light;
- for each of the rays that are determined to be occluded from the light, record a distance along the ray from the surface to its respective occlusion;
- for each of the rays that are determined to be not occluded from the light, search for one or more pixels for which a ray is determined to be occluded from the light, and if at least one pixel is found in the search, determine a distance based on the distances recorded for the found pixels;
- and
- for each of the rays for which a distance is recorded:
- determine a blending region for a blending filter based on the recorded distance for the ray;
- transform that blending region into the frame of pixels;
- blend shadow information for pixels in the frame of pixels that are within the transformed blending region;
- and
- use the blended shadow information to determine shadowing for one or more pixels corresponding to the ray.
A non-transitory computer readable storage medium having stored thereon processor executable instructions that when executed cause at least one processor to:
- identify visible surfaces of a scene for pixels of a frame of pixels;
- determine origins for casting rays from the visible surfaces for a plurality of the pixels towards a light;
- determine whether each of the rays is occluded from reaching the light;
- for each of the rays that are determined to be occluded from the light, record a distance along the ray from the surface to its respective occlusion;
- for each of the rays that are determined to be not occluded from the light, search for one or more pixels for which a ray is determined to be occluded from the light, and if at least one pixel is found in the search, determine a distance based on the distances recorded for the found pixels;
- and
- for each of the rays for which a distance is recorded:
- determine a blending region for a blending filter based on the recorded distance for the ray;
- transform that blending region into the frame of pixels;
- blend shadow information for pixels in the frame of pixels that are within the transformed blending region;
- and
- use the blended shadow information to determine shadowing for one or more pixels corresponding to the ray.
Dependencies are inferred from the claim text.