ページ 11

フォントが汚い(DXライブラリ)

Posted: 2013年8月19日(月) 21:30
by まなし
DXライブラリを使用したゲームを作成しています。

なるべく文字を表示する際には綺麗なフォントをしようと考えています。
そこで CreateFontToHandle関数を使用してフォントを作成して表示をしようとしているのですが、
どう設定しても表示されるフォントが汚くなってしまいます。

例えばメイリオのようにアンチエイリアスの綺麗なフォントを設定しても、デフォルトでは本来の綺麗さとはかけ離れた文字になってしまいます。
(そもそも、本来あるべきアンチエイリアスが全くかかっていません)
そこでフォントを作成する際にDX_FONTTYPE_ANTIALIASINGやDX_FONTTYPE_ANTIALIASING_4X4を設定してみたのですが、
これでもやはり本来とはかけ離れた汚いフォントになってしまいます。
どうすれば本来のあるべき綺麗なフォントで文字が表示されるのでしょうか。

Re: フォントが汚い(DXライブラリ)

Posted: 2013年8月19日(月) 21:43
by softya(ソフト屋)
状況を再現できる超短いコードは作れませんでしょうか?
codeタグをお使いくださいね。
http://dixq.net/board/board.html

Re: フォントが汚い(DXライブラリ)

Posted: 2013年8月19日(月) 21:46
by みけCAT
スクリーンショットも貼っていただけますか?
https://gyazo.com/ja
http://www.axfc.net/uploader/
https://gigafileupload.com/

Re: フォントが汚い(DXライブラリ)

Posted: 2013年8月19日(月) 22:11
by まなし
ご返信ありがとうございます。

再現に苦労しているところですので、もう少しお待ち願えたらと思います。
フォントを作成してアンチエイリアスをかけるだけの簡単なコードであれば綺麗に表示がされるのですが、
透過画像の上に文字を表示した時なのか、どうやら特定の状態の場合に汚くなるようで、発生する条件を探っているところです。

Re: フォントが汚い(DXライブラリ)

Posted: 2013年8月19日(月) 22:34
by softya(ソフト屋)
こういう条件ではないでしょうか?
「文字が太る」
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=2979

Re: フォントが汚い(DXライブラリ)

Posted: 2013年8月19日(月) 22:41
by まなし
申し訳ありません。原因を特定することが出来ました。
作成したプログラム上では、以下の画像のようになっていました。
https://gigafileupload.com/download/079 ... 396386.png
右に行くほど少しずつフォントが綺麗になっていく状態で、特に左端は目も当てられないような状態でした。

原因は同じ文字を同じ位置に何度も描画しているためでした。

今回は『ゲーム作りで学ぶ!実践的C言語プログラミング』
http://www.usamimi.info/~guiprog/game/
のサイトで紹介されていたテキスト表示方法を拡張して文字を表示していました。
ここではサウンドノベル風に1文字ずつ文字を表示させるために、
1回めは1文字を表示、2回めは同じ場所から2文字を表示、3回目は同じ場所から3文字を表示…と繰り返していたため、
描画回数を重ねる度にアンチエイリアスの効いたフォントは重ねて描画され汚くなっていく、という現象が発生していました。
(上記問題の画像では、一番最後の文字は一度しか描画されていないため、一番綺麗に表示されています)

自己解決してしまい、ご迷惑をお掛けして申し訳ありません。

Re: フォントが汚い(DXライブラリ)

Posted: 2013年8月19日(月) 22:44
by まなし
softya(ソフト屋)様

ありがとうございます。今回はこの問題も併発していたようです。
参考にさせて頂きます。