feat(paint-slots): default roof shingle surface to catalog finish

Replace the flat #e5e5e5 placeholder on the roof shingle surface (material
index 3) with the catalog roof-weatheredshingles finish via
resolveSlotDefaultMaterial. Wall/trim, deck, and interior surfaces and the
textures-off role array are unchanged. Roof keeps its existing per-segment
role material system (no node.slots migration).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Wassim SAMAD
2026-06-17 15:27:40 -04:00
co-authored by Claude Opus 4.8
parent a8f32dd47a
commit 751392c640
+2 -1
View File
@@ -2,6 +2,7 @@ import {
type ColorPreset, type ColorPreset,
createDefaultMaterial, createDefaultMaterial,
createSurfaceRoleMaterial, createSurfaceRoleMaterial,
resolveSlotDefaultMaterial,
type RenderShading, type RenderShading,
} from '@pascal-app/viewer' } from '@pascal-app/viewer'
import * as THREE from 'three' import * as THREE from 'three'
@@ -24,7 +25,7 @@ export function getRoofMaterials(
createDefaultMaterial('white', 1, shading, THREE.DoubleSide), // 0: Wall/Trim createDefaultMaterial('white', 1, shading, THREE.DoubleSide), // 0: Wall/Trim
createDefaultMaterial('#e5e5e5', 1, shading, THREE.FrontSide), // 1: Deck createDefaultMaterial('#e5e5e5', 1, shading, THREE.FrontSide), // 1: Deck
createDefaultMaterial('white', 1, shading, THREE.DoubleSide), // 2: Interior createDefaultMaterial('white', 1, shading, THREE.DoubleSide), // 2: Interior
createDefaultMaterial('#e5e5e5', 0.9, shading, THREE.FrontSide), // 3: Shingle resolveSlotDefaultMaterial('library:roof-weatheredshingles', shading), // 3: Shingle
] ]
: [ : [
createSurfaceRoleMaterial('roof', colorPreset), createSurfaceRoleMaterial('roof', colorPreset),