10 likes | 139 Views
Cone-Culled Soft Shadows Louis Bavoil, Claudio T. Silva University of Utah. Introduction. Cone Culling
E N D
Cone-Culled Soft Shadows Louis Bavoil, Claudio T. Silva University of Utah Introduction Cone Culling Assuming that the light are spherical, the shadow rays between a surface element and the light describe a cone. The idea is to first find all the shadow-map photons blocking the light from a surface point. An octree is built from the 3D points of the shadow map. On a CPU, for every pixel, the octree is culled hierarchically using sphere-cone tests, and the resulting set of points is culled using point-cone tests. Solid Angles Each culled shadow map sample contributes a solid angle to the shadow at a surface element. The solid angle of a cone is: SolidAngle(Cone) = 2π.(1-cos(HalfAngle)) Assuming that all the shadow rays have the same intensity, the exact contribution of a photon is the solid angle of the piece of surface it represents. This piece of surface is approximated by the bounding sphere of the photon, which is the sphere passing through the corners of the shadow map pixel, in world-space. The solid angle of a photon is the solid angle of its associated cone normalized by the solid angle of the light. Solution Ray Tracing In high-quality rendering, soft shadows are usually rendered using stochastic ray tracing. For each visible surface point, hundreds of rays are shot to each light, which is slow. Shadow Mapping In interactive rendering on GPU, hard shadows are usually rendered using shadow mapping. A shadow map is a picture of the scene from the view of a point light. Eachphoton(shadow-map pixel) stores a distance from the light to the nearest surface point along a ray. Percentage closer filtering (PCF) is used to soften the shadow edges. PCF shadows have non-physics-based penumbra and need to be tuned to avoid self-shadowing artifacts. Soft Shadows Soft shadows are important for realistic computer graphics. Hard shadows Soft shadows Light Ray Tracing Results Scene = 7,000 triangles; 1 spherical light. CPU = Opteron @ 2.2 Ghz; 1MB cache Soft Shadows: Shadow Mapping Problem Ray Tracing 800x600, 2000spp, 10.3 min Cone Culling 800x600, 1024^2 photons, 22 s Shadow Extent: World-Space Shadow Map (green) + Octree (black) Ray Tracing 800x600, 2000spp, 5.2 min Cone Culling 800x600, 1024^2 photons, 12 s Input Data Instead of sampling the light like in ray-tracing, a set of hit points (shadow map) is computed using rasterization from the light. The shadow map is in the form of an RGBA float texture, storing world coordinates of photons. Problem For each surface element, what are the photons blocking the light, and what are their shadow contribution? • The artifacts in the cone-culled shadows are a combination of the following issues: • Gaps between shadow map pixels holes in the shadows • Overlap between bounding spheres larger shadows • Partial inclusion of shadow map pixels in the light cone larger shadows This work was started at Sony Computer Entertainment America Research & Development in collaboration with Alan Heirich and Gabor Nagy.