#119: the [up-null] lead is EXONERATED (dat-proven) - both GfxObjs are legitimately no-draw models
Issue119UpNullGfxObjDumpTests pins the dat truth: 0x010002B4 = 9 polys, ALL NoPos, all surfaces Base1Solid; 0x010008A8 = 1 poly, NoPos, Base1Solid|Translucent. Retail's skipNoTexture never draws either model (the BR-1 build-time-skip <=> draw-time-skip equivalence), so ObjectMeshManager's empty render-data cache is the CORRECT terminal state - the only defect was the alarming "permanently invisible" log line, reworded into an honest tripwire pointing at the dump test. Second fact, same test (ShellModel_NoTexturedPolyIsDropped): on the hall/tower shell 0x010014C3, ZERO textured polys are dropped by the extraction gates (137/149 draw; the 12 dropped are the known #113 no-draw orphans) - the per-poly GfxObj extraction is exonerated for building shells, kept green as a regression pin. Net for #119: the missing tower-stair parts are NOT the up-null pair and NOT a per-poly extraction drop. Remaining hypothesis space (interior stair-cell flood admission, or a different model than assumed) needs the re-gate to identify the exact tower; then the cell set + flood replay headlessly like #118. ISSUES.md updated. Suites: App 232, Core 1419+2skip (1416+3 new), UI 420, Net 294. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
5a80a2ee24
commit
8d93665053
3 changed files with 173 additions and 9 deletions
|
|
@ -715,9 +715,16 @@ namespace AcDream.App.Rendering.Wb {
|
|||
|
||||
var renderData = UploadGfxObjMeshData(meshData);
|
||||
if (renderData == null) {
|
||||
// TEMP diagnostic #105 (strip with fix): the empty substitute is cached in
|
||||
// _renderData forever -> the object exists but never draws (invisible walls).
|
||||
Console.WriteLine($"[up-null] upload returned null for 0x{meshData.ObjectId:X10} — caching EMPTY render data (permanently invisible)");
|
||||
// 0-vertex mesh: every polygon was gated out at extraction. #119
|
||||
// (2026-06-11) dat-verified this is LEGITIMATE for all-no-draw
|
||||
// models (all polys NoPos + Base1Solid surfaces — retail's
|
||||
// skipNoTexture never draws them either; 0x010002B4/0x010008A8
|
||||
// are this class, Issue119UpNullGfxObjDumpTests). The empty
|
||||
// cache is the correct terminal state for those. The line stays
|
||||
// as a tripwire for the OTHER way to get here (extraction
|
||||
// dropped textured polys — a real defect; dat-verify with the
|
||||
// dump test before treating as one).
|
||||
Console.WriteLine($"[up-null] 0x{meshData.ObjectId:X10} produced a 0-vertex mesh — caching empty render data (legitimate for all-no-draw models; dat-verify via Issue119UpNullGfxObjDumpTests)");
|
||||
renderData = new ObjectRenderData();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue