javascript - 三个js更新tubegeometry不可见r100
问题描述
我有一个功能,可以在网格移动后每帧生成新管。更新管状几何的函数如下所示:
function UpdateKettingMeshes(kettingMeshes, kraalElements, kettingCurvesArray, kettingShapeArray) {
for (let i = 0; i < kettingMeshes.length; i++) {
const element = kettingMeshes[i];
const elCurve = kettingCurvesArray[i];
const elShape = kettingShapeArray[i];
elCurve.v0.copy(kraalElements[i].kraal.position.clone());
elCurve.v1.copy(kraalElements[i].kraal.position.clone().add(elShape.controlPointDirection1.clone().multiplyScalar(elShape.controlPointPower1)));
elCurve.v2.copy(kraalElements[i + 1].kraal.position.clone().add(elShape.controlPointDirection2.clone().multiplyScalar(elShape.controlPointPower2)));
elCurve.v3.copy(kraalElements[i + 1].kraal.position.clone());
const geometry = new THREE.TubeGeometry( elCurve, 80, 1.2, 8, false );
element.geometry.vertices = geometry.vertices;
element.geometry.verticesNeedUpdate = true;
}
return kettingMeshes;
}
我在每一帧都调用这个函数,如下所示:
kettingMeshData = UpdateKettingMeshes(kettingMeshData, kralenObjects, kettingCurveData, kettingShapeData);
这工作正常,没有错误,当我console.log
检查kettingMeshData
顶点是否已更新时,我看到是这种情况,请参见下图:
但问题是场景中的实际网格没有变化?为什么不更新?
旁注,所有管状网格都位于 three.group() 中。
如果有什么不清楚的地方告诉我,我可以澄清一下!
解决方案
推荐阅读
- powershell - PowerShell 为 Outlook 0365 提取 msExchRecipientTypeDetails
- java - Dynamic Variable of expected arrivals
- hibernate - 顽皮的后退OffIfDiskSpoolFull
- python - “或”在while循环混乱中
- c# - NLog 与 ASP.NET CORE 2 和 AspNetBufferingWrapper - 未找到错误
- bash - 如何从链接列表中并行卷曲
- c - malloc中的C结构数组
- physics - 如何防止 [圆形] 身体滑入静态身体之间的 0px 间隙
- c++ - 尝试将字符串中的字符与回车进行比较不起作用
- javascript - vuejs将复选框数组传递给父模板仅传递一个值