Please enable Javascript to view the contents

·  ☕ 8 分钟

## 1. 采样理论

$$F(\omega)=\int_{-\infty}^{+\infty}f(x)e^{-i2\pi\omega x}\mathrm dx$$

$$f(x)=\int_{-\infty}^{+\infty}F(\omega)e^{i2\pi\omega x}\mathrm d\omega$$

$$\int f(x)\delta (x)\mathrm dx=f(0)$$

$$III_T(x)=T\sum_{i=-\infty}^{\infty}\delta(x-iT)$$

$$III_T(x)f(x)=T\sum_i \delta(x-iT)f(iT)$$
shah函数相当于对$f(x)$以一定的采样率进行采样，如下图所示

$$(III_T(x)f(x))\otimes r(x)$$

$$f(x)\otimes g(x)=\int_{-\infty}^{+\infty}f(x')g(x-x')\mathrm dx'$$

$$\tilde f(x)=T\sum_{i=-\infty}^{\infty}f(iT)r(x-iT)$$

\begin{aligned} \mathcal F\{f(x)\otimes g(x)\}&=F(\omega)G(\omega)\\\\ \mathcal F\{f(x)g(x)\}&=F(\omega)\otimes G(\omega) \end{aligned}

\begin{aligned} \mathcal F\{III_T(x)f(x)\}&=\int_{-\infty}^{+\infty}F(\omega')III_{1/T}(\omega-\omega')\mathrm dx'\\\\ &=\int_{-\infty}^{+\infty}F(\omega')\frac{1}{T}\sum_{i=-\infty}^{\infty}\delta (\omega-\frac{i}{T}-\omega')\mathrm dx'\\\\ &=\frac{1}{T}\sum_{i=-\infty}^\infty F(\omega-\frac{i}{T}) \end{aligned}

$$\Pi_T(x)=\begin{cases} 1/(2T)&|x|<T\\\\ 0&\mathrm{otherwise} \end{cases}$$

$$\tilde F(\omega)=(F(\omega)\otimes III_{1/T}(\omega))\Pi_T(\omega)$$

$$\tilde f(x)=(f(x)III_T(x))\otimes \mathrm{sinc}(x)=\sum_{-\infty}^{\infty}\mathrm{sinc}(x-i)f(i)$$

• 非均匀采样，例如采用采样函数：
$$\sum_{i=-\infty}^{\infty}\delta\left(x-\left(i+\frac{1}{2}-\zeta\right)T\right)$$
其中$\zeta$为$[0,1]$的随机数

• 自适应采样

• 预滤波

## 2. 随机采样序列

### 2.1. 随机采样模式的差异性

$$B=\{[0, v_1]\times[0, v_2]\times\cdots\times[0, v_n]\}$$

$$D_N(B,P)=\sup_{b\in B}\left|\frac{\#\{x_i\in b\}}{N}-V(b) \right|$$

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72  // https://dl.acm.org/doi/10.5555/1921479.1921500 /*GPU Random Numbers via the Tiny Encryption Algorithm*/ uint tea(in uint val0, in uint val1) { uint v0 = val0; uint v1 = val1; uint s0 = 0; for (uint n = 0; n < 16; n++) { s0 += 0x9e3779b9; v0 += ((v1 << 4) + 0xa341316c) ^ (v1 + s0) ^ ((v1 >> 5) + 0xc8013ea4); v1 += ((v0 << 4) + 0xad90777d) ^ (v0 + s0) ^ ((v0 >> 5) + 0x7e95761e); } return v0; } uint init_random(in uvec2 resolution, in uvec2 screen_coord, in uint frame) { return Tea(screen_coord.y * resolution.x + screen_coord.x, frame); } // https://www.pcg-random.org/ uint pcg(inout uint state) { uint prev = state * 747796405u + 2891336453u; uint word = ((prev >> ((prev >> 28u) + 4u)) ^ prev) * 277803737u; state = prev; return (word >> 22u) ^ word; } uvec2 pcg2d(in uvec2 v) { v = v * 1664525u + 1013904223u; v.x += v.y * 1664525u; v.y += v.x * 1664525u; v = v ^ (v >> 16u); v.x += v.y * 1664525u; v.y += v.x * 1664525u; v = v ^ (v >> 16u); return v; } uvec3 pcg3d(in uvec3 v) { v = v * 1664525u + uvec3(1013904223u); v.x += v.y * v.z; v.y += v.z * v.x; v.z += v.x * v.y; v ^= v >> uvec3(16u); v.x += v.y * v.z; v.y += v.z * v.x; v.z += v.x * v.y; return v; } float rand(inout uint seed) { uint r = pcg(seed); return uintBitsToFloat(0x3f800000 | (r >> 9)) - 1.0f; } vec2 rand2(inout uint prev) { return vec2(rand(prev), rand(prev)); } vec3 rand3(inout uint prev) { return vec3(rand(prev), rand(prev), rand(prev)); } 

### 2.2. Stratified采样

Stratified采样的核心思想是将采样域分为不重叠区域，然后对每一个区域进行采样。这样能够使得生成的随机点覆盖更广、更均匀，如下图所示：

• 随机模式(a)是一种无效的的采样模式，因为大量区域没有被采样到，图形采样不足
• 统一分层模式(b)分布较好，但会加剧混叠效应
• 分层抖动模式(c)在保持分层优势的同时，将均匀模式的混叠转化为高频噪声

### 2.3. Latin Hypercube采样

Latin Hypercube采样（LHS）是分层采样的一种优化，用于避免直接分层采样可能带来的样本在某一维上发生聚集到局部的情况，如下图所示：

1. 先将采样区域$[0,1)^2$分成$n\times n$部分
2. 采样对角线部分区域

Wenbo Chen
CG Student