three. js - импортированный объект, но материала не видно - PullRequest
1 голос
/ 26 февраля 2020

Я сделал объект в blender и экспортировал в формате gltf. Me sh прекрасно загружается, но не загружает материал, который я сделал для объекта. На двух изображениях показано сравнение файла блендера и способа его загрузки на сцену.

Объект в блендере

Объект в трех js сценах

Вот код, который я использовал:

var Scene = new THREE.Scene();

var cameraZoom = 40;
var Camera = new THREE.OrthographicCamera(window.innerWidth / - cameraZoom, window.innerWidth / cameraZoom, window.innerHeight / cameraZoom, window.innerHeight / - cameraZoom, 0.1, 1000);
Camera.position.set(0, 0, 3);

var Renderer = new THREE.WebGLRenderer();
Renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(Renderer.domElement);

//GLTF loader set up, for loading our object
var GLTFLoader = new THREE.GLTFLoader();
var CastleWall; //A reference to the mesh in blender

function Initialise() {
    GLTFLoader.load('Models/CastleWall.glb', function (GLTF)
    {
        Scene.add(GLTF.scene);
        CastleWall = GLTF.scene.getObjectByName('CastleWall');
        CastleWall.position.set(-16, 9, 0);
        CastleWall.rotation.set(0, 1.5708, 0);
    });
    var light = new THREE.DirectionalLight(0xffffff, 1, 50);
    light.position.set(0, 10, 10);
    Scene.add(light);
};

function Update() {
    requestAnimationFrame(Update);
    Renderer.render(Scene, Camera);
};

Initialise();
Update();

Я проверил консоль, но он сказал, что названный мной материал был экспортирован. Также по какой-то причине он работал с текстурами изображений и базовыми c цветами. Любая помощь будет оценена. Спасибо.

График шейдеров для моего материала

...