【发布时间】:2013-03-13 05:48:58
【问题描述】:
我的 webGL 代码需要一些帮助。 我创建了一个 TextGeometry 并将其包含在网格中,对此我没有任何问题。但是,我想在不创建另一个 TextGeometry 的情况下更新此文本。
确实,我的主要目标是翻译文本(从右到左)并在他到达左侧时使其消失,但只是逐个字符(如淡入淡出效果)。
我尝试了一些尝试:例如,根据文本位置,将其删除:
scene.remove(text)
并创建另一个与之前相同的文本减去第一个字符。我不知道我是否清楚......但是这个解决方案使我的应用程序非常慢:这就是为什么我不想每次都创建一个对象,而只是更新他的文本属性。
我在 three.js 文档中没有找到很多帮助,你能帮我看看吗? 干杯
【问题讨论】:
-
如果是短文本,您可以单独创建每个字符并将所有字符添加到组中(Object3D)。稍后您可以从组中删除 (
group.remove(character1)) -
我已经认为这不是一个坏主意,问题是我的文字不短...这是一条广告信息(110 个字符...)
-
我不知道 Three.js,但是 110 个对象在任何像样的引擎中应该都可以。您看到的缓慢可能是由于计算文本的 3D 几何,因此创建单个字母对象将避免重新计算整个文本的几何。