我下载了Roboto.ttf字体,并使用typeface.js将该字体转换为.json并使用Three.js加载
var loader = new THREE.FontLoader();
loader.load( 'fonts/Roboto Mono_Regular.json', function ( font ) {
var geometry = new THREE.TextGeometry( 'äüö', {
font: font,
size: 80,
height: 2,
curveSegments: 12,
bevelEnabled: true,
bevelThickness: 10,
bevelSize: 2,
bevelSegments: 5
});
var material = new THREE.MeshPhongMaterial({ambient: 0x000000, color: 0x000000});
label = new THREE.Mesh( geometry, material );
label.name = "label"
label.scale.set(0.01,0.01,0.01);
label.rotation.y = 1.57;
label.position.set(0.85,-0.32,1);
scene.add(label);
});
但是它仅显示:??? -Roboto字体包含这些字符,并且转换后的.json在字形中具有这些字符。所有文件具有相同的编码。我怎样才能解决这个问题?与波兰字符相同;我想我需要utf-16。
已解决:
问题是我勾选了“反向字体方向”选项。 使用此功能可解决facetype.js上“ d”,“ o”和“ 8”之类的字符中带有孔的问题-无需进行检查即可!
答案 0 :(得分:1)
这里的问题是您的.json文件未包含所用特殊字符的正确字形。 Three.js建议使用Facetype.js将字体转换为.json格式。
我只是用它来转换Roboto Mono,效果很好。正如您在下面看到的。