fix(3d): render pierced solid faces with their holes
Build pierced planar faces (a wall with a window opening) as truck faces with inner hole boundaries: collect every face loop (outer + holes), wind each hole opposite the outer so try_attach_plane cuts it, and let truck triangulate. Drop the back-face cull on the solid-mesh pipelines so faces show regardless of the import's winding (the shader already lights two-sided). Relies on the acadrust SatLoop next_loop fix that makes hole loops reachable. (#123) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
128672186e
commit
93e2d20412
4 changed files with 98 additions and 30 deletions
|
|
@ -449,7 +449,7 @@ impl Pipeline {
|
|||
},
|
||||
primitive: wgpu::PrimitiveState {
|
||||
topology: wgpu::PrimitiveTopology::TriangleList,
|
||||
cull_mode: Some(wgpu::Face::Back),
|
||||
cull_mode: None, // two-sided: ACIS import winding is unreliable
|
||||
..Default::default()
|
||||
},
|
||||
depth_stencil: Some(wgpu::DepthStencilState {
|
||||
|
|
@ -538,7 +538,7 @@ impl Pipeline {
|
|||
},
|
||||
primitive: wgpu::PrimitiveState {
|
||||
topology: wgpu::PrimitiveTopology::TriangleList,
|
||||
cull_mode: Some(wgpu::Face::Back),
|
||||
cull_mode: None, // two-sided: ACIS import winding is unreliable
|
||||
..Default::default()
|
||||
},
|
||||
depth_stencil: Some(wgpu::DepthStencilState {
|
||||
|
|
|
|||
Loading…
Reference in a new issue