javascript - TextGeometry performance in Three.js -


i need have more ~400 text objects on scene. each text object 1 sentence of decimal number 2 digit. echa text reading json file. each text object have position (x,y,z) in scene.

using basic scene i'm having, takes lot of times load each text.

the code here:

function settext(text, textcolor, textsize, positionx, positiony, positionz) {             var  textgeo = new three.textgeometry(text, {         height: 0,         curvesegments: 4,         font: "helvetiker",         //font: "optimer",         weight: "normal",         style: "normal",         size: textsize,         //         //bevelthickness: bevelthickness,         //bevelsize: bevelsize,         //bevelenabled: bevelenabled,         material: 0,         extrudematerial: 1     });      textgeo.computeboundingbox();     textgeo.computevertexnormals();      var textmaterial = new three.meshbasicmaterial({          shading: three.flatshading,          transparent: true,         depthwrite: false,         transparent: true,         needsupdate: true,         color: textcolor,          side:three.doubleside     });       var text = new three.mesh(textgeo, textmaterial);     text.position.x = positionx;     text.position.y = positiony;     text.position.z = positionz;     return text; } 

examples of texts:

"model", "metamodel", "syntax", "sentence" ... 

examples of numbers:

    7.32,      7.81,      8.30,      8.78,  

could please me? thanks!

edit: new code here :

    function createtextgeo(textsize, text) {         var tgeo = new three.textgeometry(text, {             height: 0,             curvesegments: 4,             font: "helvetiker",             weight: "normal",             style: "normal",             size: textsize,             material: 0,             extrudematerial: 1         });          tgeo.computeboundingbox();         tgeo.computevertexnormals();         return tgeo;     }      function creategeomaterial(textcolor) {         var tmat = new three.meshbasicmaterial({             color: textcolor,         });         return tmat;     }      function settext(text, textcolor, tmat, tgeo, x, y, z) {         tmat.color = textcolor;         tgeo.text = text;          var text = new three.mesh(tgeo, tmat);         text.position.set( x, y, z );         return text;     }      function createtexts(value) {         var text;         var mesh;         var x = 5;         var y = 8;         var z = 10;         var keycolor = new three.color('#0b0b61');         var tmat = creategeomaterial(keycolor);         var tgeo = createtextgeo(5, "");          (var = 0; < value; i++) {             mesh = settext(i, keycolor, tmat, tgeo, x * i, y * i, z * i);             scene.add(mesh);         }     }