[GAMES202 笔记] Lecture 8

[GAMES 202] Lecture 8

Light Propagation Volumes, LPV

Problem: At a shading point query the radiance from any direction

Idea: Use voxel grids to propagate radiance from direct illuminated surfaces (radiance travels along a line without attenuation)



1 Generate a radiance point set: the virtual lights Find directly lit surfaces: (first steps in RSM), and optionally map them to a reduced set of virtual light sources

2 Inject the radiance points into the radiance volume Subdivide the scene into voxels, find the enclosed virtual lights in each voxel Sum up their spherical radiance distribution (assume virtual lights are all in the center of the voxel), then SH project (~2 order)

3 Volumetric radiance propagation For each voxel: collect radiance received from its 6 faces, iterate several steps.

4 Rendering: For each shading point: use the radiance collect in the corresponding voxel.

Current Problem: No visibility term is considered! (Light leaking)

Voxel Global Illumination, VXGI

Feature: Hierachical voxels, Cone tracing, 2-bounce indirect illumination

Cons: Large computation (at runtime), and precompation {voxelization?}



1 From the light: Bake direct light’s incident radiance and normal distributions into the octree. Filter the node values in the octree, from leaf node to root.

2 Render: Cone Tracing Glossy: Trace a cone along the reflected direction of the camera ray, query in the octree based on the current size in the cone. Diffuse: sample several cones on the sphere.


SSAO: Screen Space Ambient Occlusion


Defination: Using screen space information to approximate global illumination (far better than assuming constant ambient in Blinn-Phong shading model!)

Idea: The visibility towards all directions (on ) at each shading point.

Approximations: Lambertian surface Constant indirect radiance from all directions. So we replace these two terms in the rendering equation and getting:

The result above is a weighted average of visibility. In industry, the ambient occlusion part is , we can get this by the integration approximation mentioned in Lecture3.

How to calculate visibility?

3D space: trace rays in a hemisphere of radius


Screen space: For each shading point , sample points in the 3D (hemi)sphere centered at , and count how much point is outside the object surface. How to determine if a sampled point in is outside the object? Assume: is visible by camera (i.e. passed the depth test) q is outside the surface.


Performance: How much sample points? is ok.

HBAO: Horizontal Based AO The surface normal is considered, so we only sample points from the upper hemisphere, and weight them by .


  1. 博主
    3 年前
    2021-5-08 14:38:53

    这课真是越来越难了 哭!又正好赶上大四毕业 所以更新的很慢qwq

发送评论 编辑评论

 ̄﹃ ̄
∠( ᐛ 」∠)_
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
( ๑´•ω•) "(ㆆᴗㆆ)
Source: github.com/k4yt3x/flowerhd