Pinging @bghgary
Just wondering - are you using babylon to render the glb as well, or is it a different renderer?
yes i’m using babylon
What kind of materials are you using in the original scene? Do you see any console warnings when exporting?
I’m using PBR materials,
This is another shortcode in which I have removed all my customizations, and materials also but still couldn’t find any change in result.
Is it compulsory to use materials?
And no I don’t get any error during exporting Babylon file but when I export glb file it throws warning, attached in media.
Also attaching result of this code
window.addEventListener('DOMContentLoaded',()=>{
var canvas = document.getElementById("canvas");
var engine = new BABYLON.Engine(canvas,true);
var createScene = ()=>{
//scene
var scene = new BABYLON.Scene(engine);
engine.enableOfflineSupport = false;
scene.clearColor = new BABYLON.Color3.White();
//====ArcRotateCamera
var camera = new BABYLON.ArcRotateCamera("arcCamera",BABYLON.Tools.ToRadians(0),BABYLON.Tools.ToRadians(0),10.0,BABYLON.Vector3.Zero(),scene);
camera.attachControl(canvas,true);
//=====light
var light = new BABYLON.PointLight("pointlight",new BABYLON.Vector3(0,0,0),scene);
light.parent = camera;
light.intensity = 1.5;
// create model BABYLON.SceneLoader.ImportMesh("","","mymodel.babylon",scene,(loadedMeshes)=>{
});
return scene;
}
var scene = createScene();
engine.runRenderLoop(function(){
scene.render();
})
});
I’m still not sure what you are doing. Can you provide a repro or attach the original scene? Thanks.
Hello,
I want to use babylon file instead of glb file.
I found a playground https://playground.babylonjs.com/#ZJYNY#1029
I’m trying to add my babylon file here. It gets loaded but does not look the same as in Babylon sandbox.
I can’t figure out the reason why this is appearing like this
attaching my scene and output screenshot.
Thanks.
My scene
https://atelio-test-bucket.s3.ap-south-1.amazonaws.com/meshes/mesh_assets/model/interior_v01.babylon
The issue was importing the .babylon file as a single mesh instead of a scene. When you load as a mesh, the file’s hierarchy gets messed up instead of the proper hierarchy, which is this one (the same one as the sandbox):
Here’s the playground: fff | Babylon.js Playground (babylonjs.com) (the link to the file seems to be temporarily down for now)
I am able to repro exporting to glb looking off. Investigating.
Ohh… Thanks it worked. Thank you so much.
I’m facing one more problem,
It loaded fine but when I zoom in the scen it scatters the material, because of this I can’t set camera’s upperRadiusLimit less than 3.
camera.lowerRadiusLimit = 4;
camera.upperRadiusLimit = 3;
at these values it looks fine but looks very small.
Can you tell me why this is happening.
attaching pictures for reference.
Thanks
Hi! This is probably caused by the camera’s near and far plane settings. When setting up a camera for a 3D scene, we have to define its viewing frustum, which is the region the camera is capable of seeing:
If a object is outside of this area, it’s clipped, meaning it isn’t shown at all. And when the object is partly inside and partly outside, it causes this “cut” effect. So one solution is to decrease the near clip plane, so that you can actually see objects close to the camera. You can set this using the minZ
property on the camera: TargetCamera | Babylon.js Documentation (babylonjs.com)
I figured out why the materials are different between .babylon
and .glb
. The issue is that some of these materials are marked with disableLighting = true
and also has emissive textures. The issue with this is that the glb exporter interprets this to mean that it should use the glTF unlit extension which only looks at the diffuse texture and ignores the emissive texture.
The exporter can’t actually export this to glTF since it’s not possible. The exporter should log a warning and not export the emissive texture since it won’t not be used by the loader. @Soniya_Kukreja Do you mind filing an issue for this?
For now, if you want this .babylon
scene to export to glTF, you can set disableLighting = false
for the materials that are using emissive to fake not having lighting.