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,效果很好。如下所示。