1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-21 22:45:36 +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).ambientColor = new BABYLON.Color3(1, 1, 1);
if (m.material) { if (m.material) {
(m.material as BABYLON.PBRMaterial).reflectionTexture = this.enableReflectionProbe ? this.reflectionProbe.cubeTexture : this.envMapIndoor; (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); if (this.enableReflectionProbe) this.reflectionProbe.renderList!.push(m);
} }
@@ -1088,9 +1089,11 @@ export class RoomEngine {
if (mesh.material instanceof BABYLON.MultiMaterial) { if (mesh.material instanceof BABYLON.MultiMaterial) {
for (const subMat of mesh.material.subMaterials) { for (const subMat of mesh.material.subMaterials) {
(subMat as BABYLON.PBRMaterial).reflectionTexture = this.enableReflectionProbe ? this.reflectionProbe.cubeTexture : this.envMapIndoor; (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 { } else {
(mesh.material as BABYLON.PBRMaterial).reflectionTexture = this.enableReflectionProbe ? this.reflectionProbe.cubeTexture : this.envMapIndoor; (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() { private turnOnRoomLight() {
this.roomLight.intensity = 300000; this.roomLight.intensity = 150000;
this.envMapIndoor.level = 0.3; this.envMapIndoor.level = 0.3;
} }
@@ -1680,9 +1683,11 @@ export class RoomObjectPreviewEngine {
if (mesh.material instanceof BABYLON.MultiMaterial) { if (mesh.material instanceof BABYLON.MultiMaterial) {
for (const subMat of mesh.material.subMaterials) { for (const subMat of mesh.material.subMaterials) {
(subMat as BABYLON.PBRMaterial).reflectionTexture = this.envMapIndoor; (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 { } else {
(mesh.material as BABYLON.PBRMaterial).reflectionTexture = this.envMapIndoor; (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); 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.parent = model.root;
light.diffuse = new BABYLON.Color3(1.0, 1.0, 1.0); 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); if (room?.lightContainer != null) room.lightContainer.addLight(light);
const screenMesh = model.findMesh('__X_SCREEN__'); const screenMesh = model.findMesh('__X_SCREEN__');

View File

@@ -21,7 +21,7 @@ export const beamLamp = defineObject({
light.parent = root; light.parent = root;
light.diffuse = new BABYLON.Color3(1.0, 0.5, 0.2); light.diffuse = new BABYLON.Color3(1.0, 0.5, 0.2);
light.intensity = 300; light.intensity = 300;
light.range = 999/*cm*/; light.range = 100/*cm*/;
if (room?.lightContainer != null) room.lightContainer.addLight(light); if (room?.lightContainer != null) room.lightContainer.addLight(light);
}, },
interactions: {}, 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); 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.parent = hutaNode;
light.diffuse = new BABYLON.Color3(1.0, 1.0, 1.0); 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); if (room?.lightContainer != null) room.lightContainer.addLight(light);
const bodyMaterial = model.findMaterial('__X_BODY__'); const bodyMaterial = model.findMaterial('__X_BODY__');

View File

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

View File

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