当前位置:   article > 正文

Threejs加载字体加载FontLoader与TTFLoader

Threejs加载字体加载FontLoader与TTFLoader

在 Three.js 中使用自定义字体进行 3D 文本渲染。它最初是以 JSON 格式加载字体,现在Three.js已经有一个 TTFLoader 类,可用于加载 TTF 字体文件并将它们用作 TextGeometry !

1、最初使用FontLoader加载json字体方法如下

  1. const loader = new THREE.FontLoader();
  2. loader.load( './fonts/fontfile.json', function ( font ) {
  3. const textGeo = new THREE.TextGeometry( "测试文字", {
  4. font: font,
  5. size: 18,
  6. height: 5,
  7. curveSegments: 32,
  8. bevelEnabled: true,
  9. bevelThickness: 0.5,
  10. bevelSize: 0.5,
  11. bevelSegments: 8,
  12. } );
  13. textGeo.computeBoundingBox();
  14. const textMaterial = new THREE.MeshPhongMaterial( { color: '#ffe4a6', specular: 0xffffff} );
  15. const mesh = new THREE.Mesh( textGeo, textMaterial );
  16. mesh.position.x = -55;
  17. mesh.position.y = 4.95;
  18. mesh.position.z = -14.55;
  19. mesh.castShadow = true;
  20. mesh.receiveShadow = true;
  21. scene.add( mesh );
  22. })

免费在线ttf转json字体格式:

Facetype.js

2、现在可以直接使用TTFLoader加载ttf格式字体

  1. var loader = new THREE.TTFLoader();
  2. loader.load('./fonts/fontfile.ttf', function(font) {
  3. var textGeometry = new THREE.TextGeometry('Hello, World!', {
  4. font: font,
  5. size: 10,
  6. height: 1
  7. });
  8. var textMaterial = new THREE.MeshBasicMaterial({ color: 0xffffff });
  9. var textMesh = new THREE.Mesh(textGeometry, textMaterial);
  10. scene.add(textMesh);
  11. });

TextGeometry 专门用于为文本创建基础几何图形的类,它的使用方法及自定义选项如下:

TextGeometry(text : String, parameters : Object)

其中

  1. text:要显示的字符串
  2. parameters:
  3.   font — 字体格式
  4.   size — 字体大小,默认100
  5.   height — 字体的深度,默认50
  6.   curveSegments — 曲线控制点数,默认12
  7.   bevelEnabled — 斜角,默认fasle
  8.   bevelThickness — 斜角的深度,默认10
  9.   bevelSize — 斜角的大小,默认8
  10.   bevelSegments — 斜角段数,默认3

另附Threejs材质类型:

  1. MeshBasicMaterial:为几何体赋予一种简单的颜色,或者显示几何体的线框
  2. MeshDepthMaterial:根据网格到相机的距离,该材质决定如何给网格染色
  3. MeshNormalMaterial:根据物体表面的法向量计算颜色
  4. MeshFaceMaterial:这是一种容器,可以在该容器中为物体的各个表面上设置不同的颜色
  5. MeshLambertMaterial:考虑光照的影响,可以创建颜色暗淡,不光亮的物体
  6. MeshPhongMaterial:考虑光照的影响,可以创建光亮的物体
  7. ShaderMaterial:使用自定义的着色器程序,直接控制顶点的放置方式,以及像素的着色方
  8. LineBasicMaterial:可以用于THREE.Line几何体,从而创建着色的直线
  9. LineDashedMaterial:类似与基础材质,但可以创建虚线效果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/518543
推荐阅读
相关标签
  

闽ICP备14008679号