Before I start, I want to tell you about the features of my scene. I have a small office gltf file with dimensions of x:50,y:20,z:50 and I load it into my scene. But my gltf file is very detailed and contains 166k polygons and 219k triangles, so unfortunately I experience crashes on iOS devices. Do you have a suggestion for a solution to this problem where I can split the gltf file and transfer the meshes in it to the scene one by one?
Actually, my general goal is to break the gltf I want into pieces and load all the meshes at once instead of loading them every 100ms.
NOTE: I am currently using this method as
this.ofisLoader = await BABYLON.SceneLoader.ImportMeshAsync("", env.STATICS_SERVER + "/assets/babylon5/office_list/ofis" + this.office_style + "/", this.office_style + ".gltf");
I canât give PG or link because unfortunately I havenât finished it yet due to these reasons, and Iâm also leaving my engine settings and some other settings I used below.
engine_options ââ
antialias: false,
preserveDrawingBuffer: false,
stencil: false,
deterministicLockstep: false,
lockstepMaxSteps: 1,
limitDeviceRatio: 2.0,
doNotHandleContextLost: true,
samplingMode: 1,
powerPreference: "low-power",
failIfMajorPerformanceCaveat: false,
audioEngine: true
ââ
this.scene.executeWhenReady((_sceneFinished) => {
this.scene.textures.forEach((el) => {
switch (el.name) {
case "sceneprePassRT":
el.updateSamplingMode(BABYLON.Texture.BILINEAR_SAMPLINGMODE); // Daha dĂŒĆĂŒk kaliteli bilinear sampling
el.anisotropicFilteringLevel = 1; // Anisotropic filtering minimuma çekildi
el.samples = 1; // Sample sayısı azaltıldı (8'den 1'e)
break;
default:
break;
}
});
});
var options = new BABYLON.SceneOptimizerOptions(60, 2000);
options.addOptimization(new BABYLON.HardwareScalingOptimization(0.5, 1.5));
options.addOptimization(new BABYLON.RenderTargetsOptimization(1));
options.addOptimization(new BABYLON.TextureOptimization(0, 256, 1));
options.addOptimization(new BABYLON.PostProcessesOptimization(2));
this.optimizer_fps = new BABYLON.SceneOptimizer(this.scene, options);
this.engine.setHardwareScalingLevel(1.5)