From 4e8630abba8b394ceda3bb085f7f6b93b6fbc5b0 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sun, 12 Apr 2026 01:05:33 +0200 Subject: [PATCH] Add whitebox bevel settings to scene document JSON tests --- .../serialization/scene-document-json.test.ts | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tests/serialization/scene-document-json.test.ts b/tests/serialization/scene-document-json.test.ts index 49b5d13e..a89866dd 100644 --- a/tests/serialization/scene-document-json.test.ts +++ b/tests/serialization/scene-document-json.test.ts @@ -19,6 +19,7 @@ import { SPATIAL_AUDIO_SCENE_DOCUMENT_VERSION, STATIC_SIMPLE_MODEL_COLLIDERS_SCENE_DOCUMENT_VERSION, TRIGGER_ACTION_TARGET_FOUNDATION_SCENE_DOCUMENT_VERSION, + WHITEBOX_BEVEL_SCENE_DOCUMENT_VERSION, WHITEBOX_GEOMETRY_SCENE_DOCUMENT_VERSION, WORLD_ENVIRONMENT_SCENE_DOCUMENT_VERSION, createEmptySceneDocument @@ -262,6 +263,11 @@ describe("scene document JSON", () => { mode: "acesFilmic", exposure: 1.25 }, + whiteboxBevel: { + enabled: true, + edgeWidth: 0.18, + normalStrength: 0.9 + }, fogPath: "quality", waterPath: "performance", waterReflectionMode: "world", @@ -276,6 +282,35 @@ describe("scene document JSON", () => { expect(parseSceneDocumentJson(serializeSceneDocument(document))).toEqual(document); }); + it("migrates v32 scene documents without whitebox bevel settings to defaults", () => { + const emptyScene = createEmptySceneDocument({ + name: "Legacy Whitebox Bevel Scene" + }); + const { whiteboxBevel: _whiteboxBevel, ...legacyAdvancedRendering } = + emptyScene.world.advancedRendering; + + const migratedDocument = migrateSceneDocument({ + version: WHITEBOX_BEVEL_SCENE_DOCUMENT_VERSION, + name: emptyScene.name, + world: { + ...emptyScene.world, + advancedRendering: legacyAdvancedRendering + }, + materials: emptyScene.materials, + textures: emptyScene.textures, + assets: emptyScene.assets, + brushes: emptyScene.brushes, + modelInstances: emptyScene.modelInstances, + entities: emptyScene.entities, + interactionLinks: emptyScene.interactionLinks + }); + + expect(migratedDocument.version).toBe(SCENE_DOCUMENT_VERSION); + expect(migratedDocument.world.advancedRendering.whiteboxBevel).toEqual( + emptyScene.world.advancedRendering.whiteboxBevel + ); + }); + it("defaults missing water reflection mode and clamps legacy foam limits during migration", () => { const migratedDocument = migrateSceneDocument({ version: SCENE_DOCUMENT_VERSION,