Skip to content

v1.4: recursive occlusion isolation and native-mask counterpart diagnostics - #31

Draft
Datamining00 wants to merge 15 commits into
v1.4-consecutive-transform-pair-fixfrom
v1.4-simple-layer-native-debug
Draft

v1.4: recursive occlusion isolation and native-mask counterpart diagnostics#31
Datamining00 wants to merge 15 commits into
v1.4-consecutive-transform-pair-fixfrom
v1.4-simple-layer-native-debug

Conversation

@Datamining00

@Datamining00 Datamining00 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Follow-up test branch after the consecutive-transform fix was visually verified on the previous livery.

Current real-world findings

  1. The Left-side occlusion probe first localized the large black blocking artwork to layers 2416-2761; the supplied refined sheet narrows it further to layers 2718-2761. The other seven refined ranges contain only small/sparse artwork.
  2. The separate Right-side failure is confirmed to be a mask at layer 655 with shape word 0x0100, type 0x100100, and no resolved native resource. It must not be silently skipped.
  3. The v2 raw window revealed a diagnostic addressing mistake: decoder source_offset is relative to the C_livery layer-data body, while v2 sliced the full decompressed payload directly. In the supplied sample the real direct 02 00 01 ... record is exactly one layer-data base (0x48 / 72 bytes) after the v2 nominal position. v3 resolves the body base before reading raw bytes.

v3 simple diagnostic policy

  • Rendering behavior remains unchanged.
  • The dark-occluder probe now recursively follows only the range with the largest near-black coverage until at most 8 layers remain, then renders those layers individually.
  • Outputs include *-occluder-pass-N.png, *-occluder-candidates.png, and *-occluder-candidates.json with source offset/type/shape/mask metadata for the final candidates.
  • Fatal missing native masks still fail closed.
  • The v3 fatal-mask JSON resolves the body-relative source offset to the actual raw record and ranks mask layers from the opposite side by mirrored transform similarity. This is intended to identify a valid Left-side counterpart for a Right-side unknown mask (or vice versa) without guessing geometry.
  • Missing ordinary visible native shapes retain the existing skip-and-log test policy.

No car ID, creator, livery name, section coordinate, layer number, shape word, or resource alias is hard-coded into runtime behavior. Existing parser transform fixes remain unchanged.

Validation

  • Windows CI: success.
  • Full regression suite: 189 tests, OK.
  • v3 source-offset and opposite-side mirror-ranking tests: passed.
  • PyInstaller one-file build: success.
  • EXE SHA-256: b2ad040ba360f37b19764f3102b85f2aae92afa2d221b065978499bade91af51.
  • Artifact ZIP SHA-256: 64057d545b8b18ade19f966d41dbe79d577ff95e2ca7f7f2aaa260595b6d5669.

This PR remains draft until the final Left candidate sheet/JSON and the new Right v3 mask report are checked on the supplied real-world cases.

@Datamining00 Datamining00 changed the title v1.4: simple layer occlusion probe and missing-native visible skip v1.4: refined occlusion probe and fatal native-mask diagnostics Aug 20, 2026
@Datamining00 Datamining00 changed the title v1.4: refined occlusion probe and fatal native-mask diagnostics v1.4: recursive occlusion isolation and native-mask counterpart diagnostics Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant