2011-07-16 8 views
0

directxでベクターフォントの実装を知っている人はいますか?Direct3dのベクトルテキストレンダリングシステム

誰もこれには適していないのですか?

また、基本的なズームをサポートしているDirectxで書かれた読者の例もあります。

+0

DirectWriteをお探しですか? http://msdn.microsoft.com/en-us/library/dd371554%28v=vs.85%29.aspx – RocketR

+0

残念ながら、私はこのタスクにdirect3dを使用する必要があります。 – thirsty93

+0

私は本当に、directxでクリーンで高品質のズーム可能なフォントを持つ方法を探しています。私は他のものを描画しないので、それらはかなりCPU集約的である可能性があります。しかし、私はテキストで画面を埋めることができる必要があります。 – thirsty93

答えて

1

ダイレクトベクターフォントは、ラスタライズされたデータ(バーチャルまたはピクセル)を保持する中間テクスチャを必要とするため、D3Dではうまく機能しません。そのため、多少余分な作業が必要です。 (パフォーマンスが制限されている場合やパフォーマンスについて気になる場合は)簡単かつ効率的に作業できるようにします。ハードエッジはあまり上手く保存されませんが、これは2つのチャンネルを使用して固定することができます(これは、非常にうまくスケールアップされますが、フォントが複雑な場合は、データ、距離フィールドも簡単にスムージング、ボールド、アウトライン、グローおよびドロップシャドウを可能にします)、アルバルブの改良されたアルファテストで高度なベクトルテクスチャレンダリングが可能になりました。シェーダに依存しています(ただし、FFPでアルファテストを行うことはできますが、ピクセルシェーダでsmoothstepを使用すると、オーバーヘッドを最小限に抑えてはるかに優れた結果が得られます)が、ps v1を超えるものは必要ありません。論文については、http://www.valvesoftware.com/publications.htmlを参照してください。完全な実装リファレンスについては、バルブソースsdkのシェーダーを参照してください。 (私はちょうどこれを使用してDx11ベースのテキストレンダラーを構築しました。素晴らしいツールですが、実行時にそれらを作成する必要はありません。

+0

距離フォントへのリンク+1(真剣に人々、_use stuff_)、D3Dはベクトルフォントを使用できないと言って-1です。ベクトルフォントは、フォントをラスタライズするのではなく、三角形を使って描画することを意味します。あなたがしなければならないことは、グリフを元に戻すのではなく、各グリフのメッシュを生成することです。これは単純なプロセスではありませんが、確かに実行可能です。 –

+0

@nicol:私はまだそれを修正し、それをfleshing中に私を捕まえたようだ。 D3Dでベクターフォントを使用することについて少し明確になるように更新されました。 – Necrolis

関連する問題