diff --git a/docs/research/analytic-noise-integration-prior-art.md b/docs/research/analytic-noise-integration-prior-art.md new file mode 100644 index 00000000..44810215 --- /dev/null +++ b/docs/research/analytic-noise-integration-prior-art.md @@ -0,0 +1,425 @@ +# Analytic Noise Integration Along Warped Rays: Prior Art Survey + +This is the facts file for an idea the operator raised on 2026-10-03: + +> "I would be happy if we could just skip the space we know has no meaningful structure +> because it's outside of the noise warp range. But what you said about affine arithmetic +> makes me wonder if we can somehow, even within the distorted domain, figure out a series +> of optimal (in terms of extracting structure over multiple frames) spans for which we can +> analytically integrate the noise gradients over those ray segments." + +Self's sketch, as given to this pass: + +- Simplex noise along a straight ray is piecewise polynomial in t, so its line integral + is closed-form per crossed cell. +- A domain warp p + w(p) is nearly affine over a short span, with an affine-arithmetic + error bound, so within that span the warped ray is a straight line in noise space. +- Low octaves are integrated exactly. High octaves are replaced by their expectation, + with a variance bound. +- Clamped density max(0, n - c) is integrated by root-finding per piece. +- Spans are cached and refined across frames. + +Eyes pass, 2026-10-03. This file gives facts and evidence pointers only. It makes no +recommendation. + +Verification marks: + +- **[fetched]** The claim was read in the cited source's full text during this pass. + PDFs were converted with `pdftotext -layout`. +- **[search]** The claim came from a search-result summary or abstract, not a full read. +- **[derivation]** The claim is elementary mathematics worked out in this pass from a + fetched definition. It is not a claim made by any cited source. +- **[not found]** The pass searched for this kind of work and found nothing. + +## 0. Premises of the sketch, checked against definitions + +- **[fetched] + [derivation]** Simplex noise kernel degree. Gustavson, *Simplex noise + demystified* (2005), gives the 3D reference code. Each of the four simplex corners + contributes `t^4 * dot(g, d)` with `t = 0.6 - |d|^2`, and the contribution is zero + when `t < 0`. On a straight ray `d` is affine in the ray parameter, so `|d|^2` is + quadratic and each corner term is a polynomial of degree 8 + 1 = 9. The pieces have + two kinds of breakpoint: the simplex faces the ray crosses (where the corner set + changes), and the entry and exit of each corner's support sphere (`|d|^2 = 0.6`). + Both kinds are roots of polynomials of degree 2 or lower in the ray parameter, so the + breakpoints are closed-form. With the 0.6 radius, the support extends past the + simplex, and the reference code truncates it at the simplex boundary. The resulting + small discontinuity across faces is a known property of that constant. It does not + change the piecewise-polynomial structure. +- **[derivation]** Classic Perlin noise (Perlin 2002 quintic fade `6t^5 - 15t^4 + 10t^3`, + read in Gustavson's text **[fetched]**) is, within one lattice cube along a straight + ray, a polynomial of degree 3 x 5 + 1 = 16. Its breakpoints are the cube faces. +- **[fetched]** Piece count grows with frequency. Balint (CESCG 2019, section 2) + states that many noise functions are piecewise integrable, but the number of pieces + is linear in the noise frequency. Their cost is therefore similar to numerical + integration. Balint designed cosine noise to escape this limit (section 1.1 below). +- **[derivation]** For the clamp `max(0, n - c)` on a degree-9 or degree-16 piece, + the roots of `n - c` are needed. Polynomials of degree 5 or more have no general + closed-form roots (Abel-Ruffini), so the clamp needs numerical root isolation per + piece, for example Sturm sequences, Descartes' rule or Bernstein-basis subdivision. + The integral between the isolated roots is closed-form. + +## 1. Closed-form line integrals of noise, and analytic optical depth + +### 1.1 Cosine noise: Balint, *Closed Form Transmittance in Heterogeneous Media Using Cosine Noise*, CESCG 2019 (non-peer-reviewed) + +- **[fetched]** It computes noise defined as an offset plus a sum of cosines of + `x . S_i`. The paper uses 24 quasirandom vectors S_i, with Sobol directions on the + sphere and lengths in [0.8, 1.2], to look roughly like Perlin noise. Fractal octaves + are further cosine sets. Its line integral is a sum of sines, so the optical depth + over any segment is exact. The paper says this takes two noise samples, one at each + segment end. It also gives closed-form distance sampling, by inverting the integral + with binary search. +- **[fetched]** Cost: two noise-sized evaluations per segment, independent of octave + count. Table 1 reports transmittance evaluation at 179 ms closed-form against + 1250 ms for delta tracking, about 7x faster. A real-time demo with 16 samples ran + at 80 fps at 675 x 1200 (RTX 2080 Ti). +- **[fetched]** Error: exact, with no error term, for the bare sum. The limits are + stated in section 6. Multiplying by a shape function, or composing with a shaping + function, generally destroys the elementary antiderivative. The workarounds + recover exactness only piecewise: constant multipliers between bounding isosurfaces, + or a cubic polynomial interpolant of the multiplier along the ray, since the product + of a polynomial and cosines has an elementary antiderivative. Negative densities from + a low offset are handled by clamping samples and integrals, which is not an exact + `max(0, .)` integral. Domain warp is not discussed. + +### 1.2 Gabor kernels: Condor, Hermann, Yurtsever, Didyk, *Gabor Fields: Orientation-Selective Level-of-Detail for Volume Rendering*, ACM TOG 45(4) art. 62, 2026 (arXiv 2602.05081) + +- **[fetched]** It computes closed-form definite line integrals of anisotropic 3D Gabor + kernels along an arbitrary ray segment (eq. 9). Each kernel is whitened into its + canonical space with a ZCA matrix, so any covariance, that is any affine-transformed + kernel, uses the same formula. The segment integral is the real part of a + complex-erf (Faddeeva) difference. +- **[fetched]** Cost: the complex erf is evaluated by a truncated Taylor series with + early exit, capped at 16 terms. Segments shorter than 1e-4 in whitened units fall back + to a single midpoint evaluation. Kernels are spatially clamped with an adaptive extent + that shrinks with frequency (eq. 15). The paper also renders procedural clouds as + Gaussians modulated by Gabor noise. +- **[fetched]** Error: each segment integral is exact apart from the erf truncation. + Orientation-selective masking of kernels whose line integral is near zero trades a + small error, or variance under stochastic selection, for speed. The paper reports + about 1.78x to 1.96x speedups. Per segment the density-integral estimator is + unbiased, but transmittance is biased by Jensen's inequality. Eq. 19 gives the + second-order bias as `0.5 * Var(tau) * exp(-E[tau])`. + +### 1.3 Analytically integrable media, older + +- **[search]** Iser, *Real-time Light Transport in Analytically Integrable + Quasi-heterogeneous Media*, CESCG 2018. Balint cites it **[fetched]** as using only + exponential and spherical density functions. +- **[fetched via Gabor Fields related work]** The closed-form Gaussian-primitive + transmittance line (Knoll et al. 2021; Condor et al. 2025, *Don't Splat your + Gaussians*) is the base that Gabor Fields extends. + +### 1.4 Piecewise-polynomial segment integration in scientific volume rendering + +- **[fetched]** Engel, Kraus, Ertl, *High-Quality Pre-Integrated Volume Rendering Using + Hardware-Accelerated Pixel Shading*, Graphics Hardware 2001. The scalar field along + the ray is assumed piecewise linear between samples. The volume rendering integral of + each linear segment, through an arbitrary nonlinear transfer function, is then one + lookup in a table indexed by front scalar, back scalar and segment length. Cost: one + texture lookup per segment, plus recomputing the table when the transfer function + changes. Error: exact for the piecewise-linear model. The model error is the + scalar field's deviation from linear between samples. +- **[search]** Williams, Max, Stein, *A High Accuracy Volume Renderer for Unstructured + Data*, IEEE TVCG 4(1), 1998. Exact integration through tetrahedra with linearly + varying scalar and piecewise-linear transfer functions. + +### 1.5 Polynomial noise along a ray + +- **[not found]** No published closed-form segment integral of Perlin or simplex noise + was found, as a method or a code library. Balint's remark in section 0 is the only + published statement found on the piecewise approach, and it dismisses it on cost + grounds. + +## 2. Noise designed for analytic filtering or integration + +- **[fetched]** Lagae, Lefebvre, Drettakis, Dutré, *Procedural Noise using Sparse Gabor + Convolution*, ACM TOG 28(3), 2009. It computes a sparse-convolution noise of Poisson + impulses with Gabor kernels. Each kernel is a Gaussian in frequency, so filtering with + a Gaussian pixel filter multiplies Gaussians, which gives an analytically filtered + kernel. Cost: the paper typically uses 100 impulses per kernel, or 25 to 50 at lower + densities. Table 2 (GTX 280) reports, at 20 impulses per cell, 290 fps for 2D noise, + 111 fps for unfiltered surface noise and 50 fps for filtered surface noise. Error: + the filtering is exact for a Gaussian filter. The noise statistics converge with + impulse density. +- **[fetched]** Lagae, Drettakis, *Filtering Solid Gabor Noise*, ACM TOG 30(4), 2011. It + slices solid Gabor noise, filters each slice of each Gabor kernel, and gets a + generalisation of the projection-slice theorem. It also states that wavelet noise + integrates solid noise perpendicular to the surface. That is a line integral of noise + along the normal, done in the basis. +- **[search]** Cook, DeRose, *Wavelet Noise*, ACM TOG 24(3), 2005. A quadratic B-spline + noise band, which is almost band-limited, built from a precomputed coefficient tile. + Its 3D-to-surface projection integrates the noise along the normal. The original PDF + was not retrievable in this pass. Pixar and ACM both returned HTML. +- **[fetched, survey]** Lagae et al., *A Survey of Procedural Noise Functions*, CGF 2010. + - Lewis's sparse convolution noise has a power spectrum equal to the kernel's, + scaled. + - Frequency clamping (Norton, Rockwood, Skolmoski 1982) cancels bands above the filter + rate. It works only for narrowly band-pass noise, and Perlin noise is only weakly + band-pass. + - Nonlinear functions of noise, such as thresholds and colour maps, are not filtered + by filtering the noise. That is unsolved in general. + - Heidrich, Slusallek, Seidel 1998 (below) computes an area average of a procedural + shader with an error bound, using affine arithmetic. + - Perlin noise's amplitude distribution is visibly non-Gaussian, because it is zero at + every lattice point and has few gradients. The other noises surveyed are + approximately Gaussian. +- **[fetched, via the survey above]** "Filtering procedural textures" lineage: + - Rhoades et al. 1992 filters the colour table over `[N - e, N + e]`. + - Hart et al. 1999 sets `e` from the local noise gradient. + - Lagae 2009 sets the range from the analytically known loss of variance. + +## 3. Affine arithmetic, reduced AA, Taylor models, and bounds on warps + +### 3.1 Gamito and Maddock + +- **[fetched]** Gamito, Maddock, *Ray Casting Implicit Fractal Surfaces with Reduced + Affine Arithmetic*, The Visual Computer 23:155-165, 2007. The full method is read in + Gamito's PhD thesis (Sheffield), sections 5.3 to 5.4. + - **Computes:** a root of `g(t) = 0` along a ray, by subdividing intervals of t. Each + interval is tested with an inclusion `G(T)` computed in reduced AA (Messine's AF1). + The form is `t0 + t1 e1 + t2 e2`: e1 is the shared ray-parameter symbol, and e2 + absorbs every new nonlinearity by condensation after each operation. + - **Noise in RAA:** gradient-noise kernels lose no correlation under RAA, because the + three multiplications are local to one kernel and the cubic Hermite fade is done by + a single Chebyshev affine approximation. The same holds for sparse convolution + noise. Cellular noise loses accuracy, because `min` needs cancellation between + condensed terms, and the F2 and F3 kernels were not implementable. + - **Interval optimisation:** the parallelogram `g1/t1` slope plus or minus `g2` + shrinks `[ta, tb]` before subdividing (eq. 5.27). + - **Cost:** Table 5.2, gradient-noise hypertexture, average evaluations per ray and + time: + + | Method | Evaluations per ray | Time | + |---|---|---| + | IA | 116.57 | 7m35s | + | Standard AA | 61.69 | 40m41s | + | RAA | 61.69 | 6m43s | + | RAA + interval optimisation | 46.39 | 5m04s | + + RAA costs three numbers per quantity against two for IA. Standard AA is tight + but slow because its error-symbol lists grow. + - **Error bound:** conservative inclusion, as proven for AA by Comba and Stolfi 1993. + Rounding error is ignored. +- **[fetched]** Gamito thesis, chapter 9, *Surface Deformation with Flow Mapping*. + - Domain deformation `f(d(x))` with `d` defined by streamlines, that is by an ODE. + This is the case closest to a domain warp in this survey. + - Gamito states that a robust and tight AA estimate of the deformed ray `s(t)` was not + obtainable through the numerical ODE solution, so robustness was given up. + - The replacement test uses Lipschitz unbounding spheres at `s(ta)` and `s(tb)`. A + span is skipped if `|s(tb) - s(ta)| < min(ra, rb)` (eq. 9.23). A sharp turn of the + deformed ray between the endpoints can make this test wrong. + - He names truncated Taylor-series range estimation (Nedialkov et al. 2004) as the + possible fix, at higher cost and complexity. + +### 3.2 Other affine and interval arithmetic sources + +- **[fetched, bibliographic]** Comba, Stolfi, *Affine Arithmetic and its Applications to + Computer Graphics*, SIBGRAPI 1993. de Figueiredo, Stolfi, *Affine Arithmetic: Concepts + and Applications*, Numerical Algorithms 37, 2004. Gamito cites both. AA keeps + first-order correlations through shared noise symbols. Each nonaffine operation adds + one symbol, whose coefficient bounds the linearisation error. Chebyshev or min-range + affine approximations give that coefficient for unary functions. +- **[search]** Knoll, Hijazi, Kensler, Schott, Hansen, Hagen, *Fast Ray Tracing of + Arbitrary Implicit Surfaces with Interval and Affine Arithmetic*, CGF 28(1), 2009. + Inclusion-preserving reduced AA, SIMD CPU at interactive rates, and a stackless GPU + version. +- **[fetched, abstract]** Fryazinov, Pasko, Comninos, *Fast Reliable Ray-tracing of + Procedurally Defined Implicit Surfaces Using Revised Affine Arithmetic*, Bournemouth + TR-NCCA-2009-04. Revised AA, which also keeps one accumulated error symbol, is + reported fastest among the IA and AA variants compared, including on pseudo-random + procedural objects. +- **[fetched]** Sharp, Jacobson, *Spelunking the Deep: Guaranteed Queries on General + Neural Implicit Surfaces via Range Analysis*, ACM TOG 41(4), 2022. This is AA through + long compositions of nonlinear layers, which is structurally like noise composed with + a warp. Table 1 compares the variants. Time is relative to one scalar evaluation, + length is the 1D region that can be certified, and raycast time is relative to the + best method: + + | Variant | Time | Length | Raycast time | + |---|---|---|---| + | Interval | 2.4x | 0.011 | 34.3x | + | Affine-full | 95.3x | 0.821 | 8.4x | + | Affine-fixed (no new symbols kept, extra error condensed into one) | 4.7x | 0.306 | 1.0x | + + The paper uses affine-fixed for ray casting and affine-full for 3D queries. +- **[fetched, survey quote of abstract]** Heidrich, Slusallek, Seidel, *Sampling of + Procedural Shaders using Affine Arithmetic*, ACM TOG 17(3):158-176, 1998. It computes + the average of a procedural shader over a finite area, with an AA error bound. +- **[fetched, project page]** Keeter, *Massively Parallel Rendering of Complex + Closed-Form Implicit Surfaces*, ACM TOG 39(4), 2020. Interval arithmetic over a + shallow, high-branching tile hierarchy does two things: it skips empty tiles, and it + prunes the expression tape per tile. One benchmark drops the expression size by about + two orders of magnitude. It requires only C0 continuity, so warps and blends that break + Lipschitz continuity are allowed. + +### 3.3 Lipschitz bounds through warps + +- **[fetched]** Galin, Guérin, Paris, Peytavie, *Segment Tracing Using Local Lipschitz + Bounds*, CGF 39(2), 2020. It computes a local Lipschitz bound over a ray segment + instead of a global one. Section 4.4 covers warps `f o w^-1`, and bounds the gradient + by the product of the field gradient bound over the transformed segment and the + Jacobian norm bound over the segment. Cost: fewer field queries than sphere tracing, + with no acceleration structure. Error: conservative, if the local bounds are + conservative. +- **[fetched]** Seyb, Jacobson, Nowrouzezahrai, Jarosz, *Non-linear Sphere Tracing for + Rendering Deformed Signed Distance Fields*, ACM TOG 38(6), 2019. + - **Computes:** the ray in deformed space as a curve in undeformed space, by + integrating an ODE whose derivative is the inverse-deformation Jacobian times the ray + direction. An initial value comes from rasterising a deformed hull mesh. + - **Error control:** step requirements for the curve are separated from those for the + SDF. Adaptive Runge-Kutta (RKF45 and DP54 evaluated) is used far from the surface, + and forward Euler near it, against an error tolerance. + - **Scope:** surfaces only. There is no density integration. +- **[fetched]** Moinet, Neyret, *Fast Sphere Tracing of Procedural Volumetric Noise for + Very Large and Detailed Scenes*, CGF 2025 (Eurographics), HAL hal-05046040. + - **Computes:** sphere tracing of FBM density fields, using first- and second-order + (2-Lipschitz) forward inclusion functions. The FBM partial sums act as a nested + bounding volume hierarchy: the remaining octaves are bounded by their amplitude sum + `s(i+1, n)`, so evaluation stops early once a point is provably outside. + - **Cost:** up to 12x faster than classical sphere tracing on opaque or constant-density + scenes. Only up to 1.8x on non-constant density, and that gain comes from empty-space + skipping alone. One example frame: 16 ms against 110 ms naive at 1024 x 1024 on a + 4080 Ti. + - **Stated limits:** FBM used as a domain warp is not supported, nor are nonlinear + transforms of FBM. The paper names analytic estimation of the contribution of + sub-pixel detail as an open problem. + +### 3.4 Taylor models + +- **[search]** Berz, Makino, *Verified Integration of ODEs and Flows Using Differential + Algebraic Methods on High-Order Taylor Models*, Reliable Computing 4, 1998. Makino, + Berz, *Taylor Models and Other Validated Functional Inclusion Methods*, IJPAM 2003. + - **Computes:** a Taylor model is a polynomial of order n plus an interval remainder + bound, which encloses any function given as code over a box. The sharpness of the + remainder scales with the box width to the power n + 1. The method also gives + verified ODE flows. + - **Verified integration:** Berz and Makino also published *New Methods for + High-Dimensional Verified Quadrature* (Reliable Computing 1999). There the integral + of the polynomial part is exact, and the remainder bound times the domain measure + bounds the error. + - First-order AA is the n = 1 case in spirit: an affine part plus a bounded remainder. + +### 3.5 Affine bound on a warp over a span + +- **[derivation]** Over a segment of half-length r, the best affine approximation + (Chebyshev) of a C2 coordinate function has sup error at most `r^2 / 4` times the + maximum of its second derivative along the segment. Linear interpolation of the + endpoints has `r^2 / 2` times that maximum. The noise error caused by a displacement + error of size `delta` is at most `L_noise * delta`. This is the same chain-rule + structure Galin uses in section 4.4. + +## 4. Statistical or expected-value treatment of high-frequency detail + +- **[fetched]** Heitz, Nowrouzezahrai, Poulin, Neyret, *Filtering Color Mapped Textures + and Surfaces*, I3D 2013. It computes the filtered value of a colour map applied to a + procedural function as ``. The noise's footprint distribution is + replaced by a Gaussian with the footprint's mean and variance. This equals the colour + map convolved with `N(0, sigma^2)` and evaluated at the mean, which is precomputed into + a 2D table indexed by (mu, sigma). Cost: one lookup after mu and sigma are computed. + Error: exact when the driving function's footprint distribution is Gaussian. For a + specific noise instance it converges as the footprint grows, and the paper states this + limit. +- **[derivation]** For `X ~ N(mu, sigma^2)`, `E[max(0, X - c)] = (mu - c) Phi(z) + + sigma phi(z)` with `z = (mu - c) / sigma`. This is the rectified-Gaussian mean, and the + scalar instance of the Heitz 2013 construction for the map `max(0, . - c)`. The + survey's fetched finding that Perlin noise is non-Gaussian bears on how accurate it is. +- **[search]** Olano, Baker, *LEAN Mapping*, I3D 2010. Dupuy et al., *LEADR Mapping*, ACM + TOG 32(6), 2013. They store the first and second moments of slopes in mipmaps. Linear + filtering of the moments gives a Gaussian or Beckmann slope distribution per + footprint. Cost: two extra texture channels and linear filtering. Error: the Gaussian + assumption. +- **[fetched]** Gabor Fields (1.2): band and orientation masking of high-frequency + kernels, with the Jensen bias of transmittance `~ 0.5 Var(tau) exp(-E[tau])`. +- **[search]** Vicini, Jakob, Kaplanyan, *A Non-exponential Transmittance Model for + Volumetric Scene Representations*, ACM TOG 40(4), 2021. Bitterli et al., *A Radiative + Transfer Framework for Non-exponential Media*, ACM TOG 37(6), 2018. Jarabo, Aliaga, + Gutierrez 2018, arXiv 1805.02651. Unresolved, correlated sub-voxel density makes + transmittance non-exponential. Positive correlation gives slower decay than exponential. +- **[search]** Kettunen, d'Eon, Pantaleoni, Novák, *An Unbiased Ray-Marching + Transmittance Estimator*, ACM TOG 40(4), 2021. A power-series estimator built around a + control variate. The control variate is a ray-marched mean-density estimate, and rare + higher-order terms remove the bias. It is relevant as the known way to make a + deterministic or expected-value optical depth unbiased. +- **[fetched]** Schneider, *The Real-time Volumetric Cloudscapes of Horizon: Zero Dawn*, + SIGGRAPH 2015 Advances course. The high-detail noise is applied only as erosion where + the low-detail sample is non-zero. Rays take cheap large steps until the low-detail + isosurface is hit, step back once, and then take full samples. After several zero + samples they return to cheap stepping. This is an octave-level skip heuristic with no + bound. Moinet (3.3) is the bounded version for FBM. + +## 5. Temporal reuse of per-pixel or per-tile raymarch structure + +- **[fetched]** Schneider 2015 (above). The full raymarch cost about 20 ms. Each frame + renders 1 of 16 pixels per 4 x 4 block into a quarter-resolution buffer, and + reprojects the previous frame. Where reprojection fails, for example at screen edges, + a low-resolution buffer is substituted. The paper reports 10x or more faster, with a + target of about 2 ms on PS4. +- **[search]** Klein, Strengert, Stegmaier, Ertl, *Exploiting Frame-to-Frame Coherence + for Accelerating High-Quality Volume Raycasting on Graphics Hardware*, IEEE + Visualization 2005. First-hit depths of the previous frame are reprojected by point + splatting to estimate per-pixel ray start points. About 2x on typical datasets. +- **[search]** Yagel, Shi, *Accelerating Volume Animation by Space-Leaping*, IEEE + Visualization 1993. A C-buffer of first non-transparent voxel coordinates, updated + across frames. Gudmundsson, Randén 1990 introduced inter-frame empty-space skipping. +- **[search]** Scherzer et al., *Temporal Coherence Methods in Real-Time Rendering*, + CGF 2012 STAR (Eurographics 2011). Reprojection caches, with depth-tolerance validity + tests for disocclusion. +- **[search]** Hillaire, *Physically Based Sky, Atmosphere and Cloud Rendering in + Frostbite*, SIGGRAPH 2016 course. Temporal reprojection for volumetric clouds. Details + were not read in this pass. +- **[fetched]** Gamito thesis, chapter 7: progressive refinement rendering of + Lipschitz-bounded and AA-bounded surfaces. It refines across passes within one image, + not across animated frames. +- **[not found]** No source was found that caches per-ray span partitions, affine + forms or certified intervals across frames and refines them. + +## 6. Warp linearisation combined with exact segment integration + +- **[not found]** No source was found that combines piecewise affine linearisation of a + domain warp, with an error bound, and exact closed-form integration of noise over the + resulting segments. +- Nearest pieces, each covering part of the combination: + + | Source | What it covers | What it leaves out | + |---|---|---| + | Gamito ch. 9 | Bounding a deformed ray | No integral. AA gave up on the ODE warp | + | Seyb 2019 | ODE curved ray with adaptive error control | Surfaces only | + | Galin 2020 | Jacobian-norm local bounds through warps | Surfaces, not integration | + | Keeter 2020 | Interval pruning that tolerates warps | Surfaces | + | Gabor Fields 2026 | Closed form for any affine-transformed Gabor kernel along a segment | No warp | + | Balint 2019 | Closed form for cosine noise | Composition and warps break it | + | Pre-integration (Engel 2001) | Exact per-segment integral | Under a piecewise-linear model of the scalar | + | Moinet 2025 | Bounded FBM octave skipping | Excludes FBM used as a domain warp | + +- **[search]** Rezk-Salama et al., *Fast Volumetric Deformation on General Purpose + Hardware*, Graphics Hardware 2001. Fetched text: piecewise-trilinear deformation + patches with adaptive subdivision, rendered by object-aligned slicing. The + approximate inverse is `x + O(delta^2)`. A search summary describes the deformed rays + as polylines, but the fetched text uses slicing, not per-ray exact integration. + +## Sources + +- Balint 2019: https://www.cl.cam.ac.uk/~rkm38/pdfs/balint2019cosine_noise.pdf +- Condor et al. 2026, Gabor Fields: https://arxiv.org/pdf/2602.05081 +- Gamito PhD thesis: https://staffwww.dcs.shef.ac.uk/people/S.Maddock/phd_theses/gamito/thesis_small.pdf +- Gamito, Maddock 2007: https://link.springer.com/article/10.1007/s00371-006-0090-7 +- Lagae et al. 2009, Gabor noise: https://www-sop.inria.fr/reves/Basilic/2009/LLDD09/LLDD09PNSGC_paper.pdf +- Lagae, Drettakis 2011: https://inria.hal.science/inria-00606907/file/paper_0049_preprint.pdf +- Lagae et al. 2010 survey: https://www-sop.inria.fr/reves/Basilic/2010/LLCDDELPZ10/LLCDDELPZ10STARPNF.pdf +- Heitz et al. 2013: https://inria.hal.science/hal-00765799 +- Sharp, Jacobson 2022: https://arxiv.org/pdf/2202.02444 +- Seyb et al. 2019: https://cs.dartmouth.edu/~wjarosz/publications/seyb19nonlinear.html +- Galin et al. 2020: https://hal.science/hal-02507361 +- Moinet, Neyret 2025: https://inria.hal.science/hal-05046040 +- Keeter 2020: https://www.mattkeeter.com/research/mpr/ +- Fryazinov et al. 2009: https://eprints.bournemouth.ac.uk/11708/1/TR-NCCA-2009-04.pdf +- Knoll et al. 2009: https://onlinelibrary.wiley.com/doi/10.1111/j.1467-8659.2008.01189.x +- Berz, Makino 1998: https://link.springer.com/article/10.1023/A:1024467732637 +- Engel et al. 2001: https://www3.cs.stonybrook.edu/~mueller/teaching/cse616/engel.pdf +- Gustavson 2005: https://cgvr.cs.uni-bremen.de/teaching/cg_literatur/simplexnoise.pdf +- Schneider 2015: https://advances.realtimerendering.com/s2015/ +- Kettunen et al. 2021: https://jannovak.info/publications/URM/URM.pdf +- Vicini et al. 2021: https://dvicini.github.io/non-exponential-representation/ +- Rezk-Salama et al. 2001: https://www3.cs.stonybrook.edu/~mueller/teaching/cse616/p17-rezk-salama.pdf +- Klein et al. 2005: https://www.researchgate.net/publication/4188150