有一个带有一些 3D 对象和 200 - 300 个小文本标签的 Three.js 场景(< 10% 在一个角度对相机可见)。添加文本精灵将 FPS 从 60 降低到 30 - 40 并且它也非常消耗内存。
有没有办法让精灵更快?我读过缓存材料,但标签都是独一无二的 - 所以这是不可能的。
测试:https : //jsfiddle.net/h9sub275/4/(您可以更改 SPRITE_COUNT 以查看您机器上的 FPS 下降)
编辑 1:将画布大小设置为文本边界将减少内存消耗,但不会提高 FPS。
var Test = {
SPRITE_COUNT : 700,
init : function() {
this.renderer = new THREE.WebGLRenderer({antialias : true}); // false, a bit faster without antialias
this.renderer.setPixelRatio(window.devicePixelRatio);
this.renderer.setSize(window.innerWidth, window.innerHeight);
this.container = document.getElementById('display');
this.container.appendChild(this.renderer.domElement);
this.camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);
this.scene = new THREE.Scene();
this.group = …Run Code Online (Sandbox Code Playgroud)