Paper study session on Unsigned Orthogonal Distance Fields (CVPR 2024). The core idea: instead of storing the minimum distance to the surface in any direction (SDF/UDF), store three separate axis-aligned unsigned distance fields — UODF_LR along X, UODF_FB along Y, UODF_UD along Z. The pay-off is that surface extraction needs no marching-cubes interpolation step — each ray's intersection is a direct table lookup along its axis. 20–100× better on open / non-watertight surfaces; the triplane-variant runs 30–80 M points/sec on a consumer GPU. Informs the six-plane-mesh and hexplane work in the thesis line.
Standard neural-implicit surface reconstruction (SDF + marching cubes) has two error sources: fitting error (the network's distance estimate is imperfect) and interpolation error (marching cubes linearly interpolates between corner-grid distance values to find the zero-crossing, which is inaccurate for non-linear surfaces). For watertight closed surfaces both errors are small. For open surfaces (garments, leaves, single-sided geometry) or for complex internal structure (assemblies, hollow objects, hexplane-style multi-layer surfaces) the interpolation error dominates and reconstruction quality collapses.
The UODF paper (Lu et al., CVPR 2024) sidesteps the marching-cubes interpolation step entirely. By storing the unsigned distance along a fixed axis direction (not "in any direction"), each grid cell's distance value is the surface intersection — no interpolation needed. The catch: you have to store three of them (one per axis) because a single axis-aligned UODF only covers rays in that direction.
| Field | Stores | Query semantics |
|---|---|---|
| UODF_LR (X-axis) | Distance to nearest surface along ±X from each grid voxel | "How far to the surface if I shoot a ray along X?" |
| UODF_FB (Y-axis) | Distance along ±Y | Same, Y |
| UODF_UD (Z-axis) | Distance along ±Z | Same, Z |
Surface extraction: for each grid voxel, the three UODF values name three candidate surface points along three axes; the union of these points across all voxels is the reconstructed surface. The crucial difference from marching cubes: no interpolation is needed because each candidate point is the actual axis-aligned distance to the surface, not a corner-value interpolation.
Axis-aligned distance ≠ minimum distance.
The constraint is the feature.
The SDF / UDF approach throws away axis information — the stored distance is to the nearest surface in any direction. Recovering a surface from that means interpolating gradients (marching cubes). UODF keeps the axis information by storing three separate fields per voxel. The constraint (must commit to an axis up-front) is what makes surface extraction interpolation-free.
Click ray-cast directions on the left pane to see each UODF field separately. The middle pane shows the union of all three axis-fields — the reconstructed surface. The right pane shows the same shape reconstructed via SDF + marching cubes for comparison, with the interpolation error visible at low resolutions.
White paper · UODF paper analysis · axis-aligned principle · thesis-line cross-reference to Six-Plane Mesh and Hexplane AE