1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-13 16:25:44 +02:00
This commit is contained in:
syuilo
2026-04-06 21:14:50 +09:00
parent a54a8a10ad
commit 0d966d8ded
6 changed files with 11 additions and 6 deletions

View File

@@ -1023,6 +1023,7 @@ export class RoomEngine {
//if (m.material) (m.material as BABYLON.PBRMaterial).ambientColor = new BABYLON.Color3(1, 1, 1);
if (m.material) {
(m.material as BABYLON.PBRMaterial).reflectionTexture = this.enableReflectionProbe ? this.reflectionProbe.cubeTexture : this.envMapIndoor;
(m.material as BABYLON.PBRMaterial).useGLTFLightFalloff = true; // Clustered Lightingではphysical falloffを持つマテリアルはアーチファクトが発生する https://doc.babylonjs.com/features/featuresDeepDive/lights/clusteredLighting/#materials-with-a-physical-falloff-may-cause-artefacts
}
if (this.enableReflectionProbe) this.reflectionProbe.renderList!.push(m);
}
@@ -1088,9 +1089,11 @@ export class RoomEngine {
if (mesh.material instanceof BABYLON.MultiMaterial) {
for (const subMat of mesh.material.subMaterials) {
(subMat as BABYLON.PBRMaterial).reflectionTexture = this.enableReflectionProbe ? this.reflectionProbe.cubeTexture : this.envMapIndoor;
(subMat as BABYLON.PBRMaterial).useGLTFLightFalloff = true; // Clustered Lightingではphysical falloffを持つマテリアルはアーチファクトが発生する https://doc.babylonjs.com/features/featuresDeepDive/lights/clusteredLighting/#materials-with-a-physical-falloff-may-cause-artefacts
}
} else {
(mesh.material as BABYLON.PBRMaterial).reflectionTexture = this.enableReflectionProbe ? this.reflectionProbe.cubeTexture : this.envMapIndoor;
(mesh.material as BABYLON.PBRMaterial).useGLTFLightFalloff = true; // Clustered Lightingではphysical falloffを持つマテリアルはアーチファクトが発生する https://doc.babylonjs.com/features/featuresDeepDive/lights/clusteredLighting/#materials-with-a-physical-falloff-may-cause-artefacts
}
}
}
@@ -1291,7 +1294,7 @@ export class RoomEngine {
}
private turnOnRoomLight() {
this.roomLight.intensity = 300000;
this.roomLight.intensity = 150000;
this.envMapIndoor.level = 0.3;
}
@@ -1680,9 +1683,11 @@ export class RoomObjectPreviewEngine {
if (mesh.material instanceof BABYLON.MultiMaterial) {
for (const subMat of mesh.material.subMaterials) {
(subMat as BABYLON.PBRMaterial).reflectionTexture = this.envMapIndoor;
(subMat as BABYLON.PBRMaterial).useGLTFLightFalloff = true; // Clustered Lightingではphysical falloffを持つマテリアルはアーチファクトが発生する https://doc.babylonjs.com/features/featuresDeepDive/lights/clusteredLighting/#materials-with-a-physical-falloff-may-cause-artefacts
}
} else {
(mesh.material as BABYLON.PBRMaterial).reflectionTexture = this.envMapIndoor;
(mesh.material as BABYLON.PBRMaterial).useGLTFLightFalloff = true; // Clustered Lightingではphysical falloffを持つマテリアルはアーチファクトが発生する https://doc.babylonjs.com/features/featuresDeepDive/lights/clusteredLighting/#materials-with-a-physical-falloff-may-cause-artefacts
}
}
}

View File

@@ -50,7 +50,7 @@ export const allInOnePc = defineObject({
const light = new BABYLON.SpotLight('', new BABYLON.Vector3(0/*cm*/, 30/*cm*/ / WORLD_SCALE, 0), new BABYLON.Vector3(0, 0, 1), Math.PI / 1, 2, scene, room?.lightContainer != null);
light.parent = model.root;
light.diffuse = new BABYLON.Color3(1.0, 1.0, 1.0);
light.range = 999/*cm*/;
light.range = 100/*cm*/;
if (room?.lightContainer != null) room.lightContainer.addLight(light);
const screenMesh = model.findMesh('__X_SCREEN__');

View File

@@ -21,7 +21,7 @@ export const beamLamp = defineObject({
light.parent = root;
light.diffuse = new BABYLON.Color3(1.0, 0.5, 0.2);
light.intensity = 300;
light.range = 999/*cm*/;
light.range = 100/*cm*/;
if (room?.lightContainer != null) room.lightContainer.addLight(light);
},
interactions: {},

View File

@@ -61,7 +61,7 @@ export const laptopPc = defineObject({
const light = new BABYLON.SpotLight('', new BABYLON.Vector3(0/*cm*/, 10/*cm*/ / WORLD_SCALE, 0), new BABYLON.Vector3(0, 0, 1), Math.PI / 1, 2, scene, room?.lightContainer != null);
light.parent = hutaNode;
light.diffuse = new BABYLON.Color3(1.0, 1.0, 1.0);
light.range = 999/*cm*/;
light.range = 100/*cm*/;
if (room?.lightContainer != null) room.lightContainer.addLight(light);
const bodyMaterial = model.findMaterial('__X_BODY__');

View File

@@ -20,7 +20,7 @@ export const lavaLamp = defineObject({
light.parent = root;
light.diffuse = new BABYLON.Color3(1.0, 0.5, 0.2);
light.intensity = 300;
light.range = 999/*cm*/;
light.range = 100/*cm*/;
if (room?.lightContainer != null) room.lightContainer.addLight(light);
const sphere = BABYLON.MeshBuilder.CreateSphere('lavaLampLightSphere', { diameter: 4/*cm*/ }, scene);

View File

@@ -51,7 +51,7 @@ export const woodRingFloorLamp = defineObject({
light.parent = lamp;
light.diffuse = new BABYLON.Color3(1.0, 0.5, 0.2);
light.intensity = 5000;
light.range = 999/*cm*/;
light.range = 100/*cm*/;
if (room?.lightContainer != null) room.lightContainer.addLight(light);
}