Advanced Computer Graphics

From David's Wiki
\( \newcommand{\P}[]{\unicode{xB6}} \newcommand{\AA}[]{\unicode{x212B}} \newcommand{\empty}[]{\emptyset} \newcommand{\O}[]{\emptyset} \newcommand{\Alpha}[]{Α} \newcommand{\Beta}[]{Β} \newcommand{\Epsilon}[]{Ε} \newcommand{\Iota}[]{Ι} \newcommand{\Kappa}[]{Κ} \newcommand{\Rho}[]{Ρ} \newcommand{\Tau}[]{Τ} \newcommand{\Zeta}[]{Ζ} \newcommand{\Mu}[]{\unicode{x039C}} \newcommand{\Chi}[]{Χ} \newcommand{\Eta}[]{\unicode{x0397}} \newcommand{\Nu}[]{\unicode{x039D}} \newcommand{\Omicron}[]{\unicode{x039F}} \DeclareMathOperator{\sgn}{sgn} \def\oiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x222F}\,}{\unicode{x222F}}{\unicode{x222F}}{\unicode{x222F}}}\,}\nolimits} \def\oiiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x2230}\,}{\unicode{x2230}}{\unicode{x2230}}{\unicode{x2230}}}\,}\nolimits} \)

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

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

Visible to::users