Three.js 获取网格中包含的文本
我需要一些关于我的webGL代码的帮助。 我创建了一个TextGeometry并将其包含在网格中,对此我没有任何问题。但是,我希望在不创建其他TextGeometry的情况下更新此文本 事实上,我的主要目标是翻译一个文本(从右到左),并在他到达左侧时使其消失,但只能逐个字符(如淡入效果) 我尝试了一些尝试:例如,根据文本位置,使用以下命令删除它:Three.js 获取网格中包含的文本,three.js,webgl,Three.js,Webgl,我需要一些关于我的webGL代码的帮助。 我创建了一个TextGeometry并将其包含在网格中,对此我没有任何问题。但是,我希望在不创建其他TextGeometry的情况下更新此文本 事实上,我的主要目标是翻译一个文本(从右到左),并在他到达左侧时使其消失,但只能逐个字符(如淡入效果) 我尝试了一些尝试:例如,根据文本位置,使用以下命令删除它: 场景。删除(文本) 以及创建另一个文本,该文本与前面减去第一个字符的文本相同。我不知道我是否清楚。。。但是这个解决方案使我的应用程序非常慢:这就是为什
场景。删除(文本)
以及创建另一个文本,该文本与前面减去第一个字符的文本相同。我不知道我是否清楚。。。但是这个解决方案使我的应用程序非常慢:这就是为什么我不希望每次都创建一个对象,而只是更新他的文本属性
我在three.js文档中没有找到很多帮助,你能帮我一下吗?
干杯你可以试试这个:
创建PlaneGeometry并使用包含文本的隐藏画布对象中的图像对其进行纹理处理,然后将图像变换应用到画布本身(根据需要进行淡入),并在Three.js中的纹理在场景中移动时不断更新纹理
关于如何将画布对象用作图像(文本)的示例,我有一个示例发布在:您可以尝试以下方法:
创建PlaneGeometry并使用包含文本的隐藏画布对象中的图像对其进行纹理处理,然后将图像变换应用到画布本身(根据需要进行淡入),并在Three.js中的纹理在场景中移动时不断更新纹理
关于如何将画布对象用作图像(文本)的示例,我在以下位置发布了一个示例:如果是短文本,则可以分别创建每个字符并将所有字符添加到组中(Object3D)。以后你可以从组中删除(
group.remove(character1)
)我已经认为这是个不错的主意,问题是我的文本不短。。。这是一条广告消息(110个字符…),我不知道Three.js,但在任何一个合适的引擎中,110个对象应该都可以。您看到的速度缓慢可能是由于计算文本的三维几何图形,因此创建单个字母对象将避免重新计算整个文本的几何图形。如果是短文本,则可以单独创建每个字符并将所有字符添加到组中(Object3D)。以后你可以从组中删除(group.remove(character1)
)我已经认为这是个不错的主意,问题是我的文本不短。。。这是一条广告消息(110个字符…),我不知道Three.js,但在任何一个合适的引擎中,110个对象应该都可以。您看到的速度缓慢可能是由于计算文本的三维几何体,因此创建单个字母对象将避免重新计算整个文本的几何体。