Вавилон. js: огни не видны - PullRequest
0 голосов
/ 27 мая 2020

Итак, вот мой вавилон. 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, сцена засветится.

Это свойства экспорта:

enter image description here

Похоже, что опция Environment Texture: Blender World Node or None не работает.

Вот как это выглядит с файлом .babylon:

enter image description here

И это если объект экспортирован как .obj из блендера:

enter image description here

...