是否有任何替代使用TextGeometry为VR应用程序构建与Three.JS提供更好的性能?



我刚刚为我正在开发的一款VR游戏执行了一个评分系统。但是性能受到了影响,我认为这是因为我渲染分数的方式。性能问题在我实现评分后就开始了。

我正在创建一个新的THREE。与新的THREE相啮合。TextGeometry,然后在每次分数改变时将其添加到场景中。据我所知,在TextGeometry对象中呈现的字符串不能动态更改,因此需要创建一个全新的对象。

每当分数改变时,会发生以下情况:

this.scene.remove( this.text );
this.material = this.assetStore.mainEmissiveMaterial;
this.geometry = new THREE.TextGeometry( String(this.score), {
font: this.assetStore.mainFont,
size: 6,
height: 0,
} );
this.geometry.translate(-10, 25, -40);
this.text = new THREE.Mesh( this.geometry, this.material );
this.scene.add( this.text );

我的问题有没有另一种显示文本的方式,不会对性能造成太大影响?

在处理几何图形时,不应该在每次需要更新时创建和销毁它们。这会影响你的表现。相反,创建所有10个数字0123456789,将它们保存为模板,然后重用它们。显示和隐藏它们,并根据需要复制它们,但不要在每次文本更改时重新构建数千个顶点和面。

最新更新