title: Three.js engrave a mesh
body: <p>I want to Real-time engrave ring service. So, I want how to engraving ring in <code>Three.js</code>. </p>
  
  <p>I bring a ring in a gltf file.Then I tried ThreeCSG.js and the error is <code>not convex!</code></p>
  
  <p>This is the example code.</p>
  
  <pre><code>var ring, temp;
  
  THREE.DRACOLoader.setDecoderPath('');
  THREE.DRACOLoader.setDecoderConfig({type:'js'});
  
  var loader = new THREE.GLTFLoader();
  loader.setDRACOLoader(new THREE.DRACOLoader());
  loader.load('files/test.gltf', function(gltf){
      gltf.scene.traverse(function(child)){
          if(child.name === 'ring'){
              child.material = new THREE.MeshStandardMaterial({
                  color : 0xffffff
              });
              ring = THREE.CSG.fromMesh(child);
              temp = child;
          }
      }
      scene.add(gltf.scene);
  })
  
  function engrave(text){
      var fLoader = new THREE.FontLoader();
      fLoader.load('font.json', function (font){
          var fGeometry = new THREE.TextGeometry(text, {
              ...
          });
  
          var fMaterial = new THREE.MeshStandardMaterial({
              ...
          });
  
          var font = new THREE.Mesh(fGeometry, fMaterial);
  
          var csg = THREE.CSG.fromMesh(font);
  
          var result = mesh.subtract(csg);
  
          temp.visible = false;
          scene.add(THREE.CSG.toMesh(result, fMaterial);
      });
  }
  </code></pre>
  
  <p>I wish somebody answer my question.</p>