javascript - 单个网格上的多个材质不会更新
问题描述
我正在尝试在不同的面上创建一个具有不同材料的网格(这样我就可以解构和“干扰”一些加载的几何图形)。
出于某种原因,我看不到任何变化,我想知道three.js 中是否发生了一些变化。我确定这曾经可以工作,但是已经有一段时间了,现在我没有收到任何错误,但没有任何更新。
我正在看这种例子:https ://dustinpfister.github.io/2018/05/14/threejs-mesh-material-index/
所以像:
function makeTestShape() {
// An array of Materials
var materialArray = [
new THREE.MeshBasicMaterial({
color: 0xff0000
}),
new THREE.MeshBasicMaterial({
color: 0x00ff00
}),
new THREE.MeshBasicMaterial({
color: 0x0000ff
})
];
// Sphere
var geometry = new THREE.SphereGeometry(1, 15, 15);
// looping over all faces and setting the material index property
geometry.faces.forEach(function (face, i) {
face.materialIndex = Math.floor(i % materialArray.length);
});
var sphere = new THREE.Mesh(geometry,materialArray);
scene.add(sphere);
}
当我运行这段代码时,我看不到几何图形,但也没有错误。什么都没发生。这仍然是正确的方法吗?我错过了什么?我也尝试了需求更新的所有配置,这似乎也没有做任何事情......
谢谢!
解决方案
推荐阅读
- javascript - Javascript函数可选参数
- javascript - JavaScript Web Speech API:我如何需要该值?
- azure-service-fabric - Azure Service Fabric - 删除旧版本的应用程序以回收磁盘空间
- swift - 在 webview 中完成谷歌表单后,如何执行函数?
- d3.js - D3图表条间距问题
- azure - Azure 中继 - 混合连接重用
- javascript - 为什么 document.getElementById("item").value 很难分配给变量?
- python - 提高图像分类模型的准确性
- azure - 是否有一种解决方法可以让 Azure ARM 模板复制块接受零长度数组?
- http - 为 http 请求调用方法的困难