Three.js 无法在字体中显示特殊的德语字符
Can't display special german characters in typeface for Three.js
我下载了 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。
重新转换了字体,还有一些问题。在写:“öÖäÄüÜ”
已解决:
问题是我勾选了选项“反转字体方向。
使用它来修复 'd'、'o' 和 '8' 等字符中的漏洞问题。”在 facetype.js - 没有检查,它有效!
这里的问题是您的 .json 文件不包含您正在使用的特殊字符的正确字形。 Three.js 建议使用 Facetype.js 将字体转换为 .json 格式。
我只是用它来转换 Roboto Mono,效果很好。如下所示。
我下载了 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。
重新转换了字体,还有一些问题。在写:“öÖäÄüÜ”
已解决:
问题是我勾选了选项“反转字体方向。 使用它来修复 'd'、'o' 和 '8' 等字符中的漏洞问题。”在 facetype.js - 没有检查,它有效!
这里的问题是您的 .json 文件不包含您正在使用的特殊字符的正确字形。 Three.js 建议使用 Facetype.js 将字体转换为 .json 格式。
我只是用它来转换 Roboto Mono,效果很好。如下所示。