refactor(ugc): remove the path traced hidden-face method; the renders are the only one

The path tracer that imitated LU Toolbox's Remove Hidden Faces took 17 to 100
times as long as the renders from 42 directions around the model, too heavy to
use. It goes with its settings (hsr_method, hsr_samples, hsr_bounces,
hsr_sample_spacing, hsr_min_points), its side by side tracing for GPUs and its
tests. The renders (UgcRender::VisibleFromAround) remove hidden faces as before
that method existed; their size is hsr_resolution (1024), and the memory
estimate counts their buffers again.

The hidden-face method is no longer a processing option: the dashboard's picker,
/reprocessproperty and --make-model take only the ray backend (the occlusion's)
and denoising. Options stored before (made_options, process_options,
ugc_process_runs, --make-model arguments) that name toolbox or fast still
parse; the word is skipped.

Check: the settings page has no hsr_method or path settings and has
hsr_resolution; /reprocessproperty embree toolbox still works (toolbox
ignored); models made with the defaults keep their hashes (UGC tests).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-29 12:12:25 -05:00
parent b897681f67
commit 07154c58d2
19 changed files with 104 additions and 896 deletions

View File

@@ -129,23 +129,14 @@ satin_colors=360,362,363,364,365,366,367,376
satin_opacity=75
satin_whiten=20
# Remove faces that can't be seen from anywhere, as LU Toolbox's Remove Hidden Faces: paths are traced from points on
# each opaque triangle, bouncing off the model; a triangle none of whose paths reaches the sky is removed.
# hsr_ground_plane: 1 also removes what can only be seen from below the model. hsr_samples: paths from each point.
# hsr_bounces: bounces a path may take. hsr_sample_spacing: distance between the points in LDD units (a stud is 0.8).
# hsr_min_points: points on a triangle at least, however small it is (LU Toolbox bakes 28 texels a triangle).
# Remove faces that can't be seen: the opaque bricks are rendered from 42 directions around the model (hsr_resolution
# pixels square) and the triangles that show in none are removed. hsr_ground_plane: 1 also removes what can only be
# seen from below the model.
remove_hidden_faces=1
hsr_ground_plane=0
hsr_samples=8
hsr_bounces=8
hsr_sample_spacing=0.1143
hsr_min_points=28
# hsr_method: toolbox (LU Toolbox's paths, above) or fast (renders from 42 directions around the model, hsr_fast_resolution
# pixels square; much faster, but it also removes faces seen only by bounced light).
hsr_method=toolbox
hsr_fast_resolution=1024
hsr_resolution=1024
# What traces the rays of the hidden faces' paths and of the occlusion: builtin, embree (Intel Embree on the CPU) or
# What traces the occlusion rays: builtin, embree (Intel Embree on the CPU) or
# hiprt (the GPU, when built with DLU_HIPRT and the machine has one; else embree). hiprt_device: which GPU (0: the first
# HIP or CUDA device; restart to change).
ray_backend=builtin