pub fn main<R: JitRuntime, F: FloatElement, I: IntElement, B: BoolElement>(
arguments: Arguments,
inputs: Inputs<R>,
) -> Outputs<R>
Expand description
Rasterize the point to the image.
For each pixel in each tile, do the following steps:
-
Collect the points in the tile onto the shared memory.
-
Compute the Gaussian density centered at the pixel position $ P_x $ using the parameters of each point $ n $ touched the tile ($ \Sigma^{’-1} $ and $ P_v^’ $): $$ D = P_v^’ - P_x \in \mathbb{R}^2 $$ $$ \sigma_n = e^{-\frac{1}{2} D^T \Sigma^{’-1} D} $$
-
Accumulate the transmittance $ T_n $ and $ C_{rgb}^’ $ of each pixel using $ \alpha_n $ and $ C_{rgb,n} $ of each point $ n $ (Order-dependent transparency blending): $$ \alpha_n^’ \leftarrow \alpha_n \sigma_n $$ $$ T_{n + 1} \leftarrow T_n (1 - \alpha_n^‘) $$ $$ C_{rgb}^’ \leftarrow C_{rgb,n}^’ + (C_{rgb} \cdot \alpha_n^’ \cdot T_n) $$