Color-mapped noise vector fields for generating procedural micro-patterns

Stochastic micro‐patterns successfully enhance the realism of virtual scenes. Procedural models using noise combined with transfer functions are extremely efficient. However, most patterns produced today employ 1D transfer functions, which assign color, transparency, or other material attributes, based solely on the single scalar quantity of noise. Multi‐dimensional transfer functions have received widespread attention in other fields, such as scientific volume rendering. But their potential has not yet been well explored for modeling micro‐patterns in the field of procedural texturing. We propose a new procedural model for stochastic patterns, defined as the composition of a bi‐dimensional transfer function (a.k.a. color‐map) with a stochastic vector field. Our model is versatile, as it encompasses several existing procedural noises, including Gaussian noise and phasor noise. It also generates a much larger gamut of patterns, including locally structured patterns which are notoriously difficult to reproduce. We leverage the Gaussian assumption and a tiling and blending algorithm to provide real‐time generation and filtering. A key contribution is a real‐time approximation of the second order statistics over an arbitrary pixel footprint, which enables, in addition, the filtering of procedural normal maps. We exhibit a wide variety of results, including Gaussian patterns, profiled waves, concentric and non‐concentric patterns.


Tiling and blending background
We recall here the background about the tiling and blending (T&B) algorithm [HN18,DH19,Bur19].This algorithm synthesizes a noise N from a discrete input example E by tiling the infinite plane with overlapping hexagonal tiles trimmed in E. Without loss of generality, it is assumed E has zero mean (otherwise both E and N are shifted).
Assuming that E is the realization of a Gaussian process, N is evaluated at any location u as a weighted average of three overlapping tiles : The tiles E i are trimmed at random locations in E. The weighting functions w i decrease from 1 at the center of the tile to 0 at the boundary, with i w 2 i = 1 for all u.
2 First order moment estimation

MIPmap estimation
In this section we explain how to evaluate a MIPmap of the first order moment of N in real-time, as suggested in [HN18].
A MIPmap of E is pre-computed.We denote {E 0 , E 1 , E 2 , . ..} the MIP hierarchy, with E 0 = E the finest level.A texel at level l has a square footprint P with center Ṗ.
Now we approximate the mean of N over P by where the tile E l,i has the same shape as E i but is trimmed in E l .The approximation is due to w i (u) ≈ w i ( Ṗ) for all u ∈ P, which is considered constant over the footprint and evaluated at its center.

Estimation over a arbitrary footprint
At this stage, we are able to estimate the average of N over a square footprint P corresponding to a texel in the MIPmap.
We now want to estimate the value over an arbitrary footprint P represented by its compactly supported weighting function w P .To achieve this in real-time, we leverage the previous MIPmap and a discretization w P (P) over the texels of the MIPmaps.We assume it to be normalized, i.e.

P∈P
w The basic idea is to: cut the integral into pieces P ∈ P; approximate w P constant over P; use the previous MIPmap estimation.3 Centered second order moment estimation

MIPmap estimation
We now want to approximate a MIPmap of the second order moment (variance) of N in real-time.
Here we can develop the inner sum: by neglecting the cross-products.Note that it is possible to neglect the cross-products because we compute the centered moment (σ 2 ); this would not be possible for the non-centered moment (N 2 ) because the cross-products contribute a lot.Then we plug the approximation in the formula of σ 2 : where V l,i is a tile trimmed in V l .We define {V 0 , V 1 , V 2 , . ..} as a MIPmap of variance:

Estimation over an arbitrary footprint
Here we estimate the variance σ 2 (P) over an arbitrary footprint P represented by its compactly supported weighting function w P .To achieve this in real-time, we leverage the previous MIPmaps and a discretization w P (P) over the texels of the MIPmaps.Again, we assume it to be normalized, i.e.

P∈P w P (P) = 1 (23)
We can not follow exactly the same derivation as the first order, because the variance over a union P = P is not the average of variances.Instead, we write We approximate N (P) ≈ N l (P) defined in Section 2. We are left with the problem of approximating the non-centered second order moment N 2 (P) which can be averaged over a union of square footprints:

Covariance estimation
For the purpose of normal map filtering, we investigate here the estimation of the covariance of two noises N and N ′ , which correspond in the paper to the slopes in x and y.We assume the noises to be generated using the same T&B from two inputs E and E ′ .It is very important to note that we use the same random numbers, so that the tiles (E i and E ′ i in the equations below) are at the same positions in E and in E ′ .Otherwise the MIPmap would not be coherent.
To do so, we adapt the equations of the previous section.

MIPmap estimation
We want to approximate Here we can develop the product of inner sums: by neglecting the cross-products.Then we plug the approximation in the formula of cov: where C l,i is a tile trimmed in C l .We define {C 0 , C 1 , C 2 , . ..} as a MIPmap of covariance:

Estimation over a arbitrary footprint
Here we estimate the covariance cov(P).As for the variance, the covariance over a union P = P is not the average of covariances.Instead, we write 5 Summary

Mean estimation
The input is E 0 .A MIP hierarchies is precomputed.{E 0 , E 1 , E 2 , . ..} is the standard MIP hierarchy.At level l, we denote a texel or its square footprint as P, with center Ṗ.
The mean over a texel is estimated by P = P is a footprint which covers several texels P at level l.The texels are weighted by w P (P) > 0 that sum up to 1.The mean over is estimated by N l (P) def = P∈P w P (P) N l (P) ≈ N (P) (52)

Variance estimation
The input is E 0 .Two MIP hierarchies are precomputed.{E 0 , E 1 , E 2 , . ..} is the standard MIP hierarchy.We define a MIPmap of variance {V 0 , V 1 , V 2 , . ..}.At level l, we denote a texel or its square footprint as P, with center Ṗ.
V l (P) The variance over a texel is estimated by P = P is a footprint which covers several texels P at level l.The texels are weighted by w P (P) > 0 that sum up to 1.The variance over is estimated by

Covariance estimation
We define a MIPmap of covariance {C 0 , C 1 , C 2 , . ..} as The covariance over a texel are estimated by The covariance over P = P is estimated by

Figure 4 :
Figure 4: Approximation S of the filtering S with exact computation of the mean and the standard deviation.From left to right: footprint size equal to 1 (input), 2, 4, 8, 16, 32, 64, 128.Size of the input: 1024 × 1024.
Figure 5: Approximation S of the filtering S with approximation of the mean and exact computation of the standard deviation.From left to right: footprint size equal to 1 (input), 2, 4, 8, 16, 32, 64, 128.Size of the input: 1024 × 1024.

Figure 6 :
Figure 6: Approximation S of the filtering S with exact computation of the mean and approximation of the standard deviation.From left to right: footprint size equal to 1 (input), 2, 4, 8, 16, 32, 64, 128.Size of the input: 1024 × 1024.
Figure 7: Approximation S of the filtering S with approximation of the mean and the standard deviation.From left to right: footprint size equal to 1 (input), 2, 4, 8, 16, 32, 64, 128.Size of the input: 1024 × 1024.
Figure 9: Approximation S of the filtering S with approximation of the mean and exact computation of the standard deviation.From left to right: footprint size equal to 1 (input), 2, 4, 8, 16, 32, 64, 128.Size of the input: 1024 × 1024.
Figure 10: Approximation S of the filtering S with exact computation of the mean and approximation of the standard deviation.From left to right: footprint size equal to 1 (input), 2, 4, 8, 16, 32, 64, 128.Size of the input: 1024 × 1024.
Figure 11: Approximation S of the filtering S with approximation of the mean and the standard deviation.From left to right: footprint size equal to 1 (input), 2, 4, 8, 16, 32, 64, 128.Size of the input: 1024 × 1024.

Figure 12 :
Figure 12: Examples of generated patterns.The first and second rows are the input noises and the left column is the color-map.

Figure 14 :
Figure 14: Approximation S of the filtering S with exact computation of the mean and the standard deviation.From left to right: footprint size equal to 1 (input), 2, 4, 8, 16, 32, 64, 128.Size of the input: 1024 × 1024.
Figure 15: Approximation S of the filtering S with approximation of the mean and exact computation of the standard deviation.From left to right: footprint size equal to 1 (input), 2, 4, 8, 16, 32, 64, 128.Size of the input: 1024 × 1024.
Figure 16: Approximation S of the filtering S with exact computation of the mean and approximation of the standard deviation.From left to right: footprint size equal to 1 (input), 2, 4, 8, 16, 32, 64, 128.Size of the input: 1024 × 1024.
Figure 17: Approximation S of the filtering S with approximation of the mean and the standard deviation.From left to right: footprint size equal to 1 (input), 2, 4, 8, 16, 32, 64, 128.Size of the input: 1024 × 1024.