three.js - 如何单独访问/更改三个.js 中导入的 gltf 对象的材料?
问题描述
我将一个对象从 Blender 导出到一个 gltf 文件,然后将它导入到我的 three.js 项目中。(包括材料,我一共得到了2个)
let loader = new THREE.GLTFLoader();
loader.load('Objects/MyBox.gltf', (gltf) => {
let box = gltf.scene;
box.traverse((child) => {
if (child.isMesh) child.material = boxMaterial; // a material i created in the code earlier
});
scene.add(box);
});
此代码导致我导入的对象(它是一个折叠的盒子)在外部和内部具有相同的材料(boxMaterial)。但是当我在 bleder 中创建它时(盒子内部有内部材料,外部有外部材料)我希望它出现在我的 three.js 项目中。我想要的是= boxMaterial(在three.js中创建)只能在外部材料(在搅拌机中创建)。
我的问题是-> 如何告诉/访问我的导入对象的特定导入材料以在 three.js 中具有某种材料?
简而言之:我的“child.material”包含来自搅拌机的我需要的材料。(总共 2 个)但是我如何只访问第一个?
我想我正在寻找 box.children[0].material.. 之类的东西。索引 0 是我的外部材料。
提前致谢!
解决方案
推荐阅读
- android - Kotlin:使用不同的子类多次实现泛型接口(基类是约束)
- javascript - jQuery:无法选择附加的选择选项
- flutter - Flutter: Webview_flutter => 从其他页面打开 url
- javascript - 在 JavaScript 中将 2 个数组相乘
- vb.net - 用逗号分隔的总和值 VB.Net
- python - 有没有办法在 matplotlib.pyplot.show() 中选择默认鼠标“模式”作为缩放指针?
- flask-session - 在会话中使用烧瓶 auth.verify_password
- javascript - 让 vscode 理解 p5js
- python - 在 Python 中将数组输出保存到 csv
- c# - 两个按键,功能相同