Qt Distance Field Generator マニュアル
アプリケーションのユーザーインターフェースに大量のテキストが含まれている場合、それがユーザーに初めて表示される際に、わずかではあるが顕著なパフォーマンスへの影響が生じる可能性があります。これは特に、テキストが複数の異なるフォントでレンダリングされる場合や、多数の異なる文字が使用される場合(例えば、漢字(中国語の文字)などの表記体系でよくあること)に当てはまります。
その理由は、後でテキストを効率的にレンダリングするために、Qtが各グリフのグラフィックアセットを生成し、後で再利用できるようにするためです。この処理は、グリフがシーンに初めて表示される際に実行されます。
起動パフォーマンスを最適化したい上級ユーザーの場合、レンダリングタイプとして Text.QtRendering が使用されている限り、このフォントキャッシュを事前に生成することが可能です。Qt Distance Field Generator ツールを使用すると、フォント内のすべてのグリフに対して、あるいは重要なフェーズ中に表示されることが分かっている選択したグリフのみに対して、キャッシュを事前に生成できます。
注:このツールは 、Qtでは自動的に実行できない方法でアプリケーションを最適化したい上級ユーザーが利用するためのものです。一般的な使用ケースのほとんどでは、Qtのデフォルトの動作で十分です。

一般的な使用方法
「Qt Distance Field Generator 」は以下の手順で使用します:
- [ファイル]> [フォントを開く]からフォントファイルを読み込みます。フォントファイルが大きい場合、フォントの読み込みや距離フィールドの生成に多少時間がかかります。
- 処理が完了したら、事前に生成されたキャッシュに保存したいグリフを選択します。理想的には、パフォーマンスが重要な局面でアプリケーションが使用するグリフを選択してください。そうすることで、事前に生成を行うことがパフォーマンスに目に見える効果をもたらします。
- 最後に、「保存」をクリックして新しいフォントファイルを保存します。
注: この方法でフォントを変更するには 、そのフォントのライセンスで禁止されていないことを確認する必要があります。
グリフの選択
グリフの選択には複数の方法があります。最も簡単な方法は、グリフのグリッドをクリックして特定のグリフを選択することです。グリフをもう一度クリックすると、選択を解除できます。
さらに、Unicode 範囲のリストを使用して、特定の範囲内の文字に一致するすべてのグリフを選択することもできます。
ユーザーインターフェースから特定の文字列のグリフを確実に事前生成したい場合は、「選択」>「文字列を選択」機能を使用できます。
注: 後者の 2つの選択方法はいずれも 、フォント内の CMAP テーブルに基づいて結果を算出するため、シェーピングは行われません。
ファイルの使用
ファイルの準備ができたら、次のステップはそれをアプリケーションに読み込むことです。 保存されたファイルは元のフォントファイルのコピーであるため、他のフォントファイルと同様に使用できます。さらに、このファイルには Qt が認識する特別なフォントテーブルが含まれており、Qt Quick でフォントが使用される際に、グリフキャッシュの事前充填に使用されます。
たとえば、アプリケーションのコード内で `FontLoader ` を使用してフォントを読み込むことができます。renderType が `Text.QtRendering `(デフォルト)に設定されている `Text ` 要素でテキストを表示するためにこのフォントが使用されると、事前に生成されたキャッシュが読み込まれ、使用されます。
パフォーマンスの測定
距離フィールドの生成がアプリケーションに与える影響を分析するには、QT_LOGGING_RULES 環境変数を"qt.scenegraph.time.glyph=true" に設定してください。
組み込みキャッシュのない通常のフォントを使用する場合、次のような出力が得られます:
qt.scenegraph.time.glyph: distancefield: 50 glyphs prepared in 16ms, rendering=15, upload=1使用中のすべてのグリフを事前に生成している場合、出力は次のようなものになります:
qt.scenegraph.time.glyph: distancefield: 50 pre-generated glyphs loaded in 2msこの場合、アプリケーションでのレンダリングに使用される距離フィールドの準備にかかる時間は、1フレーム分(16 ms)から2 msに短縮されています。また、この出力を利用して、使用中のすべてのグリフがキャッシュから読み込まれていることを確認したり、パフォーマンスの観点からアプリケーションのライフサイクルにおける問題のあるフェーズを特定したりすることもできます。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.