Итак, вот мой вавилон. js код:
var canvas = document.getElementById("renderCanvas");
var meshes = [];
var engine = null;
var scene = null;
var sceneToRender = null;
var createDefaultEngine = function() { return new BABYLON.Engine(canvas, true, { preserveDrawingBuffer: true, stencil: true }); };
var createScene = function () {
var scene = new BABYLON.Scene(engine);
var light = new BABYLON.PointLight("Omni", new BABYLON.Vector3(80, 80, 0), scene);
light.intensity = 1;
var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0.8, 200, BABYLON.Vector3.Zero(), scene);
camera.attachControl(canvas, false);
BABYLON.SceneLoader.Append("/assets/", "shirt.babylon", scene, function (scene) {
meshes = scene.meshes;
});
scene.registerBeforeRender(function () {
light.position = camera.position;
});
scene.onPointerObservable.add(function(evt){
var selected;
if(evt.pickInfo.hit && evt.pickInfo.pickedMesh && evt.event.button === 0){
selected = evt.pickInfo.pickedMesh;
evt.pickInfo.pickedMesh.material.diffuseColor = BABYLON.Color3.Random();
}
}, BABYLON.PointerEventTypes.POINTERUP);
return scene;
}
var engine;
try {
engine = createDefaultEngine();
} catch(e) {
console.log("the available createEngine function failed. Creating the default engine instead");
engine = createDefaultEngine();
}
if (!engine) throw 'engine should not be null.';
scene = createScene();;
sceneToRender = scene
engine.runRenderLoop(function () {
if (sceneToRender) {
sceneToRender.render();
}
});
// Resize
window.addEventListener("resize", function () {
engine.resize();
});
Я использую блендер для экспорта модели в файл .babylon
. Когда я визуализирую сцену в html, все темно, я почти ничего не вижу. Сцена черная. Мой свет не работает. Однако, если я экспортирую файл в .obj
, сцена засветится.
Это свойства экспорта:
Похоже, что опция Environment Texture: Blender World Node or None
не работает.
Вот как это выглядит с файлом .babylon
:
И это если объект экспортирован как .obj
из блендера: