通过 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 扩展,它允许我扩大对象的几何形状。
- 例如,我的文字通常是这样的:
- 包含 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 :)
这是一个非常具体的问题,所以我会尽力阐明和解释这个问题。所以我的目标是创建一种效果,使我的 TextGeometry 看起来膨胀或 Bloated Text。我设法找到了一个名为 threex.dilategeometry.js 的 Three.js 扩展,它允许我扩大对象的几何形状。
- 例如,我的文字通常是这样的:
- 包含 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 :)