通过 threex.dilategeometry.js 进一步平滑 THREE.TextGeometry 对象的顶点

Further smooth the vertices of THREE.TextGeometry object via threex.dilategeometry.js

这是一个非常具体的问题,所以我会尽力阐明和解释这个问题。所以我的目标是创建一种效果,使我的 TextGeometry 看起来膨胀或 Bloated Text。我设法找到了一个名为 threex.dilategeometry.js 的 Three.js 扩展,它允许我扩大对象的几何形状。

  1. 例如,我的文字通常是这样的:

  1. 包含 threex.dilategeometry 后,我应用了 %15 的扩张因子,因此文本现在看起来像这样:

所以你可以看到效果是否符合预期。请查看下面的代码:

    //Self made function to create text

    var one = new threeLab.asset.CreateMasterText(this.text,'Lambert');
    this.scene.add(one.wireframe);
    this.scene.add(one.mesh);

    //lets clone it
    var geoclone = one.geometry.clone();

    //need these to make it work
    geoclone.mergeVertices();
    //geoclone.computeCentroids();
    geoclone.computeFaceNormals();
    geoclone.computeVertexNormals();

    //the threex dilate effect
    THREEx.dilateGeometry(geoclone, 0.15);

    //create new material and add to a new mesh to create the halo effect
    var testMat     = new THREE.MeshNormalMaterial({color:0x222222});
    var meshHalo    = new THREE.Mesh(geoclone, testMat );

    this.scene.add( meshHalo );

为了使扩展正常工作,它依赖于:

    geoclone.mergeVertices();
    geoclone.computeFaceNormals();
    geoclone.computeVertexNormals();

我假设所有的 vertices/face 计算都是用膨胀效果来翻译它们。由于 TextGeometry 的效果,我注意到的一件事是,有些字母翻译得不好,您会在某些字母上看到锯齿状的边缘:

所以我的问题是,是否有可能以某种方式进一步平滑文本几何体的顶点,以提供更平滑且锯齿更少的外观?

更新 2017 年 3 月 30 日

所以我增加了挤压文本几何体的斜角段,这有助于在我应用三重效果之前更好地将其四舍五入

所以我增加了 TextGeometry 对象的 'Bevelsegments' 以创建更圆的文本。练习的全部目的是我想用如下对象包裹文本:

非常感谢@2pha :)