From 970efb34409661366f483a9d2819a742d20803eb Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Wed, 8 Apr 2026 13:20:09 +0900 Subject: [PATCH] wip --- .../frontend/assets/room/objects/tv/tv.blend | Bin 758124 -> 758156 bytes .../frontend/assets/room/objects/tv/tv.glb | Bin 18400 -> 18412 bytes .../frontend/src/utility/room/objects/tv.ts | 23 ++++++++++++++++-- packages/frontend/src/utility/room/utility.ts | 5 +--- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/frontend/assets/room/objects/tv/tv.blend b/packages/frontend/assets/room/objects/tv/tv.blend index 1b5b3055e4fb1ba4ee44fbc3589fe75abb417f16..8615de0ce42a3f36323cbe84ef627aef3febfc63 100644 GIT binary patch delta 21062 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 M{zorH{%-Go1IB<{9 delta 20514 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 { const b = options.screenBrightness; @@ -56,6 +64,17 @@ export const tv = defineObject({ applyScreenBrightness(); + //const updateUv = createPlaneUvMapper(screenMesh); + //const applyFit = () => { + // const tex = screenMaterial.emissiveTexture; + // if (tex == null) return; + // const srcAspect = 16 / 9; + // const targetAspect = 16 / 9; + // updateUv(srcAspect, targetAspect, 'cover'); + // model.updated(); + //}; + //applyFit(); + const bodyMaterial = model.findMaterial('__X_BODY__'); const applyBodyColor = () => { diff --git a/packages/frontend/src/utility/room/utility.ts b/packages/frontend/src/utility/room/utility.ts index 3206b5b836..d4fd5b7cb8 100644 --- a/packages/frontend/src/utility/room/utility.ts +++ b/packages/frontend/src/utility/room/utility.ts @@ -285,14 +285,13 @@ const TV_PROGRAMS = { export function initTv(room: RoomEngine, screenMesh: BABYLON.Mesh) { const tvProgramId = 'shopping'; const tvProgram = TV_PROGRAMS[tvProgramId]; - const tvScreenMaterial = new BABYLON.PBRMaterial('tvScreenMaterial', room.scene); + const tvScreenMaterial = screenMesh.material as BABYLON.PBRMaterial; tvScreenMaterial.albedoColor = new BABYLON.Color3(0, 0, 0); tvScreenMaterial.ambientColor = new BABYLON.Color3(0, 0, 0); tvScreenMaterial.roughness = 1; tvScreenMaterial.emissiveTexture = new BABYLON.Texture(`/client-assets/room/tv/${tvProgramId}/${tvProgramId}.png`, room.scene, false, false); tvScreenMaterial.emissiveTexture.level = 1.0; tvScreenMaterial.emissiveColor = new BABYLON.Color3(0.5, 0.5, 0.5); - tvScreenMaterial.freeze(); const uvs = screenMesh.getVerticesData(BABYLON.VertexBuffer.UVKind)!; const uvIndexes = getPlaneUvIndexes(screenMesh); @@ -336,9 +335,7 @@ export function initTv(room: RoomEngine, screenMesh: BABYLON.Mesh) { applyTvTexture(0); return { - material: tvScreenMaterial, dispose() { - tvScreenMaterial.dispose(); }, }; }