所以我正在做一个Three.js项目,这个项目在某些地方似乎有些滞后。具体地说,在渲染我创建的文本网格时,性能延迟最大,如下所示:
var text1Geo = new THREE.TextGeometry("Hello", {font: font});
text1Mesh = new THREE.Mesh(text1Geo, textMaterial);
text1Mesh.position.set(-6500, 150, -500);
text1Mesh.castShadow = true;
scene.add(text1Mesh);我想知道,如果我使用OBJExporter将文本导出为obj,然后使用OBJLoader将网格加载到场景中,而不是创建一个THREE.TextGeometry,是否会提高性能。这会提高性能吗?如果您想查看整个项目和源代码,请访问here。任何其他关于如何提高性能的技巧或建议都是非常感谢的。谢谢!
发布于 2016-05-19 18:17:26
不是的。
实验仍在进行中,但答案是对文本几何图形进行缓存。
而不是像这样
loadText( 'url.obj' , (t)=>{ /*...do stuff...*/});你可以拥有
computeText(){
var t = new THREE.TextGeometry();
...
}
computeText();
//...do stuff...我的假设是当涉及到解析时,obj是不友好的,但我可能错了。格式化的json可能会更好,或者是二进制。
因此,不需要下载、解析、索引.obj,然后执行某些操作,只需在开始呈现之前计算它即可。
无论是计算的还是下载的,当这个东西命中gpu时,你很可能会遇到延迟。
https://stackoverflow.com/questions/37310289
复制相似问题