トップページ⇒tech
17コメント5KB

美麗な文字の出力方法

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 NGNG
システムにインストールされてあるフォントを用いて
美麗な文字を出力するためにはどうすれば良いのでしょうか?
文字精度が命のプログラムを作っているので、
以下のコードでフォントを作成してもボコボコで気になるのです。
LOGFONT lf;
lf.lfHeight = 33; lf.lfWidth = 0;
lf.lfEscapement = 0; lf.lfOrientation = 0;
lf.lfWeight = FW_NORMAL; lf.lfItalic = 0;
lf.lfUnderline = 0; lf.lfStrikeOut = 0;
lf.lfCharSet = SHIFTJIS_CHARSET;
lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
lf.lfQuality = PROOF_QUALITY;
lf.lfPitchAndFamily = FIXED_PITCH | FF_DONTCARE;
フェース名はシステムにインストールされてあるTrueTypeフォントを
列挙して使っています。
一応、パラメータを色々かえてやってみたのですがうまくいきません。
限界ならばあきらめきれるのですが、
どこかのフリーウェアで非常に綺麗な文字を出力しているのを見ると
なんらかの方法があるようなのであきらめきれません。
知っている方、お願いします。
最後に長文すいません。
0002名無しさん@お腹いっぱい。 NGNG
状況がよくわからないんで頓珍漢なこといってるかもしれんけども
倍サイズくらいで持ってきて自前でアンチエイリアスとかしながら
縮小して描画するのはドウよ?
0003名無しさん@お腹いっぱい。 NGNG
>2
縮小したらまた崩れるんじゃないの?
一文字だけならともかく汎用的にはつかえないだろうね。

>1
自作フォントじゃ駄目?
0004名無しさん@お腹いっぱい。 NGNG
WindowsのTTFのエッジの処理って結構汚いよ。
読めればいいってとこならば問題ないけど
グラフィック系アプリでは時間かかってもやっぱし自前でやることになる。
アンチエイリアスの方法も用途によっていろいろあるしね。
0005名無しさん@お腹いっぱい。 NGNG
1じゃないけど質問。
TrueTypeフォントの各制御点(ベジエ曲線の頂点)を取得するAPIってないの?
0006名無しさん@お腹いっぱい。 NGNG
最近、趣味でゲームを作り出して、ゲームのことを勉強してるのですが、
エヴァンゲリオンのタイピングゲームは文字表示を見てみたら、アンチ
エイリアシングしてましたね。
なにか軽い処理でアンチエイリアシングする方法があるのだとは思いますが...。
0007名無しさん@お腹いっぱい。 NGNG
ゲーム用のフォントはPhotoShopなんかでつくって
BMPで保存してテクスチャで表示というのが一般的。
リアルタイムに綺麗にアンチエイリアシングするのは厳しいかも。
0008名無しさん@お腹いっぱい。 NGNG
使うフォントが少なければ、あらかじめアンチエイリアス
かけとくって手もあるんだろうが・・・。
日本語じゃそういうわけにいかんか。
0009名無しさん@お腹いっぱい。 NGNG
>7
背景の絵が変化するような所で、アンチエ処理をやってるんで、
リアルタイムにやってると思います。
00107 NGNG
すいません。
今確認してみたら、背景とは関係無しにアンチエしてるようでした。
0011>9 NGNG
文字のテクスチャと背景との合成は
ビデオボードのレンダラがやってるんじゃないかな?
001210 NGNG
間違えました。
10の名前はは7ではなくて9です。
0013名無しさん@お腹いっぱい。 NGNG
背景と合成する必要があるならば、アンチエイリアス用の
マスクだけをあらかじめ用意しておきます。
これならリアルタイムでもそんなに重くありません。
(もちろんアンチエイリアスしないよりは重いけど)

小さい文字をきれいにアンチエイリアスするのはけっこう面倒です。
0014名無しさん@お腹いっぱい。 NGNG
自分の場合、
あらかじめスーパーサンプリングでアンチフォント作って
4bppで持っておく方法つかってます。
表示は16bitColorなんで、[16][32768]のテーブル使ってます。
0015名無しさん@お腹いっぱい。 NGNG
[16][32768]のテーブルってどういう意味なんですか?
0016395NGNG
 ∧ ∧
( ′∇`)
0017395NGNG
      
  ∧ ∧     ___________
\( ´∀`)/
<
_____________________                  
■ このスレッドは過去ログ倉庫に格納されています