From f19040888a0f5b68578e7cba8b740cdde5231478 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Mon, 27 Apr 2026 20:57:30 +0900 Subject: [PATCH] wip --- packages/frontend/src/world/room/controller.ts | 12 ++++++++++-- packages/frontend/src/world/room/engine.ts | 7 +++++-- packages/frontend/src/world/room/worker.ts | 10 +++++++++- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/packages/frontend/src/world/room/controller.ts b/packages/frontend/src/world/room/controller.ts index 3f7e4fb992..a4ef5df6ee 100644 --- a/packages/frontend/src/world/room/controller.ts +++ b/packages/frontend/src/world/room/controller.ts @@ -19,7 +19,7 @@ export type RoomControllerOptions = { workerMode?: boolean; graphicsQuality: number; fps: number | null; - resolution: number | null; + resolution: number; useVirtualJoystick?: boolean; }; @@ -96,11 +96,19 @@ export class RoomController { if (this.options.resolution === 2) babylonEngine.setHardwareScalingLevel(0.5); if (this.options.resolution === 0.5) babylonEngine.setHardwareScalingLevel(2); - this.engine = new RoomEngine(this.roomState.value, { canvas, engine: babylonEngine, ...this.options }); + this.engine = new RoomEngine(this.roomState.value, { + canvas, + engine: babylonEngine, + sharpen: this.options.resolution >= 1, + ...this.options, + }); + this.engine.on('loadingProgress', ({ progress }) => { this.initializeProgress.value = progress; }); + await this.engine.init(); + this.initializeProgress.value = 1; this.isReady.value = true; diff --git a/packages/frontend/src/world/room/engine.ts b/packages/frontend/src/world/room/engine.ts index 5f41d2cfae..8dca72ea18 100644 --- a/packages/frontend/src/world/room/engine.ts +++ b/packages/frontend/src/world/room/engine.ts @@ -225,6 +225,7 @@ export class RoomEngine extends EventEmitter { engine: BABYLON.WebGPUEngine; graphicsQuality: number; fps: number | null; + sharpen: boolean; useVirtualJoystick?: boolean; }) { super(); @@ -455,8 +456,10 @@ export class RoomEngine extends EventEmitter { //pipeline.chromaticAberration.radialIntensity = 2; } - pipeline.sharpenEnabled = true; - pipeline.sharpen.edgeAmount = 0.5; + if (options.sharpen) { + pipeline.sharpenEnabled = true; + pipeline.sharpen.edgeAmount = 0.5; + } } if (_DEV_) { diff --git a/packages/frontend/src/world/room/worker.ts b/packages/frontend/src/world/room/worker.ts index 8ef20a87c3..ad6837787e 100644 --- a/packages/frontend/src/world/room/worker.ts +++ b/packages/frontend/src/world/room/worker.ts @@ -24,11 +24,19 @@ onmessage = async (event) => { if (event.data.options.resolution === 2) babylonEngine.setHardwareScalingLevel(0.5); if (event.data.options.resolution === 0.5) babylonEngine.setHardwareScalingLevel(2); - engine = new RoomEngine(roomState, { canvas, engine: babylonEngine, ...event.data.options }); + engine = new RoomEngine(roomState, { + canvas, + engine: babylonEngine, + sharpen: event.data.options.resolution >= 1, + ...event.data.options, + }); + engine.on('loadingProgress', ({ progress }) => { self.postMessage({ type: 'progress', progress }); }); + await engine.init(); + self.postMessage({ type: 'inited' }); break; }