Featured image of post read: Points - Surface | Voronoi + MLS

read: Points - Surface | Voronoi + MLS

Computing and Rendering Point Set Surfaces (TVCG'03)

PDF | SemaSch

Notes

(2024-06-02)

Abstract

  • Task: Display point set surface.

  • Solution:

    1. Define a smooth manifold surface based on local maps and MLS.

      • local map from differential geometry:
      • “local”: neighbors
    2. Upsampling and downsampling to fit the points spacing with the screen space resolution.

    3. The approximation error is bounded.

  • Advantage: Applicable for any point set


Introduction

  • Task: Use point set as the shape representation

  • Why matter?

    1. Point sets data are getting popular.

    2. Representing a highly detailed surface with primitives requires substantial small unit that’s smaller than a single pixel.

  • Problem:

    1. Although point set is an economical representation, point sets contain noisy and redundant points.

    2. Point cloud is discrete without explicit surface.

  • Solution:

    1. Adjust the density of points to reconstruct a smooth surface.

    2. Use polynomials to approximate surface with MLS

      • Polynomials: What are basis functions are used to fit the surface function?
        • What does the surface function look like?
      • Projection: weighted sum / linear combination of x,y coordinate

        $$ \begin{bmatrix} a_1 \\ a_2 \\ a_3 \end{bmatrix} [1 \quad x \quad x^2] [^x_y] $$

      • MLS: The partial derivative of error w.r.t. coefficient matrix š€ equals 0.

  • Explain idea:

    • Generating new points is a sampling process on the hidden surface.

      • Can generation model be applied? as this is a sampling process.
      • The error has a limited bound.
    • Rendering a point set is achieved by up-sampling and down-sampling the point set.

      • The sampling error is bounded. How to prove?
    • Reduce the input point set $P=\{š©įµ¢\}$ to “representation points” $R=\{š«įµ¢\}$ defining an MLS surface $S_R$, which approximates the original surface $S_P$.

      • Sounds like Variational Inference: Let an assumed posterior distribution of z $q(z|x)$ with learnable params (μ,σ) to approximate the true intractable posterior distribution of z $P(z|x)$, through minimizing the KL-divergence.

        On the other hand, if analyzing ELBO, the goal of maximizing the log-likelihood of x is transformed into maximizing the variational lower bound: ELBO.

      • Figuratively, use a proxy object to approximate the true object.


Related Work

(2024-06-07)

  1. Consolidation

    • A practical point cloud includes multiple scans to capture the complete geometry for a nontrivial object.

    • Weighted sum based on implicit function

    • Weighted sum based on points directly

      • Trianglulation
    • Physically-based

    • MLS + Projection + Iterations
  2. Point Sample Rendering

  • time-critical rendering

  • Global illumination effects -> ray tracing technique

  • Resampling the surface in object space is better than interpolating in the screen space.

  • Hybrid triangle-point approaches


Method

Define the Surface

  • Basic assumption: The input point set represent a surface implicitly.

  • Main idea:

  1. The Projection Procedure: 2 steps

    1. Step ā… : Approximate a Reference domain (plane) for a point š«:

      $H =\{š± | āŸØš§,š±āŸ©-D = 0, š±āˆˆ ā„Ā³\}, š§āˆˆ ā„Ā³,ā€–š§ā€–=1$

      The plane H is determined by MLS, i.e., minimizing a weighted sum of squared errors (distances) from each neighboring point š©įµ¢ of the point š« to the approximate plane H.

      The weight is a function Īø of the distance between the projection šŖ of š« on the plane to each of its neighboring point š©įµ¢.

      $$ āˆ‘įµ¢ā‚Œā‚į“ŗ \underset{error}{(āŸØš§,š©įµ¢āŸ©-D)²} ā‹… \underset{weights}{Īø(ā€–š©įµ¢-šŖā€–)} $$

      H š« š§ šŖ ā‹° ā‹° w ā‹° D āˆ™ š© įµ¢ ā‹° O P o f r l f r i a f o g n s m i e e n t s
      • N is the number of neighbors of š«.

      • A plane in 3D is defined with its normal vector š§ and a point š± within the plane, that deviates from the origin by a distance D along the direction of normal: $āŸØš§,š±āŸ©=D$

        š§ p š± l a n e D āˆ™ O r i g i n

      Further, represent the projection šŖ with a parameter t:

      $$šŖ = š« + tš§$$

      The loss function: encouraging neighboring points š©įµ¢ close to the H, becomes:

      $$āˆ‘įµ¢ā‚Œā‚į“ŗ āŸØš§,š©įµ¢ - š« - tš§āŸ©^2 ā‹… Īø(\| š©įµ¢ - š« - tš§ \|)$$

      H t š« š§ š§ šŖ ā‹° ā‹° w ā‹° š© įµ¢ ā‹°
      • As the projection šŖ is on the surface, the distance from š©įµ¢ to the surface is written as the inner product of š§ and š©įµ¢.

      Denote the target plane H with the set of projections:

      $$Q(t) = šŖ = š« + tš§$$

      • The t reminds me the sampling in NeRF: $šØ + tš$. After rescaling the range of [near,far] to [-1,1], the t ranges from [0,1] to sample points starting from the near plane.

        t is not the depth z, but steps that are compatible for LLFF scene (infinite boundary) and Blender scene (bounded).

      • Similarly, Point-MVSNet used steps to refine the depth of the point along a ray.

      The plane H will serve as a “ground” for measuring the height of each š©įµ¢, using the coordinates (x,y) on the plane H for indexing.

    2. Step ā…”: approximate surface with Local map:

      The projeciton š“Ÿ of š« onto the original surface $S_P$ is a sum of the projection of š« on the plane H and the “residual” approximed with a bivariate polynomial: g(x,y),

      $$ \begin{aligned} \cal{P}(š«) &= šŖ + g(0,0)š§ \\ &= š« + (t+g(0,0))š§ \end{aligned} $$

      • Similarly, PointFlow in Point-MVSNet also predicts the depth residual to tweak a point.

      The g(x,y) is optimized through minimizing the weighted sum of neigboring pionts š©įµ¢ height error:

      $$āˆ‘įµ¢ā‚Œā‚į“ŗ (g(xįµ¢,yįµ¢) - fįµ¢)² ā‹… Īø(\| š©įµ¢ - šŖ \|)$$

      l p f o l o c a r a n S l e š« p H g š« ( ( 0 0 ā‹® ā‹® šŖ , , e 0 0 ā‹° ) ) ā‹° w ā‹° g š© ā‹° ( ( įµ¢ x x ā‹® šŖ įµ¢ įµ¢ įµ¢ , , f y y įµ¢ įµ¢ įµ¢ ) )
      • fįµ¢ is the height of the point š©įµ¢ w.r.t. the plane H:

        $$fįµ¢= š§ā‹…(š©įµ¢ - šŖ)$$

      • The projection šŖ of š« is the origin of the plane-H coordinate system.

        The projection of š« on the original surface can be represented as: $šŖ+g(0,0)ā‹…š§$

  2. Properties of the Projection Procedure

    (2024-06-09)

    1. The equation holds, when the plane H is the original surface $S_P$:

      $$\cal{P}(\cal{P}(š«)) = \cal{P}(š«)$$

      l p f o l o c a r a n l e š« g H ( 0 , 0 š« ( ) 0 = šŖ , 0 0 ā‹° ) ā‹° w ā‹° g š© ā‹° ( ( įµ¢ x x šŖ įµ¢ įµ¢ įµ¢ , , f y y įµ¢ įµ¢ įµ¢ ) ) O s = r u 0 i r g f i a n c a e l S p
  3. Computing the Projection

  4. Data Structures and Tradeoffs

  5. Results


Play