DXライブラリを使用したゲームを作成しています。
なるべく文字を表示する際には綺麗なフォントをしようと考えています。
そこで CreateFontToHandle関数を使用してフォントを作成して表示をしようとしているのですが、
どう設定しても表示されるフォントが汚くなってしまいます。
例えばメイリオのようにアンチエイリアスの綺麗なフォントを設定しても、デフォルトでは本来の綺麗さとはかけ離れた文字になってしまいます。
(そもそも、本来あるべきアンチエイリアスが全くかかっていません)
そこでフォントを作成する際にDX_FONTTYPE_ANTIALIASINGやDX_FONTTYPE_ANTIALIASING_4X4を設定してみたのですが、
これでもやはり本来とはかけ離れた汚いフォントになってしまいます。
どうすれば本来のあるべき綺麗なフォントで文字が表示されるのでしょうか。
フォントが汚い(DXライブラリ)
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: フォントが汚い(DXライブラリ)
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: フォントが汚い(DXライブラリ)
スクリーンショットも貼っていただけますか?
https://gyazo.com/ja
http://www.axfc.net/uploader/
https://gigafileupload.com/
https://gyazo.com/ja
http://www.axfc.net/uploader/
https://gigafileupload.com/
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
-
まなし
Re: フォントが汚い(DXライブラリ)
ご返信ありがとうございます。
再現に苦労しているところですので、もう少しお待ち願えたらと思います。
フォントを作成してアンチエイリアスをかけるだけの簡単なコードであれば綺麗に表示がされるのですが、
透過画像の上に文字を表示した時なのか、どうやら特定の状態の場合に汚くなるようで、発生する条件を探っているところです。
再現に苦労しているところですので、もう少しお待ち願えたらと思います。
フォントを作成してアンチエイリアスをかけるだけの簡単なコードであれば綺麗に表示がされるのですが、
透過画像の上に文字を表示した時なのか、どうやら特定の状態の場合に汚くなるようで、発生する条件を探っているところです。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: フォントが汚い(DXライブラリ)
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
まなし
Re: フォントが汚い(DXライブラリ)
申し訳ありません。原因を特定することが出来ました。
作成したプログラム上では、以下の画像のようになっていました。
https://gigafileupload.com/download/079 ... 396386.png
右に行くほど少しずつフォントが綺麗になっていく状態で、特に左端は目も当てられないような状態でした。
原因は同じ文字を同じ位置に何度も描画しているためでした。
今回は『ゲーム作りで学ぶ!実践的C言語プログラミング』
http://www.usamimi.info/~guiprog/game/
のサイトで紹介されていたテキスト表示方法を拡張して文字を表示していました。
ここではサウンドノベル風に1文字ずつ文字を表示させるために、
1回めは1文字を表示、2回めは同じ場所から2文字を表示、3回目は同じ場所から3文字を表示…と繰り返していたため、
描画回数を重ねる度にアンチエイリアスの効いたフォントは重ねて描画され汚くなっていく、という現象が発生していました。
(上記問題の画像では、一番最後の文字は一度しか描画されていないため、一番綺麗に表示されています)
自己解決してしまい、ご迷惑をお掛けして申し訳ありません。
作成したプログラム上では、以下の画像のようになっていました。
https://gigafileupload.com/download/079 ... 396386.png
右に行くほど少しずつフォントが綺麗になっていく状態で、特に左端は目も当てられないような状態でした。
原因は同じ文字を同じ位置に何度も描画しているためでした。
今回は『ゲーム作りで学ぶ!実践的C言語プログラミング』
http://www.usamimi.info/~guiprog/game/
のサイトで紹介されていたテキスト表示方法を拡張して文字を表示していました。
ここではサウンドノベル風に1文字ずつ文字を表示させるために、
1回めは1文字を表示、2回めは同じ場所から2文字を表示、3回目は同じ場所から3文字を表示…と繰り返していたため、
描画回数を重ねる度にアンチエイリアスの効いたフォントは重ねて描画され汚くなっていく、という現象が発生していました。
(上記問題の画像では、一番最後の文字は一度しか描画されていないため、一番綺麗に表示されています)
自己解決してしまい、ご迷惑をお掛けして申し訳ありません。