【问题标题】:Getting a text included in a Mesh获取包含在网格中的文本
【发布时间】:2013-03-13 05:48:58
【问题描述】:

我的 webGL 代码需要一些帮助。 我创建了一个 TextGeometry 并将其包含在网格中,对此我没有任何问题。但是,我想在不创建另一个 TextGeometry 的情况下更新此文本。

确实,我的主要目标是翻译文本(从右到左)并在他到达左侧时使其消失,但只是逐个字符(如淡入淡出效果)。

我尝试了一些尝试:例如,根据文本位置,将其删除: scene.remove(text) 并创建另一个与之前相同的文本减去第一个字符。我不知道我是否清楚......但是这个解决方案使我的应用程序非常慢:这就是为什么我不想每次都创建一个对象,而只是更新他的文本属性。

我在 three.js 文档中没有找到很多帮助,你能帮我看看吗? 干杯

【问题讨论】:

  • 如果是短文本,您可以单独创建每个字符并将所有字符添加到组中(Object3D)。稍后您可以从组中删除 (group.remove(character1))
  • 我已经认为这不是一个坏主意,问题是我的文字不短...这是一条广告信息(110 个字符...)
  • 我不知道 Three.js,但是 110 个对象在任何像样的引擎中应该都可以。您看到的缓慢可能是由于计算文本的 3D 几何,因此创建单个字母对象将避免重新计算整个文本的几何。

标签: three.js webgl


【解决方案1】:

你可以试试这个:

创建一个 PlaneGeometry 并使用包含文本的隐藏画布对象中的图像对其进行纹理化,然后将图像变换应用到画布本身(根据需要淡化)并在 Three.js 中随着纹理在场景中移动而不断更新它.

有关如何将画布对象用作(文本)图像的示例,我在以下位置发布了一个示例:http://stemkoski.github.com/Three.js/Texture-From-Canvas.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多