feat(scene): tessellate loaded ACIS solids via the truck B-rep kernel

Rebuild every ACIS face as a truck topological Face and mesh it with truck,
routing loaded 3DSOLID/BODY/REGION/SURFACE through the same kernel the Model
tab uses. plane→try_attach_plane, cone/cylinder/sphere/torus→revolution faces
(truck's Surface has no cone/sphere/torus), spline→BSplineSurface grid sample.
Per-vertex normals are computed analytically outward per surface type and
triangle winding is oriented to match, since truck's own orientation isn't
consistent across independently built faces. `tessellate_solid3d|body|region|
surface` try this first and fall back to the bespoke sampler.

Light the mesh shader with three spread directional lights plus ambient
(abs(dot) per light, two-sided) so faces — including the inner walls of an
open lofted surface — never read as a flat dark mass.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
Hakan SevenandClaude Opus 4.8 committed 2026-06-15 00:30:18 +03:00
1 parent 9d823363f1
commit 0badf48454
4 files changed
+482 -16

No files matched your search

+1
View File
@@ -25,6 +25,7 @@ pub(super) struct EntityIndex {
}
pub(crate) mod render;
mod selection;
pub mod acis_to_truck;
pub mod solid3d_tess;
pub mod spline_tess;
pub mod tess_util;