我是Three.js的新手,因此我觉得我错过了成功谷歌自己摆脱这个烂摊子所需的术语。
我有一个从数组数组生成的网格物体。它在加载时看起来很好,但随后我将THREE.Geometry
对象的顶点和面设置为具有相同尺寸但位置不同的新内容。
据我所见,那些不起作用的事情:
verticesNeedUpdate
colorsNeedUpdate
uvsNeedUpdate
以下是之前和之后的屏幕截图:
请不要羞辱我那肮脏的金字塔。提前谢谢!
答案 0 :(得分:0)
我也是初学者...当我不得不更新我的场景时(添加灯光以后它不同......)我用过:
function updateMaterials(scene) {
scene.traverse(function (node) {
if (node.material) {
node.material.needsUpdate = true;
if (node.material instanceof THREE.MeshFaceMaterial) {
for (var i = 0; i < node.material.materials.length; i++) {
node.material.materials[i].needsUpdate = true;
}
}
}
});
}
这可能正是你设置你的&#34; NeedUpdate&#34; ?
答案 1 :(得分:0)
好的,在使用Chrome开发工具浏览每个可能的变量和功能后,我找到了它。
解决方案是THREE.Geometry()
需要在每次顶点更新后设置以下标志:my_geometry_object.normalsNeedUpdate = true;