如何在GLTFLoader加载的模型上应用材质?

时间:2020-07-27 17:56:19

标签: three.js

我有以下代码片段加载Xbot.glb模型(从three.js示例中复制)。当我加载并渲染该模型时,它的颜色似乎是红色的。我的目标是仅更改材料。所以我在下面尝试了以下代码。

var loader = new GLTFLoader();
        loader.load('/models/Xbot.glb', function (gltf) {

                gltf.scene.scale.set(150, 150, 150);

                gltf.scene.traverse(function (child) {
                    if (child.isMesh) {
                        log('Apply model material');
                        child.castShadow = true;
                        child.material = floorMaterial; // Commenting this line works. The model is red.
                    }
                });

                scene.add(gltf.scene);

地板材料:

floorMaterial = new THREE.MeshPhongMaterial({ color: 0xeeeeee, specular: 0x111111, shininess: 40 });

不幸的是,现在该模型没有出现。请注意,floorMaterial已保存,并用于将浅灰色材料应用于地板(PlaneGeometry)。

我需要做什么才能将材料应用于已加载的GLB模型。请注意,香港专业教育学院在S.O上也看到过类似的帖子。其中一些似乎与我看到的问题相同。但是所有这些解决方案似乎都不起作用。

0 个答案:

没有答案