Split mesh painter into partials and add occlusion via combined mask map

- Split MeshPainter into partial classes (Setup/Backend/Gpu/Cpu) for maintainability
- Add ambient occlusion painting, packed with metallic/smoothness into one
  MSO mask map (R=metallic, G=occlusion, A=smoothness) bound to both
  _MetallicGlossMap and _OcclusionMap, kept independently paintable via
  per-channel ColorMask
- Gate painting from a single IsChannelActive source so AO-only strokes work
- Blend albedo/emission in linear space on CPU to match the GPU framebuffer
- Pre-compensate data-channel writes for sRGB->linear so GPU matches CPU
- Harden GPU shader fallback to reflect real backend state

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 4.8 committed 2026-06-23 19:31:52 +02:00
1 parent 86c0a33687
commit c7ec12e6d9
11 files changed
+927 -776

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: f3dd1a2d423bb5a46931b0e689fa779a