Advanced Computer Graphics: Difference between revisions

From David's Wiki
Line 89: Line 89:
** Balance heuristics: <math>w_i(x)=\frac{p_i(x)}{\sum_{k=1}^{n}p_k(x)}</math>
** Balance heuristics: <math>w_i(x)=\frac{p_i(x)}{\sum_{k=1}^{n}p_k(x)}</math>
** Power heuristics: <math>w_i(x)=\frac{p_i^2(x)}{\sum_{k=1}^{n}p_k^2(x)}</math>
** Power heuristics: <math>w_i(x)=\frac{p_i^2(x)}{\sum_{k=1}^{n}p_k^2(x)}</math>
===Stratified Sampling===
* Intuition: clumping of samples is bad
* Instead of canonic uniform random variables, generate variables in strata
* Also known as "Jittered sampling"
Other stratified sampling patterns
* N-rooks (Latin hypercube)
* Quasi Monte Carlo


==Ignore==
==Ignore==
[[Visible to::users]]
[[Visible to::users]]

Revision as of 21:10, 27 February 2020

Classnotes for CMSC740 taught by Matthias Zwicker

Acceleration

How to speed up intersection calculations during ray tracing.

Object Subdivision

Bounding volume hierarchy

  • Create a tree where objects are placed together.
  • Each node corresponds to a region covering all the objects it has
  • You want to insert in some greedy way:
    • Minimize the size of each region
  • Subtrees may overlap and are unorder

Spacial Subdivision

Octtree, kd tree

Radiometry

Geometrical Optics

  • Light are rays which reflect, refract, and scatter

Solid Angle

  • Solid angle = area / radius^2 on a sphere

Spectral Radiance

  • Spectral radiance is energy per time per wavelength per solid angle per area
  • \(\displaystyle L(t, \lambda, \omega, \mathbf{x})=\frac{d^4 Q(t, \lambda, \omega, \mathbf{x})}{dt d\lambda d\omega dA^\perp}\)
where energy is \(\displaystyle Q(t, \lambda, \omega, \mathbf{x})\)

Radiance

  • power per solid angle per area
  • \(\displaystyle L(\omega, \mathbf{x}) = \frac{d^2 \Phi(\omega, \mathbf{x})}{d\omega dA^\perp}\)


Irradiance

Radiant Intensity

BRDF, Reflection Integral

Monte Carlo Integration

Suppose we want to estimate \(\displaystyle I_1 = \int_{a}^{b}f(x)dx\).
Then we can use \(\displaystyle \hat{I_1} = \frac{b-a}{N}\sum f(X_i)\) where \(\displaystyle X_1,...,X_n \sim Uniform(a,b)\).
This is because \(\displaystyle E\left[\frac{b-a}{N}\sum f(X_i)\right] = \frac{b-a}{N}\sum E[f(X_i)] = \frac{1}{N}\sum \int_{a}^{b}(b-a)f(x)(1/(b-a))dx = \int_{a}^{b}f(x)dx\)
Note that in general, if we can sample from some distribution with pdf \(\displaystyle p(x)\) then we use the estimator:

  • \(\displaystyle \hat{I} = \frac{1}{N} \sum \frac{f(X_i)}{p(X_i)}\)

Importance Sampling

Suppose we can only sample from pdf \(\displaystyle g(x)\) but we want to sample from pdf \(\displaystyle p(x)\) to yield a more reliable (less variance) estimate.
Then we can sample from \(\displaystyle p(x)\) using \(\displaystyle Y = F_{p}^{-1}(F_{g}(X))\).
Then apply the above equation.

Integration

Some notes about integration

  • Hemisphere: \(\displaystyle d\omega = \sin \theta d\theta d\phi\) where \(\displaystyle \theta \in [0, \pi/2)\) and \(\displaystyle \phi \in [0, 2\pi)\)

Path Tracing

PDF for sampling light sources

\(\displaystyle p_{\omega}(x) = \frac{1}{\# lights} * \frac{1}{area of light} * conversion\)

Refractive objects

For mirrors

In practice, refractive objects are handled as a distinct case.
You do not need to sample a direction.

For glass
  • Randomly sample either reflected or refracted ray with given probability.
  • Typically produces a lot of noice

Emitting surfaces

  • If a ray accidentally hits emitting surface, don't add emission
    • Exception: If eye ray hits emitting surface
    • Exception: If ray is generated from a refractive surface

Advanced Sampling Techniques

Multiple Importance Sampling

Weighted sampling between \(\displaystyle F_a\) \(\displaystyle F_d\)

  • Take \(\displaystyle N\) samples from each technique (j=1,...,N)
  • \(\displaystyle F=\frac{1}{N} \sum_{j=1}^{N} \sum_{i=1}^{n} w_i(X_{i,j}) \frac{f(X_{i,j})}{p_i(X_{i,j})}\)
    • Make sure \(\displaystyle \sum_{i=1}^{n}w_i(x) = 1\)
  • Weights for provable variance reduction
    • Balance heuristics: \(\displaystyle w_i(x)=\frac{p_i(x)}{\sum_{k=1}^{n}p_k(x)}\)
    • Power heuristics: \(\displaystyle w_i(x)=\frac{p_i^2(x)}{\sum_{k=1}^{n}p_k^2(x)}\)

Stratified Sampling

  • Intuition: clumping of samples is bad
  • Instead of canonic uniform random variables, generate variables in strata
  • Also known as "Jittered sampling"

Other stratified sampling patterns

  • N-rooks (Latin hypercube)
  • Quasi Monte Carlo

Ignore

Visible to::users