Skip to Content
Rendering

Sampling & Reconstruction

2020-04-14Original-language archivelegacy assets may be incomplete

Math

  • Fourier Series: 任意周期为 11 的函数可表示为 a02+n=1N(ancos(2πnt)+bnsin(2πnt))\frac{a_0}{2}+\sum_{n=1}^N(a_n\cos(2\pi nt)+b_n\sin(2\pi nt))
  • f(x)=n=NNcne2πint,cn=01e2πintf(t)dtf(x)=\sum_{n=-N}^Nc_ne^{2\pi int},c_n=\int_0^1e^{-2\pi int}f(t)dt
  • (fg)(t)=g(tx)f(x)dx(f*g)(t)=\int_{-\infty}^{\infty} g(t-x)f(x)dx
  • Π(x)=[x1]\Pi(x)=[|x|\leq 1]
  • (ΠΠ)(x)=Λ(x)(\Pi*\Pi)(x)=\Lambda(x)
  • Radical Inverse
    • n=aka2a1n=a_k\cdots a_2a_1
    • Φb(n)=0.a1a2ak\Phi_b(n)=0.a_1a_2\cdots a_k
  • Van der Corput Sequence: xi=Φ2(i)x_i=\Phi_2(i)
  • Halton Sequence: xi=(Φ2(i),Φ3(i),Φ5(i),,Φpd(i))x_i=(\Phi_2(i),\Phi_3(i),\Phi_5(i),\dots,\Phi_{p_d}(i))
  • Hammersley Sequence: xi=(i12N,Φ2(i),Φ3(i),Φ5(i),,Φpd1(i))x_i=(\frac{i-\frac{1}{2}}{N},\Phi_2(i),\Phi_3(i),\Phi_5(i),\dots,\Phi_{p_{d-1}}(i))

Reconstruction

  • 时间域
    • 冲激串 δT\delta_T
    • 重建 f~(x)=(δf)r\widetilde f(x)=(\delta f)\otimes r
    • 重构核 rr
      • sinc
      • 高斯
      • 三角
  • 频率域
    • F~=(F(ω)δ1/T)ΠT(ω)\widetilde F=(F(\omega)\otimes \delta_{1/T})\Pi_T(\omega)
  • reconstruction filter
    • ideal ones not exist
    • Box Filter
    • Triangle Filter
    • Gaussian Filter
    • Mitchell Filter
    • Windowed Sinc Filter
  • Denoising

Aliasing

  • Small triangles
  • Stairstepping(jaggies)
  • Moire Patterns
  • 车轮倒转

Source of High Frequencies

  • Geometry
    • Edges, Vertices, sharp boundaries
    • silhouettes
  • Texture
  • Illumination

Antialiasing Techiques

  • Nonuniform sampling: i=δ(x(i+12ξ)T)\sum_{i=-\infty}^{\infty}\delta(x-(i+\frac{1}{2}-\xi)T)
    • noise better than aliasing
  • Adaptive sampling: Taking more samples in high-frequency regions
  • Prefiltering: mipmap

Evaluating

  • Blue noise property
    • 白噪:完全随机采样,处处有能量
    • 蓝噪:低频无能量,低频完美重构,高频转化为噪声
  • gittered grid
  • Poisson Disk Sampling
    • Dart Throwing: keep throwing darts into a domain with minimum distance constrain
    • Lloyd's Relaxation
      • construct voronoi
      • move to centroid
    • Tiled
  • Discrepany: how "uniform" the sampling pattern is
    • DN(B,P)=bB#{xib}NVol(b)D_N(B,P)=|\sum_{b\in B}\frac{\#\{x_i\in b\}}{N}-\text{Vol}(b)|

采样方法

  • Uniform Sampling
  • Random Sampling
  • Blue noise Sampling
  • Stratified Sampling
    • Uniform sample + random perturbation (jittering)
  • Low-Discrepancy Sampling(quasi-random sampling)
    • Sample with Van der Corput Sequence DN(P)=O(logNN)D^*_N(P)=O(\frac{\log N}{N})
    • Sample with Halton Sequence: DN(P)=O((logN)dN)D^*_N(P)=O(\frac{(\log N)^d}{N})