[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 02/18 10:44 / Filesize : 122 KB / Number-of Response : 523
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

DirectX総合スレ (Part8)



1 名前:名前は開発中のものです。 [2008/03/12(水) 16:15:18 ID:Jo1vXsg5]
言語はC++
他の言語使ってる奴はいますぐ消えろ

■過去スレ

DirectX総合スレ
Part 7: pc11.2ch.net/test/read.cgi/gamedev/1179516297/
Part 6: pc11.2ch.net/test/read.cgi/gamedev/1163691532/
Part 5: pc8.2ch.net/test/read.cgi/gamedev/1157727402/
Part 4: pc8.2ch.net/test/read.cgi/gamedev/1132937938/
Part 3: pc5.2ch.net/test/read.cgi/gamedev/1105333209/
Part 2: pc5.2ch.net/test/read.cgi/gamedev/1095863432/
Part 1: pc5.2ch.net/test/read.cgi/gamedev/1083728025/

48 名前:名前は開発中のものです。 mailto:saage [2008/05/03(土) 18:37:37 ID:9cZkXa2s]
背景が3Dなんですよ。
シェーディングをかけないブレゼンハム3Dまでなら自力で組めますが、
現代のゲームではちと見た目がきついっす。

キャラが2Dでビルボードじゃ出来ない処理を要求されているので、
CreateDIBとDXの併用になりそうです。

lockはDX8でもかけられますか?

49 名前:名前は開発中のものです。 mailto:saage [2008/05/03(土) 18:43:40 ID:9cZkXa2s]
どこのメーカーかバレてしまうかもしれませんが、
キャラだけラスタかけたりしたいそうです>企画者

50 名前:名前は開発中のものです。 mailto:sage [2008/05/03(土) 18:51:04 ID:9peHMeqo]
別にチャットみたいに出力文字を想定できないわけじゃないんでしょ?
だったらロード時にテクスチャに使う全部文字を書いちゃえよ。実行時にロックする必要ないでしょ。
Direct3Dの世界ではテクスチャにさえ書き込んでしまえばあとはどうにでもなる。

ぶっちゃけsjisの文字コード全部書き込んでも圧縮テクスチャ使えるなら
VRAMの消費は数メガ程度だぞ。(馬鹿デカイ文字は無理だが)

51 名前:名前は開発中のものです。 mailto:saage [2008/05/03(土) 18:57:31 ID:9cZkXa2s]
24ドットフォントでも1bitを(アンチエイリアスのため)4byteで2304byteで、
7MB位ですもんね。そのセンで考えてみます。
本当は倍角の48ドットフォントをBit単位で持って、4bitでアンチをかけたいのですが、
考えが古いですね(^^;

52 名前:名前は開発中のものです。 mailto:saage [2008/05/03(土) 18:59:05 ID:9cZkXa2s]
2Dキャラのラスタも、どうにかなりますかね?

53 名前:名前は開発中のものです。 mailto:sage [2008/05/03(土) 19:06:28 ID:9peHMeqo]
圧縮テクスチャだと品質が問題になるのでそこは気をつけた方がいいけど。
その用途ならGetGlyphOutlineから得たラスタデータをA4R4G4B4のテクスチャに
書き込むのがお勧め(特殊っぽいフォーマットだが実際はほぼ全てのVGAでサポートされてる)

54 名前:名前は開発中のものです。 mailto:saage [2008/05/04(日) 11:29:23 ID:6OF83MEc]
ランス6とかだと、DX9の3D画面に2D表示してるけど、どうやってるのかな。

55 名前:名前は開発中のものです。 mailto:sage [2008/05/04(日) 12:06:45 ID:rCaAnAix]
普通の四角形ポリゴンじゃないの

56 名前:名前は開発中のものです。 mailto:sage [2008/05/04(日) 12:35:56 ID:HYL1vr0j]
テクスチャじゃないの



57 名前:名前は開発中のものです。 mailto:sage [2008/05/04(日) 13:25:34 ID:g3p8Tn2z]
>>52
世間にはピクセルシェーダーや頂点シェーダーというものもある。
ラスタなら1ドットの高さのポリゴンを並べてうねうねやればそういう風に見える。

58 名前:名前は開発中のものです。 mailto:saage [2008/05/04(日) 15:01:21 ID:6OF83MEc]
DirectX版とソフト3D版で違いが分からなかったから、多分違うんじゃない?
もしそうだとしたら、凄い技術だね。

59 名前:名前は開発中のものです。 mailto:sage [2008/05/05(月) 04:32:23 ID:SUehAUO0]
ランスやった事ないから知らんけど
3Dに2D表示するぐらいがそんなに凄い技術なの?

60 名前:名前は開発中のものです。 mailto:sage [2008/05/05(月) 05:37:52 ID:aMcrPD70]
素人からすれば凄い技術なのかも

61 名前:名前は開発中のものです。 mailto:sage [2008/05/05(月) 06:19:27 ID:9KzMv7vI]
3D格闘ゲームの体力ゲージを見て大興奮するような変態だと予想

62 名前:名前は開発中のものです。 mailto:saage [2008/05/05(月) 11:28:10 ID:+OVxubzP]
いや。わけわかんね。しょうがないんでDirectX7を使ってる。
DX9でバックサーフェスの拾得は出来たけど、描画できんしDX9遅いし。
全てテクスチャで処理するとして、文字の色は2枚目のテクスチャを重ねるでok?
色のテクスチャはLockRectで書き込むって感じでok?
2Dは素直にCreateDIBSection使った方が幸せになれる予感。

63 名前:名前は開発中のものです。 mailto:saage [2008/05/05(月) 12:48:04 ID:+OVxubzP]
テクスチャへの書き込み出来たけどさ、ドライバによって色が違う(^^;
Intelの古い奴だとやばい。

64 名前:名前は開発中のものです。 mailto:sage [2008/05/05(月) 16:00:06 ID:/b4BEf3P]
日記にするのは止めてくれ
どうしてもしたければ、せめてまとめれ
いちいち報告するな

65 名前:名前は開発中のものです。 mailto:sage [2008/05/05(月) 22:28:12 ID:KNcbC22k]
日記を書いちゃいかんっていう法律でもできたか?

66 名前:名前は開発中のものです。 mailto:sage [2008/05/05(月) 23:15:55 ID:IY7MbHfF]
法律に背かなきゃなんでもやって良いと考えているのなら、向かないよ
社会生活に。



67 名前:名前は開発中のものです。 mailto:sage [2008/05/05(月) 23:50:49 ID:CTHIy0Lf]
2Dは D3DXSprite かなんかつかっとけよ。
いまは CPU パワーもあるから、
半透明とかもごり押しでやってもある程度フレームレートでるけど、
GPU 使った方が楽。他のことにエネルギー使えばいいのに。


68 名前:名前は開発中のものです。 mailto:sage [2008/05/06(火) 06:10:40 ID:sGj5OVNm]
変換済頂点指定して板ポリ作成、ってそう言う事じゃないのか?
…うーん、わからん…

69 名前:名前は開発中のものです。 mailto:sage [2008/05/10(土) 21:10:07 ID:cC83BuII]
色は細かくなけりゃ頂点カラーと乗算で縦横グラデまでならかけれるしロック無いし早いだろ

70 名前:名前は開発中のものです。 mailto:sage [2008/05/17(土) 10:35:26 ID:bL7nmuJE]
3*3の逆行列を求めるにはどうすればいいですか
一番軽い方法を教えてください

71 名前:名前は開発中のものです。 mailto:sage [2008/05/17(土) 10:37:11 ID:Cg6oj/2U]
正規直行してるなら転置。

72 名前:名前は開発中のものです。 [2008/05/24(土) 23:34:55 ID:6QB8Oyw/]
>>70
ttp://ufcpp.net/study/linear/determinant.html#sweeping

73 名前:名前は開発中のものです。 mailto:sage [2008/06/03(火) 10:03:24 ID:j//kSg4T]
ちょっとずれてるかも知れませんが…

パノラマ画像から6面のキューブマップ用のテクスチャを生成
するツールってありますか?フリーであればうれしいのですが…

よろしくお願いします。

74 名前:名前は開発中のものです。 mailto:sage [2008/06/03(火) 11:34:47 ID:zcDBju+C]
>>73
ttp://www.google.co.jp/search?hl=ja&q=panoramic+image+cubemap&lr=

↑このサイトはすごいよ。大抵の物は見つかる。



75 名前:名前は開発中のものです。 [2008/06/03(火) 17:36:16 ID:uR52q4hG]
DirectX9.0の日本語ヘルプの「ステップ 1 : ワールド トランスフォーム行列の定義」
で三角形が回りません。これは回らないものなのですか?
文章もソースもどう見ても回しているようにしか見えないのですが、何故か回りません。
しかしタイトルが定義とあるので、定義だけしているとも解釈できます。

回す部分のソース
D3DXMATRIX matWorld;
D3DXMatrixRotationY( &matWorld, timeGetTime()/150.0f );
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );

何故回らないのか、教えてください><

76 名前:名前は開発中のものです。 mailto:sage [2008/06/03(火) 18:30:32 ID:n386hU5y]
描画部分も書かないと原因は分からん。
たぶんrhwを含むフォーマットで描画しているせいだろう。
FVFにrhwを含む場合は座標変換はスキップされる。



77 名前:名前は開発中のものです。 mailto:sage [2008/06/03(火) 18:36:12 ID:uR52q4hG]
>>76
rhwを使っていました。
なるほどrhwはトランスフォーム済みの固定オブジェクト専用なのですね。
ありがとうございます。

78 名前:名前は開発中のものです。 [2008/06/03(火) 21:18:55 ID:mbHLPAZr]
凄腕エスパー発見w

79 名前:名前は開発中のものです。 mailto:sage [2008/06/04(水) 14:29:18 ID:K2bzFLiO]
ボンの初期状態ってクオータニオン(0,0,0,1)にしてる?
それとも、特定軸を静止モデルが向いている方向に回転したクオータニオンにしてる?
後者の方がモーションの共有化とかも出来そうだけど、
前者の方が楽と言えば楽だよな。殆ど変わらないといえば変わらないのかもしれんが。

80 名前:名前は開発中のものです。 mailto:sage [2008/06/04(水) 17:27:13 ID:ubsD6FOx]
0,0,0,1(回転しない)にするもっともらしい理由があればそうする
だから普段は後者でやってる

81 名前:名前は開発中のものです。 mailto:sage [2008/06/04(水) 20:06:26 ID:0AKV8uXY]
>>74
ありがとうございます。日本語のキーワードではツールは全然
ひっかからなくて難儀していました。
しばらく眺めてみます。

82 名前:名前は開発中のものです。 [2008/06/07(土) 22:19:06 ID:UvZAvFMX]
DirectX End-User Runtime Web Installer
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en
DirectX End-User Runtimes (June 2008)
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=822640ab-0983-4c41-9c70-632f6f42c557&DisplayLang=en
DirectX Software Development Kit
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=519aae99-b701-4ca1-8495-39ddde9d7030&DisplayLang=en


83 名前:名前は開発中のものです。 mailto:sage [2008/06/09(月) 00:21:36 ID:7fcEsoAV]
ubershader ってどういう物?

84 名前:名前は開発中のものです。 mailto:sage [2008/06/12(木) 13:39:33 ID:fzsMfOLk]
テクスチャの書き換えに関して質問があります。
条件は元のテクスチャがあり、ある矩形の領域を別のテクスチャで上書きするというものです。

テクスチャをロックして書き換える方法と、レンダリングターゲットとなるテクスチャに先に下地のテクスチャを描画して、上書きしたいテクスチャを後に描画する方法のどちらが高速なのでしょうか?

この様な場合テクスチャブレンディングを使うのが妥当なのでしょうが、諸々の事情で私のグラボで取り扱えるステージ数(4ステージ)を使いきってしまったのでこの様なブレンディング済みテクスチャをあらかじめ用意するといった邪道な実装にすることになってしまいましたw

85 名前:名前は開発中のものです。 mailto:sage [2008/06/12(木) 14:11:27 ID:rHcvi9p8]
最近のプログラマは不思議だ

毎回思うんだが
どうして自分で確認しないんだろうか

誰かが「前者のほうが速いよ」と言ったら
そのまま信じて前者で実装するのだろうか

最近のプログラマは不思議だ

86 名前:名前は開発中のものです。 mailto:sage [2008/06/12(木) 15:17:52 ID:W2HuJRyF]
Q.どちらが高速なのでしょうか
A.やってみりゃいいだろ



87 名前:名前は開発中のものです。 mailto:sage [2008/06/12(木) 17:46:23 ID:TL19mqdy]
>>84
どうでもいいが、最後のwは笑うところなのか?

88 名前:名前は開発中のものです。 mailto:sage [2008/06/12(木) 18:52:23 ID:jAc1OSoI]
(苦笑
の代わりなんだろ

89 名前:名前は開発中のものです。 mailto:sage [2008/06/12(木) 19:33:15 ID:24iuPwV5]
>>85
ゆとり世代

90 名前:名前は開発中のものです。 mailto:sage [2008/06/12(木) 19:34:24 ID:24iuPwV5]
まあ、おっさん世代の若いころと比べて
やることが多いからな。
一個一個自分でやってると、時間が足りない。

91 名前:名前は開発中のものです。 mailto:sage [2008/06/12(木) 19:55:16 ID:VjP0i/a5]
データを取っても、分析する能力が無いんだろな

答えをもらったとして、それが自分の環境に一致しているかの判断しなきゃならん
貰った答えが環境相違で違ってるかもしれない。

変に聞き回っている無駄な時間を浪費するよりも、
答えが出るのが解っていることは やっちゃった方が早い

92 名前:名前は開発中のものです。 mailto:sage [2008/06/12(木) 21:47:31 ID:32NcRgJX]
>>84
マジレスしてやるよ。

マルチパスレンダリングしろ。その方が圧倒的に速い。
1ピクセルずつ書き換えるのがまずCPUパワーを食う。
そして、ロックにかかる時間も大きい。
GPUにやらせて、CPUパワーは有意義に使う。

俺は昔はハードウェアアクセラレーターがある場合と
無い場合で条件わけしてコードを書き換えてたが、
どうあがいてもハードウェアアクセラレーターの転送には勝てない。

まぁ、>>84 みたいな質問をすると言うことはヘタクソな実装、
たとえば、テクスチャを1テクセルずつ転送とかして、
「ロックした方が速いです」とか言いそうな気もするが。

93 名前:名前は開発中のものです。 mailto:sage [2008/06/12(木) 22:29:51 ID:24iuPwV5]
質問よく読んでなかったけど、
よく読んだらCPUvsGPUな質問じゃねーか
駄目だこりゃ

94 名前:名前は開発中のものです。 mailto:sage [2008/06/13(金) 00:40:21 ID:wWwbVMxw]
テクスチャの生成時のプールのオプションによるんじゃないか?

あと、拡大縮小、回転を含むならGPUに任せた方が早いような気がする

95 名前:名前は開発中のものです。 mailto:sage [2008/06/13(金) 03:11:27 ID:lkjDe53G]
>>90
本気でそう思ってるならゆとり乙といわざるをえない

96 名前:名前は開発中のものです。 mailto:sage [2008/06/13(金) 07:18:31 ID:dAMxMqct]
オッサンだけど、最近、掲示板に質問を投げっぱなしにして
その間に自分は別のことを進めるという技を覚えた。
やっぱりマルチコア時代だしな。みんなには内緒だよ



97 名前:名前は開発中のものです。 mailto:sage [2008/06/13(金) 13:30:54 ID:aX+CU4Pm]
俺は、マルチコア時代以前からマルチいわれるぜ。
はわわー

98 名前:名前は開発中のものです。 mailto:sage [2008/06/14(土) 13:41:26 ID:+oPJi5is]
>>85-86
個人的には実測ってのも抵抗があるんだよな
測ってみたらAよりBの方が速かった -> B採用
って、論理的じゃなくて感覚的でちょっと違うような。

99 名前:名前は開発中のものです。 mailto:sage [2008/06/14(土) 13:58:35 ID:dE2SWOay]
グラフィックカードがらみになると単にGPUを高速化すればいいってもんじゃないからなぁ・・・。
GPUに負荷をかけてでもCPUを浮かせる方がいい場合もあるし
テクスチャで細工したりするほうがいい場合もあるし。

100 名前:名前は開発中のものです。 mailto:sage [2008/06/14(土) 15:44:32 ID:+oPJi5is]
結局のところ、どのプログラムにでも当てはまることだが
自分でifだのwhileだの加算だの代入だの書いて作る処理より
ライブラリ関数1つ呼んで同等の結果が得られるなら、
そっちを選んどけってことだよな。

101 名前:名前は開発中のものです。 mailto:sage [2008/06/14(土) 17:51:10 ID:moyItCiD]
>>100
GPUでも自分で加算のコードを書いて
1ピクセルずつ処理するんだけど。


102 名前:名前は開発中のものです。 mailto:sage [2008/06/14(土) 18:32:06 ID:42PAiJkh]
原理を理解したうえで同等の結果を得られる関数を使うんならいいけど。。。

103 名前:名前は開発中のものです。 mailto:sage [2008/06/14(土) 20:14:11 ID:12E+Sv+3]
>>90
マジレスすると、バブル期を生き抜いた基地外オッサン達にそんなこと言っても全く無意味だぜ。
効率という概念が無いからな。
なまじ金があるからどうせ勉強すらせずに遊びまくりだったんだろ。
たぶん、車輪の再発明という言葉の意味すら知らないんだろうな。
しかもその金を自分が努力して稼いだとか勘違いしてて若年連中に説教するからな。
もろにゆとり世代だった俺から見てもオッサン連中は頭おかしいわ。まじで。

104 名前:名前は開発中のものです。 mailto:sage [2008/06/14(土) 21:19:07 ID:sQYb7t+N]
どんな連中を指して言ってるのか知らないが、世間知らずなのまるだしだぞ

105 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 01:41:40 ID:GhI7cfHM]
>>103
まともな文章も書けないとは、さすが、ゆとり世代っすねw

106 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 07:31:27 ID:4E2F6CNQ]
>>103
「自分で考えろ」と言われると何もできなくなるゆとり世代乙
そんな奴は戦力にならないからクビになって当然

いやホント、ゆとりは教えてクンばっかであきれるわ



107 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 08:02:17 ID:qZlaDy59]
うちの「ゆとりくん」は、ネットでサンプル拾ってこないと何もできない子。
ネット禁止になったら仕事ペースが1/10未満に落ちたんでわかった。
会社の生リモホ丸出しで各板で聞きまくる「ゆとりくん」にはやめてもらった。
入社試験のとき持ってきたゲームは某有名な人のソースをいじっただけらしい。

108 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 08:24:30 ID:4E2F6CNQ]
まあプログラマまでネット全面禁止にする会社もどうかと思うけどな

109 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 10:45:09 ID:qZlaDy59]
他所にソースや生データ流したバカがいたから禁止になった(それも「ゆとりくん」なんだが)

110 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 11:26:43 ID:+iOP3YTd]
「流した」理由が漏洩じゃないなら、特定人とか特定PCのみでも使えるようにしないと生産性がた落ちにならないか?ゲームはそうでもないのかな
というか、故意に漏洩したら解雇だろうけど

111 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 11:33:42 ID:E2JHmr/C]
ネットできないとモチベーションも下がるよね

112 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 11:40:40 ID:I6OdKveL]
ゆとりと言っても大抵の人間は社内で成長するよ
成長しない新人と成長させない上司先輩はどこにでもいるし

113 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 11:48:06 ID:v7yJWqJ+]
最近の会社は新人教育のノウハウすら無くしてしまったからな。
会社自体がゆとり。

114 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 12:06:40 ID:4E2F6CNQ]
教えてクンの質問に1〜10まで答えるのは教育がなってない上司のする事だな
もちろんそいつなりに考えたり調べたりした上の質問なら1だけでも教えるのはありだが
自分の脳みそ使わせないと応用性のない人間にしかならんからね

115 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 19:52:28 ID:WFjiCAcV]
オッサンだけど、ネット禁止だと俺も効率10分の1に落ちる自信があるんだが。

116 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 20:01:11 ID:E2JHmr/C]
俺なんか仕事しなくなる自信がある



117 名前:名前は開発中のものです。 mailto:sage [2008/06/15(日) 22:59:28 ID:XaIxLvOe]
ネット出来なくなったら Hello world の綴りを確かめられず不安になって胃に穴が開くマは少なくないと聞く

118 名前:名前は開発中のものです。 mailto:sage [2008/06/16(月) 00:49:24 ID:qvaUGwk9]
リファレンスをネットに頼ってるな。

119 名前:名前は開発中のものです。 mailto:sage [2008/06/16(月) 02:18:48 ID:3ygB0R6E]
DirectMusicでOggをストリーミング再生する方法について調べています。
Oggを通常再生することには成功したのですが、5分位の曲を再生するとロードとデコードで5秒近くかかってしまいます。
なのでストリーミング再生したいのですが、どのような方法があるのでしょうか?

120 名前:名前は開発中のものです。 mailto:sage [2008/06/16(月) 02:34:16 ID:CfYCH8oK]
>>119
fmod使えばいいんじゃね?

121 名前:名前は開発中のものです。 mailto:sage [2008/06/16(月) 09:03:03 ID:nkTbEW2s]
>>119
Oggストリームするなら素直にDirectSound使えよ

122 名前:名前は開発中のものです。 mailto:sage [2008/06/19(木) 17:04:20 ID:jfby45iB]
3000個ぐらい頂点バッファ確保したらブルースクリーンになるな。
最初、なにが原因で落ちてるのかわからなかった。

123 名前:名前は開発中のものです。 mailto:sage [2008/06/19(木) 19:31:15 ID:rOBzS8e6]
質問です。SDKは9.0c March2008
D3DPOOL_SYSTEMMEMのサーフェスをロックして書き換えて、
随時他サーフェスにUploadSurfaceしてるんですが、XPではまったく問題が無いのに
VistaだとたまにLockRect関数で処理が停止されます。
D3DLOCK_DONOTWAITを与えてやって、失敗時逃がすようにすると
今度は成功したときUnlockRectで停止されます。
これはどうすればいいんでしょうか?

124 名前:名前は開発中のものです。 mailto:sage [2008/06/19(木) 21:21:53 ID:J9NyTZGt]
>>122
それはおかしくないか?
メモリ不足ならOUTOFMEMORYエラー返ってくるし。

DONOWAITってGPUが使用中のときはスルーするだけだから
そこで失敗してたらUnLock()しちゃ駄目だろ。

よほどの理由がない限りはサーフェイスロックしてCPUで書き換えなんて
しないでピクセルシェーダーで直接書いた方がいい。

125 名前:名前は開発中のものです。 mailto:sage [2008/06/19(木) 22:36:10 ID:jfby45iB]
>>124
いや、メモリ不足はない。ちゃんとチェックは入れてるし。
ちなみにドライバはオメガドライバ。
普通のドライバだとスカイプが当たるので、オメガドライバを使ってるんだけどね。
確保する頂点バッファの数を減らしたら普通に動くようになった。

126 名前:123 mailto:sage [2008/06/19(木) 22:37:44 ID:rOBzS8e6]
>>124
テキストをGetGlyphOutlineで取得してセコセコSYSTEMMEMサーフェスに書いてるんですよ
もしかしたら別スレッドでUpdateSurfaceしてるのが原因とか?



127 名前:名前は開発中のものです。 mailto:sage [2008/06/19(木) 22:53:09 ID:J9NyTZGt]
>>126
スレッド分けてるなら同期に関しては気を使わないと死亡だぞ。
GetGlyphOutline()なら最初からD3DXFont()使う方が速いし便利じゃね?とか思うけど。
あるいは利用する文字を事前に画像に全部展開しておくか。

128 名前:123 mailto:sage [2008/06/19(木) 23:41:05 ID:rOBzS8e6]
>>127
D3DXFontは60FPSだと重くて使い物にならないだろ
文章表示だから、最初にちょっと重い処理をしてあとはテクスチャから描画するだけ
一応クリティカルセクションで排他制御はしてるんだけどね
XPや2000で問題なくてVistaで動かないとか、どうしてもゲイツを疑ってしまう・・・

129 名前:名前は開発中のものです。 mailto:sage [2008/06/19(木) 23:45:33 ID:J9NyTZGt]
>>128
GetGlyphOutline()を文字毎に呼んでわざわざサーフェイス転送する方が使い物にならないだろ・・・。
D3DXFont()は中である程度の文字はテクスチャにキャッシュ出来るようになってるぞ。

130 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 00:04:24 ID:G3IoCWKi]
>>129
そうなのか?昔20文字表示しただけでFPSがた落ちだったんだが
まあ他にも面倒なことをやってまで、サーフェス転送する必要があるんでこの方法にしてる

131 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 00:08:44 ID:88LRPetr]
>>128
俺も似たようなシステムでフォントを描画してる。
たしか、Vista でもそんなに遜色なく動いた気がする。
ちなみにシングルスレッドでやってる。
一回、シングルスレッドにして動かしてみたら?

>>129
キャッシュを作れば軽いよ。
うちは、キャッシュするフォントとは別に最初にから用意するフォントと
2つシステムを持ってて自動で判断して使い分けるようになってる。
キャッシュのヒット率を上げるような最適化はまだやってない。

132 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 00:08:49 ID:3x+Mh2k+]
文字描画なら事前に画像に展開して、それ利用して文字を描画する方法が最強。
コンシューマーでは当たり前の方法だけどWindowsだと意外とマイナー。

どんなものでも事前に作っておけるならそれが最速だし、
どうしても動的に作る必要があるならピクセルシェーダー使うかストリームアウト使う方がいい。

133 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 01:02:57 ID:G3IoCWKi]
>>131
とりあえずシングルスレッド仕様にしてみた
コードがすっきりしていい感じ。XPでは問題なく動作
Vistaは大学にしか無いから、明日試してみます

134 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 04:54:23 ID:DQo2PM0/]
>>132
Windowsのシステムフォントを画像に展開するのはライセンス的にまずくなかったか?
だから動的に描画してるんだと思ったが。

俺はFreeType使って描画してる。ノベルゲームでも1000字程度らしいから、文字を走査
したテーブルを作って、最初にまとめて生成してるよ。
後はテクスチャロックして適宜転送してる。
ビデオメモリにの容量に問題ないなら、全部のっけたほうがいいんだろうけどね。

135 名前:名前は開発中のものです。 [2008/06/20(金) 07:31:33 ID:6THOk7MT]
実行時に展開するんじゃないかと

136 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 10:51:47 ID:88LRPetr]
展開するとか言ってる奴、チャットとかどうすんだよ。



137 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 12:49:44 ID:LR2HafI7]
GetGlyphOutlineはAAの品質を設定できるのが強みだけど、文字が必要以上に
ボケるのが嫌で俺は使ってない。(特に横線)
AA無しの横幅4倍で描画して、横だけ1/4に縮小が一番バランスがいいと思う。

138 名前:133 mailto:sage [2008/06/20(金) 17:20:12 ID:G3IoCWKi]
Vistaで問題なく動いた。とりあえず感謝です

>>136
チャットなんてそんなに難しい漢字は使わないから、
フォントイメージキャッシュをうまく作れば大丈夫だろ
俺はテクスチャサーフェスに文章を直接書き込んじゃうけどな
テキストボックスはD3DXFontで表示

139 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 18:36:40 ID:yFi5+cKL]
実行時にキャッシュするとなると、1文字あたり1秒かからないにしても
シフトJISの6000文字分をキャッシュするのに1時間以上待たされることになるから
現実的な方法ではないな。

140 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 19:57:23 ID:88LRPetr]
>>138
とりあえず良かったね。

いや、この辺りの実装は人によって違うだろうから、
まぁ、文字が表示できればそれで良いとは思うけどね。

ちなみに、すごーく前は俺はGDI描画用のビットマップを
CreateDIBSection で作ってそれに描いて、ロックしてから転送してた。
最適化矩形で転送してたけど、重かった。

141 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 19:59:38 ID:88LRPetr]
>>139
6000文字でもそんなにかかるわけ無い。

6000文字だとメモリが無駄な方が大きい。
サイズ違いのフォントを描画することも考えると、
動的なキャッシュが一番メリットあると思うけどなぁ。

142 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 20:11:38 ID:DQo2PM0/]
>>139
ちょおまどんだけ重い処理なんだよテキスト描画wwww

143 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 22:52:38 ID:2WCNqkQL]
フリーのフォント拾ってくるor有料のフォントを買う。
ツールを作る、事前に全部展開した状態で画像ファイルを作っておく。
展開時間0、描画速度最速。
しかも事前生成なのでどんなエフェクトもかけ放題ってなもんだ。

144 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 23:20:17 ID:56wrysHR]
ファイルの読み込み時間とサイズの変更で文字が汚くなる、
リアルタイムに配色やスタイルの変更に対応出来ないなど欠点だらけだけどね。

145 名前:名前は開発中のものです。 mailto:sage [2008/06/20(金) 23:31:15 ID:2WCNqkQL]
若干大きめに作っておいてフィルタで縮小するべ。
色変更・太字・斜体・影は描画時にも解決できるし。

リアルタイムの配色やスタイルの変更をどれほどのゲームがするのかが逆に気になるけどなー。
フォントなんて起動時の常駐読みになるんだからそこまで気にするものじゃないだろ。
モデル何体か読むのとかわらんだろ。

146 名前:名前は開発中のものです。 mailto:sage [2008/06/21(土) 00:20:34 ID:/7rkvMr8]
フォントを用意したり、標準でやってくれる機能を自分で実装したりと、
メリット極薄で無駄な手間ばかりをかけ放題ってなもんだ。



147 名前:名前は開発中のものです。 mailto:sage [2008/06/21(土) 00:26:03 ID:7vOAv24t]
>>146
D3DXSprite+D3DXFontが最強なのは同意

148 名前:名前は開発中のものです。 mailto:sage [2008/06/21(土) 00:26:33 ID:Y/LgtI+D]
>>145
太字はめんどくさそうだな。

テクスチャに書き込んで描画&キャッシングのシステムを
作る方が手間的に楽だと思うんだけどね。
使用予定の文字数を計算してテクスチャサイズを計算してとか
やってエフェクトとかつけたりしてると意外とめんどくさそうだけど。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<122KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef