我正在尝试借助“文本几何”创建时钟。为了更新时间,我需要更新“文本几何”中的文本,这可以通过删除并重新创建新的“文本几何”来完成。
每当我添加一个新的Text Geometry时,它都会冻结我的浏览器:
// Remove old mesh
earthClockMesh.geometry.dispose();
earthClockMesh.material.dispose();
group.remove(earthClockMesh);
//add new mesh
earthClockMesh = this.getTextMesh(
new Date(diluatedTime).toLocaleString(),
textMaterial
);
group.add(earthClockMesh);
任何人都知道更好的方法,可以在不冻结浏览器的情况下更新“文本几何”中的文本。
现场例子
https://codesandbox.io/s/peaceful-boyd-x859m
当TextGeometry更改时,您可以看到粒子冻结了片刻
最佳答案
使用THREE.TextBufferGeometry
将提高性能,因为它产生的对象分配比TextGeometry
少得多。此外,THREE.Geometry
的每个实例在第一次渲染之前都会在内部转换为THREE.BufferGeometry
。如果您另外降低curveSegments
的数量,则应该几乎没有明显的滞后。three.js R107