Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 获取网格中包含的文本_Three.js_Webgl - Fatal编程技术网

Three.js 获取网格中包含的文本

Three.js 获取网格中包含的文本,three.js,webgl,Three.js,Webgl,我需要一些关于我的webGL代码的帮助。 我创建了一个TextGeometry并将其包含在网格中,对此我没有任何问题。但是,我希望在不创建其他TextGeometry的情况下更新此文本 事实上,我的主要目标是翻译一个文本(从右到左),并在他到达左侧时使其消失,但只能逐个字符(如淡入效果) 我尝试了一些尝试:例如,根据文本位置,使用以下命令删除它: 场景。删除(文本) 以及创建另一个文本,该文本与前面减去第一个字符的文本相同。我不知道我是否清楚。。。但是这个解决方案使我的应用程序非常慢:这就是为什

我需要一些关于我的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个对象应该都可以。您看到的速度缓慢可能是由于计算文本的三维几何体,因此创建单个字母对象将避免重新计算整个文本的几何体。