Texture resolution formula
The Demetrescu-d’Annibale texture resolution formula is the algorithm 3DSC uses to compute how many 4096 px texture atlases are needed to texture a segmented photogrammetric tile at a fixed, homogeneous ground resolution. It is the single source of truth for every place in the documentation that quotes the formula — the Metashape tool reference and the Digital Replica Phase 3 how-to both link back here.
The formula was published as Equation (1) in Demetrescu et al. 2026 (Remote Sensing 18(2):203, open access, CC-BY) and is implemented in the 3DSC for Metashape add-on (Supplementary Code S1 of that article).
The formula
For a tile of surface area \(A_{\text{tile}}\), the number of texture atlases required to hold the target texel density is:
Where:
\(n_{\text{tex}}\) = number of \(4096^2\) texture atlases required (minimum 1)
\(A_{\text{tile}}\) = actual surface area of the tile in m² (from
chunk.model.area()in Metashape)\(L_{\text{ref}}\) = 10 000 mm — side length of the reference 100 m² square (10 m × 10 m)
\(r_{\text{target}}\) = 1.26 mm²/texel — empirically determined target texture density
\(s_{\text{tex}}\) = 4096 px — texture atlas dimension
\(r_{\text{uv}}\) = 0.6 — UV-space utilization efficiency (photogrammetric UV atlasing leaves ~40 % of texture space unused)
\(\operatorname{round}(\cdot)\) = standard rounding (0.5 rounds up)
The formula operates in two conceptual steps.
Step 1 — Reference calculation
How many atlases a standard 100 m² tile needs:
Step 2 — Area scaling
Scale that reference proportionally by the actual tile area:
Worked example
A tile of \(A_{\text{tile}} = 50\ \text{m}^2\) needs \(6.26 \times (50/100) = 3.13 \rightarrow 3\) textures. A 55 m² tile gives \(6.26 \times 0.55 = 3.44 \rightarrow 3\); a 60 m² tile gives \(6.26 \times 0.60 = 3.76 \rightarrow 4\).
Using standard rounding (rather than always rounding up) optimizes texture memory: tiles slightly above a threshold receive an extra atlas, while those slightly below keep the lower count.
Reference table
Texture count per tile area, as published (Table 3 of Demetrescu et al. 2026), at 1.26 mm²/texel, 4096 px atlases, \(r_{\text{uv}} = 0.6\):
Tile area (m²) |
Textures (4096 px) |
|---|---|
0 – 16 |
1 |
16 – 33 |
2 |
33 – 49 |
3 |
49 – 66 |
4 |
66 – 83 |
5 |
83 – 100 |
6 |
Note
The published tiling standard caps the standard tile at 100 m² (6 atlases). The Metashape add-on additionally offers a Texturize Models (200 m² limit) mode that extends this to larger tiles and caps at 12 atlases; this is a tool convenience beyond the published standard, intended for oversized architectural features rather than the normal tile size.
Reference implementation
The formula is implemented in 3DSC_MS_GUI.py (method
_compute_texture_pages) as:
numtex = pow((10000 / x_res_a_terra), 2) / (tex_size * tex_size * ratio)
numtex_x_area = (numtex * area_model) / 100
tex_num = max(1, round(numtex_x_area, 0))
Where the code variables map to the published notation as:
x_res_a_terra→ \(r_{\text{target}}\) (default 1.26)tex_size→ \(s_{\text{tex}}\) (default 4096)ratio→ \(r_{\text{uv}}\) (default 0.6)area_model→ \(A_{\text{tile}}\), fromchunk.model.area()
The constant 10000 is \(L_{\text{ref}}\) in mm.
Why these defaults
1.26 mm²/texel (target density): empirically determined through iterative testing on Head Mounted Displays and desktop screens with domain experts. At this density (~0.67–0.87 texels per mm² of real surface) fine details — mortar texture, surface weathering, painted decoration — stay clearly visible during close-range immersive inspection while keeping rendering performance acceptable. Across the Amba Aradam digital replica the achieved density stayed within 1.15–1.32 mm²/texel (mean ~1.25).
4096 px (\(s_{\text{tex}}\)): chosen for broad platform compatibility — deployable on web browsers, mobile devices and entry-level HMDs without exceeding memory limits. \(8192^2\) is feasible on high-end hardware.
0.6 (\(r_{\text{uv}}\)): the median UV-space efficiency observed across the dataset; automatic UV parameterization in Metashape leaves ~40 % of the atlas unused (island spacing, seam allowances, packing). Adjust it if a different unwrapping strategy is used.
See also
Tool reference: 3DSC for Metashape — tool reference
How-to (workflow context): Phase 3 — High-Resolution Texturing (Metashape + 3DSC Scripts)
Rationale: Why the Digital Replica workflow
Publication: Demetrescu et al. 2026 — Equation (1) and Supplementary Code S1