Не удается отобразить специальные немецкие символы в шрифте для Three.js - PullRequest
1 голос
/ 24 мая 2019

Я скачал шрифт 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.

Восстановлен шрифт, остались проблемы. При написании: «öÖäÄüÜ» enter image description here

Решено:

Проблема заключалась в том, что я поставил галочку напротив опции «Обратное направление шрифта». Используйте это, чтобы исправить проблемы с дырами в символах, таких как 'd', 'o' и '8'. "На facetype.js - без этой проверки это работает!

1 Ответ

1 голос
/ 24 мая 2019

Проблема в том, что ваш файл .json не содержит правильных символов для специальных символов, которые вы используете.Three.js рекомендует использовать Facetype.js для преобразования ваших шрифтов в формат .json.

Я просто использовал его, чтобы конвертировать Roboto Mono, и он отлично работает.Как вы можете видеть ниже.

enter image description here

...