【C++】 DirectX初心者質問スレ Part14 【C】at TECH
【C++】 DirectX初心者質問スレ Part14 【C】 - 暇つぶし2ch112:デフォルトの名無しさん
07/09/17 18:10:59
>>111
あっぷできたよかくにんよろしく
URLリンク(ud.gs)
ぱすはふぁいるめい
かくちょうしはてきすとになっているから
きおつけてねw

113:デフォルトの名無しさん
07/09/17 18:36:35
>>112
熱烈感謝です。無事ダウンロードできました。有難うございました。
ぺコリ、ペコリ、ペコリ

114:デフォルトの名無しさん
07/09/17 19:31:17
>>99-101
は?何が言いたいの?
デバイスのロストはその2種類でいいでしょ?

115:デフォルトの名無しさん
07/09/17 22:58:30
馬鹿の書いた掲示板の書き込みを馬鹿が信じる典型的な例だな。

116:デフォルトの名無しさん
07/09/17 23:38:37
>>115
masaさんはダブルスティールの人だよ
デバイスロストが2種類あるっての正しいでしょ?
俺もこの辺すげー苦労した覚えあるし

D3DDeviceを各オブジェクトで保持する組み方してたから
そこの辺軒並み組み直しになった希ガス

このときはじめてポインタ保持はグローバル変数と同じぐらいの大罪だと知って死んだw

117:デフォルトの名無しさん
07/09/17 23:48:05
>>116
BBX見てる奴でMasaを知らない人間は少数だと思うが、
誰々が言ってることなんだから正しい、とかそういう考えはよくないぞ

118:デフォルトの名無しさん
07/09/17 23:49:36
デタラメをここまで盲目的に信じるとはもやは救いようがない。

119:デフォルトの名無しさん
07/09/18 00:09:30
>>117
いや、だから、馬鹿じゃないってただそんだけだよ
だれにだって間違いはあるだろうし、別に盲信してるわけじゃないよ

>>118
だから何が間違ってるっていいたいの?
デバイスロストが2パターンあるところはいいんだよね?

120:デフォルトの名無しさん
07/09/18 00:17:16
>デバイスロストが2パターンあるところはいいんだよね?
全然良くない。
馬鹿を盲信する一方、その他の人間の話を全く聞かないな。

121:デフォルトの名無しさん
07/09/18 00:19:09
だれか正解をまとめてくれ

それか住民全員を納得させられるような攻撃力のあるリソースを提示してくれ

122:デフォルトの名無しさん
07/09/18 00:28:07
>>120
え?詳細まで書けよ

D3DDeviceの指す先が変わってることってあるよな?
これは確実にあるよな?
なぜなら、俺が各オブジェクトに保持してほぼ全ソース修正する原因がこの出来事だから覚えてる
この件があって以来、ポインタ保持は絶対にしないと心に決めた出来事がこれだからだ

っつーことはデバイスが生きてて、リソースが死ぬって状況がないって言ってる?

123:デフォルトの名無しさん
07/09/18 00:29:35
>>119
自らがReleaseして使えなくしているのを、パターンの一つに含めている時点でおかしい。
デバイスのインタフェイスを開放することをデバイスロストとは言わない。

あとは>>6
>②の場合の対処はD3DDeviceは生きているので死んだリソースだけチェックして
>死んだリソースのみ復旧作業を行う
そもそもロストの原因を知る術も、個別にどのリソースが使用不能なのか確認するAPIも存在しない。
チェックできないのにどうやって特定のリソースのみ復旧できるんだ?

124:デフォルトの名無しさん
07/09/18 00:31:37
>>121
俺のソースはそのBBXのしかない

デバイスロストは2種類あると思った
で、俺が対応したのは2種類ともD3DDeviceを作り直して解決する方法
つまり、デバイスが破棄されても、リソースだけ死んでも、
デバイスまで一度破棄して、デバイスから作り直す方法
昔のソースだけど製品として出荷したのはそういうコメントになってるし

125:デフォルトの名無しさん
07/09/18 00:32:05
>>122
肝心の「なぜなら」の説明が、「~心に決めた出来事がこれだから」てwww
自分の体験談かよwwww

126:デフォルトの名無しさん
07/09/18 00:34:10
IDirect3DDevice9とそれ以前で違うって可能性ない?
だとしたらここまでみんなの記憶が混乱してるのも頷けるんだけど。

127:デフォルトの名無しさん
07/09/18 00:37:10
>>123
>そもそもロストの原因を知る術も、個別にどのリソースが使用不能なのか確認するAPIも存在しない。
>チェックできないのにどうやって特定のリソースのみ復旧できるんだ?
実は俺のとった対応方法はデバイスを作り変えるっていう2つの方法に対応できる方法だけなので
各リソースの有無を判別して復旧させることはしてないから
各リソースごと判別っていうのは俺はやってないからそこは嘘なのかも

覚えてるのはりソースだけ死んで(一部か全部かは知らない)デバイスが生きている場合と
デバイスからまるごと死ぬ場合があるってところだけ
各リソースがってところにひっかかってるなら俺の嘘かもしれないので気にしなくていいス

128:デフォルトの名無しさん
07/09/18 00:38:45
>D3DDeviceの指す先が変わってることってあるよな?
意味不明


129:デフォルトの名無しさん
07/09/18 00:40:41
>>126
この方式になったのは8からで、デバイスロストの仕様はそこから変わっていない。

130:デフォルトの名無しさん
07/09/18 00:41:21
>>126
POOL_MANAGEDを設定することで確実に死ななくなってる可能性はあるね
だから、デバイスが死んだときだけ気にすればいいっていう

SDKのサンプルが復旧時にPOOL_MANAGEDであるかどうかしか見てないから
もしかしたらデバイスが死んだときしか気にしなくていいのかもね

131:デフォルトの名無しさん
07/09/18 00:42:56
>>129
仕様はそうかもしれないけど挙動もそうなのかな?
なんかやけにSDKのサンプルがしつこく死なない気がするんだけど
前は解像度切り替えするだけで真っ黒だった希ガス

132:デフォルトの名無しさん
07/09/18 00:43:53
デバイスロストしてもデバイスインタフェイスが使えなくなることも死ぬこともない。
そもそもインタフェイスが死んだらロストしたことを知ることも出来ないし、
メンバを呼び出した時点で例外を出してアプリが落ちる。

133:デフォルトの名無しさん
07/09/18 00:54:56
>>132
あー、そうだ
俺がアフォでした

D3DDeviceを捨てて作り直してるのは俺なのなw
でも、D3DDeviceが死んだら作り直すしかないから、
結果各オブジェクトでD3DDeviceを保持してると困るってことで
別にD3DDeviceが違うもんになるわけじゃないのなw

すいませんでした

134:デフォルトの名無しさん
07/09/18 00:57:04
どうしようもないオチが…

135:デフォルトの名無しさん
07/09/18 01:01:21
>>121
一応まとめてみたんで貼る。なんかもう解決しちゃってるぽいんで無視してくれ。


例のBBXのMasaの投稿を読み直してみたけど、彼は別に間違ったことは言っていない。

彼が言っているのは、あくまで「リソースを再作成する必要が生じるタイミング」が二種類ある、
ってことだけ。つまり、
1) デバイスがロストした時
2) プログラマが意図的にデバイスを開放した時
だと言っている。

問題なのは、この記述を「ロストが二種類ある」と誤って解釈してしまっている一部のスレ住人だ。
何故か、上の1)2)を「リソースのロスト」と「デバイスのロスト」などと区別してしまっているようだ。

DirectXのヘルプで書かれている「デバイス消失時の~」ってのは要するに 1) の状態のことだ。
2) の状態のことを、ロストだとか消失だとか普通は言わない。

さらに混乱の元となっているのは、上のBBXのスレッドが、DirectXのサンプルフレームワークを
前提にした議論になってること。
本来ならプログラマが明示的にデバイスを開放しない限り 2) は起こりえないのだが、
サンプルフレームワークではHAL→HELの切り替えなどのタイミングでこれを内部で自動的に
行っているらしく、一部の住人がこれを
「もう一つのロスト状態」だとか「デバイスの指す先は勝手に変わることがあるよな?」
などと勘違いしている、という訳だ。

136:デフォルトの名無しさん
07/09/18 01:05:57
>>135
なんかよくわかんね

状態だけでいうと
テクスチャのデータが吹っ飛んで一部のオブジェクトが黒くなっちゃうときと
Presentの関数が失敗するときってのは同じ現象でいいわけ?

137:デフォルトの名無しさん
07/09/18 01:11:41
>>129

確かにD3D8からっぽいね。
URLリンク(msdn.microsoft.com)

>デバイスを処理状態に戻せない場合、アプリケーションはデバイスが元に戻るまで待機します。
>この場合、アプリケーションは IDirect3DDevice8::Resetを使用して、デバイス リソースをすべて削除し、
>デバイスを破棄する必要があります。
>その後、初期化の場合と同じように IDirect3DDevice8::CreateDevice を使用してデバイスを
>再作成する必要があります。
>アプリケーションを開発する場合は、デバイスの消失に対応するために 1 つのコード パスで
>アプリケーションを開発することをお勧めします。このコード パスは、
>起動時のデバイスの初期化に使用されるコード パスとほぼ同じになります。

しかし微妙に意味不明だなこれ。
どうせしばらくResetできなさそうなら、
いったん管理リソースも解放してメモリ節約しようって意味かいな?

ただそのちょっとあとにこういう一文も。

>デバイスをリセットできず、廃棄してから再作成する必要がある場合は、
>リソースもすべて再作成する必要があります。

問題はどういう場合にその「必要」があるか、か。

138:137
07/09/18 01:21:18
あーもしかしてこういうことか。

(1)フルスクリーンでアプリケーションを作る。
(2)Alt+TABをフォーカスを失わせる
(3)この時点でIDirect3DDevice9::TestCooperativeLevelはD3DERR_DEVICELOSTを返す。

問題はここから。
IDirect3DDevice9::Resetを使えば確かにフルスクリーンからウィンドウモードに
デバイス再構築無しでモード変更は可能。
が、TestCooperativeLevelがD3DERR_DEVICENOTRESETを返すまではResetは呼べない。

つまり、いったんAlt+TABでフォーカスを再取得できれば
D3DERR_DEVICENOTRESET→Reset→ウィンドウモード、のコンボが使えるけど、
フォーカスを得ないままウィンドウモードに変更しようと思ったら
いったんデバイスを破棄しないとダメぽと。

どう?

139:デフォルトの名無しさん
07/09/18 01:35:52
>>138
んなこと誰も議論してないんだが。
一人で勝手に議題をすり替えといてどう?なんて言われてもなあ

ちなみに>>137の"必要"ってのは日本語版では訳がいまいちで分かりづらいが、
単にD3DPOOL_DEFAULTなリソースのことを言っている

140:デフォルトの名無しさん
07/09/18 01:37:52
>>139
んじゃとりあえず>>101へのレスってことにしといてちょ。

141:デフォルトの名無しさん
07/09/18 01:43:32
亀レス乙
ところで>>6とか>>114は同一人物なのかね?

142:デフォルトの名無しさん
07/09/18 01:44:43
>>141
そうですよ

143:デフォルトの名無しさん
07/09/18 01:50:38
>>6>>114
ネ申

144:デフォルトの名無しさん
07/09/18 02:12:58
TestCooperativeLevelがD3DERR_DEVICENOTRESETを返すときって言うのはGPU側のコンテキストが無効になっている。
ちなみに、GPU側のコンテキストってのはVRAM上のリソース等(DEFAULTのリソースと考えて構わない)。
ただし、ランタイムがCPU側に対応するコンテキストを持っているから、これをReset()のまえに開放してあげなくてはいけない。

で、Reset()が失敗する場合は、ランタイム側がデバイスコンテキストすらも無効化してしまっている場合。
この場合はランタイムが全てを諦めてしまっているのでCPU側のリソース(MANAGED、SYSTEMMEM、SCRATCH)も全て無効化されてしまっている。
よって、全てを開放し、参照カウントを元に戻して、デバイスの削除を行い、全てを新デバイスから再初期化しないといけない。

つまり2段階って言うのは、最初がGPU側、次がCPU側って事。


145:デフォルトの名無しさん
07/09/18 02:42:22
>>144
つまりReset()が失敗する場合は、MANAGED、SYSTEMMEM、SCRATCH全部アウトで、
>>139の「単にD3DPOOL_DEFAULTなリソースのことを言っている」ってのは誤読ってこと?

146:デフォルトの名無しさん
07/09/18 02:59:10
亀レスついでに。>>100

HALからREFへの変更はD3DDEVTYPE変えないといけないんで
Resetじゃ無理だけよ。

>>100が抜き出したところだけ見るとできてしまうように見えるので
誤解する人が出てこないよう一応指摘しとく。

あとはBehaviorFlagsの変更もResetじゃ無理か。
ロストと関係なくてスマソ。

147:デフォルトの名無しさん
07/09/18 05:14:53
たかがデバイスロストの対応だけでこの有様。
Windowsは腐ったジャムみたいだな。

148:デフォルトの名無しさん
07/09/18 06:24:12
ここでDirectXにドップリ漬かっている俺が登場。

普通に使っている分には、D3DDeviceが使えなくなることは無いが
アプリケーション実行中にnViewのモードを切り替えるような無茶な
ことをしたら、Resetではどうしようもなくなった。

あと試してはいないが、プライマリモニタの切り替えとか、無効化も
駄目っぽい気がする。物理的に別のビデオカードにプライマリが
移ることもあるしね。

149:デフォルトの名無しさん
07/09/18 06:52:48
POOL_MANAGEDなんてあんなメモリばかすか食った挙句
失敗してるんじゃ世話ねぇよこいつって感じ
結局、POOL_DEFAULTにして何かあったらD3DDeviceから作り直しするのが
一番楽だしコスト的にいいってのが昔の俺の結論だった・・・っぽい?w

150:デフォルトの名無しさん
07/09/18 08:43:04
POOL_MANAGEDは内部的に転送にUpdateSurfaceに相当する機能が使えそうなんだけど
そうなるとPOOL_DEFAULTに比べてCPUパフォーマンスが良くなるんじゃない?

151:デフォルトの名無しさん
07/09/18 10:53:05
パフォーマンス重視で動的に更新するのが前提ならAGPメモリ上に置くのが常識なのに、
試しもしないで>>150みたいな適当なことをほざく馬鹿はなんとかなんとかならんのか?

152:デフォルトの名無しさん
07/09/18 11:02:43
2chに厳正な書き込みを期待する馬鹿もなんとかならんかな。

153:デフォルトの名無しさん
07/09/18 11:24:31
ドキュメント見てないけど、
D3DPOOL_MANAGEDってD3D10じゃないよね?
10からはデバイスロストしないから

154:デフォルトの名無しさん
07/09/18 12:43:21
まだいじってないけど
10ならデバイスロストしなくなった?

155:デフォルトの名無しさん
07/09/18 14:26:53
画面の描画をウィンドウの範囲をしてしてする方法はありますか?
たとえば、1つのウィンドウの半分だけに3Dの画面を表示して、
片方の画面は文字入力用のテキストエディタのようにするような。

156:デフォルトの名無しさん
07/09/18 16:08:08
10どころか9Exから簡単にはデバイスロストしなくなった。
もちろん無茶すればロストするよ。
例えばアプリ実行中にドライバーをアップデートするとか。

>>150
それ完璧に考え方が逝ってるから勉強し直しといで。


157:デフォルトの名無しさん
07/09/18 16:21:53
>>156
いい加減無責任な発言は控えろよな。

158:デフォルトの名無しさん
07/09/18 16:29:04
>アプリ実行中にドライバーをアップデートするとか。
>アプリ実行中にドライバーをアップデートするとか。
>アプリ実行中にドライバーをアップデートするとか。

159:デフォルトの名無しさん
07/09/18 17:11:03
>>157
極論だが、至って分かりやすくて自分のアプリでもデバイスロストをテストするときに
デバイスマネージャーからドライバーを無効にしたりしてせめてエラー処理をテストするのは当然だけどな。


160:デフォルトの名無しさん
07/09/18 17:13:20
今日のお題はドライバーのアップデートとデバイスロストの関係についてw

161:デフォルトの名無しさん
07/09/18 17:16:33
>>159は本物のプログラマ

162:デフォルトの名無しさん
07/09/18 17:28:52
いや本物じゃなくても普通それくらいはするだろ?
ドライバーを無効にする、ハードウェアアクセラレーションを切る、くらいは
やってテストしとかないと怖くて公開できないよ。

流石に実行中にドライバを更新するなんてテストはしたことないけどな

163:デフォルトの名無しさん
07/09/18 17:36:26
どうやら真性です。本当にあり(ry

164:デフォルトの名無しさん
07/09/18 17:49:13
真性だな

165:デフォルトの名無しさん
07/09/18 17:50:55
>>162
ドライバーを更新するのとドライバーを無効にするってのは実行中のアプリからすると同じ意味だよ。
XPしか使っていないなら分からないかもしれないが、Vistaだとリブートなしでドライバー更新できるから、
更新するとまずはじめに現在のドライバーが無効化された後、アンインストールされ、その後新しいドライバーがインストールされる。


166:デフォルトの名無しさん
07/09/18 18:00:51
>>156
>>165

これね。

URLリンク(www.microsoft.com)
>再起動なしのドライバ アップグレード

VistaではDirect3D描画アプリが大幅に増えた。
DWMは実質フルスクリーンアプリ相当だし
WPFアプリもオフスクリーンサーフェイスにD3D9Exで描画してる。

再起動なしのドライバアップグレードを実現するためには、
ドライバが対応することも当然ながら
D3Dを使うアプリがDevice Removedからの復帰コードを持つことも重要。

そこの対応が甘いと、Windows Updateを実行したらアプリが落ちたって羽目になる。

167:デフォルトの名無しさん
07/09/18 18:11:25
そうだな5分に10回はWindowsUpdateするからな。
必要だな。

168:デフォルトの名無しさん
07/09/18 18:29:27
>>166
フルスクリーンアプリが起動したり、リモートデスクトップで接続されたりしてもデバイスロストしたかも。


169:デフォルトの名無しさん
07/09/18 18:29:54
どうせデバイスロストなんて頻繁に起こるものではないのだから、
残存リソースの再利用に拘るほどのものじゃないだろ。貧乏臭すぎ。

ってかこの話は >>81 が発端てことで良いんだよね?

170:デフォルトの名無しさん
07/09/18 18:55:56
次はスマートポインタの是非を語ろうぜwww

171:デフォルトの名無しさん
07/09/18 19:03:56
>>170 (゚∀゚)カエレ!

172:デフォルトの名無しさん
07/09/18 21:11:09
この仕様だとPOOL_MANAGEDがなんのためにあるのか謎

173:デフォルトの名無しさん
07/09/18 21:27:01
これだけは言える。管理を放棄してスマートポインタで逃げる事ばかり
考える奴は脳の病気。確実に逝っちゃってる人間の考え。

174:デフォルトの名無しさん
07/09/18 21:34:19
>>173
実際すさまじいバグり方するよなw
メモリの解放忘れだけにしとけって感じだ

175:デフォルトの名無しさん
07/09/18 21:48:36
test

176:81
07/09/18 21:50:01
おお、やっと書き込めた。規制の巻き添え食らってた。
俺の最初のレスからここまで議論になるとは思わなかった。
正直レベル高すぎてついていける気がしないw

177:デフォルトの名無しさん
07/09/18 21:55:24
しょーもない口論だからついていかなくていいよ。
質問に対する正解は>>6です。

178:デフォルトの名無しさん
07/09/18 22:00:34
>>1-177
お前らはデバイスロストの話をいちいち蒸し返さないと死ぬ呪いにでもかかっているのか?

179:デフォルトの名無しさん
07/09/18 22:04:43
>>178
なんで俺まで捲き込んでんだよ
俺をデバイスロスト厨と一緒にすんな

180:デフォルトの名無しさん
07/09/18 22:06:04
>>177
少しは面白いネタを用意しろよ。
それじゃ外しまくり。

181:デフォルトの名無しさん
07/09/18 22:08:38
>>180
ごめん、再挑戦してみる。

182:81
07/09/18 22:24:55
ちなみに>>5も俺だ。

183:デフォルトの名無しさん
07/09/18 22:29:03
>>182
さんざん考えてそれかよ
やっぱりだめ。つかさらに外してる。

184:デフォルトの名無しさん
07/09/18 22:34:26
つかさちゃんとちゅっちゅしたいよ~

185:デフォルトの名無しさん
07/09/18 22:37:42
ばるさばるさばるさばるさみこみこす~

186:デフォルトの名無しさん
07/09/18 22:38:44
>>178
>>105-113

187:デフォルトの名無しさん
07/09/18 23:03:56
>>183
俺は>>177じゃないぞw

188:デフォルトの名無しさん
07/09/18 23:24:52
俺って誰だよ

189:デフォルトの名無しさん
07/09/18 23:37:03
>>188
   _ _
  ( ゚∀゚)
  (  ∩ミ  オレオレ
   | ωつ,゙
   し ⌒J


190:デフォルトの名無しさん
07/09/19 00:41:35
>>177
正しくは>144だろ。>6もよく読むとなんか変。


191:デフォルトの名無しさん
07/09/19 01:10:27
>>190
どこが変か書けよ

192:デフォルトの名無しさん
07/09/19 01:13:23
とりあえず簡易的対策でかつ商品レベルで出すにはリソースはすべてPOOL_DEFAULTで作っておいて
なんか起きたらD3DDeviceから作り直すってことでFA?

193:デフォルトの名無しさん
07/09/19 01:14:49
>>191
>>85

194:デフォルトの名無しさん
07/09/19 01:43:22
NowLoadingという画面をアニメーション使って描画している時に
マルチスレッドを使ってタイトル画面とかのシーン(クラス)を読み込ませるようにしたんですが、
プログラムを起動すると問題なく動作する時もあれば、頂点バッファやテクスチャの
読み込みが失敗して時々おかしくなってしまいます・・・

マルチスレッドを使わなければ読み込みも正常終了して問題なく動くので
明らかにそのロード用のスレッドで何かやらかしていると思うのですが、
何回かに1回起こるという現象なので原因が分かりませんorz

pD3DDevice->CreateVertexBuffer( 4*sizeof(VERTEX2D), D3DUSAGE_WRITEONLY,VERTEX2D_FVF, D3DPOOL_MANAGED,&pBuffer, NULL);
D3DXCreateTextureFromFileEx(pDevice, filename, 0, 0, 0, 0, D3DFMT_UNKNOWN,D3DPOOL_MANAGED,D3DX_FILTER_NONE,D3DX_DEFAULT,0xff00ff00,NULL,NULL,&pTexture);

この関数がおかしな動作をしてるっぽいです。
D3DXCreateTextureFromFileExが時々E_OUTOFMEMORYを返して来ます。
↑と同じ関数で使って他のバッファやテクスチャをずらずらと作成してるんですが、正常に終了したヤツとそうでないのが
あってますます意味が分かりません・・・


どなたかヒント下さいorz

195:194
07/09/19 01:50:04
ロード用スレッド内部では、

if(scenetitle == NULL)
{
scenetitle = new SceneTitle;
scenetitle->Create(pD3DDevice);
}

こんなのがずらずらと書き並べてあるだけです。


/* ロード用スレッド シーン作成 */
hThread = (HANDLE)_beginthreadex(NULL, 0, CreateScene, NULL, 0, &dwThreadId);

この後すぐ、
Sleep(1300);
を追加するとどうやらこのバグ起きないようです。
でもこれをするとNowLoadingの意味がないんです・・・(´・ω・`)

196:デフォルトの名無しさん
07/09/19 01:55:34
デバイス作成する時に
D3DCREATE_MULTITHREADED
とか要るんじゃなかったっけ

今はいらないのかな

197:デフォルトの名無しさん
07/09/19 02:04:43
>>166
お前さん見事なもんだな。
俺なら「ドライバ更新する場合はアプリを一度終了してください」という文章で終わらす
そうしないとロストでアプリサスペンド(と書いてもいい?)したとき、
更新前と更新後の挙動が変わった場合のことまで追いかけなくてはならなくなる。

D3D10だとある程度ルールはあるんだろうが、そこまでするのはお断り

198:デフォルトの名無しさん
07/09/19 02:07:08
>>196
そのフラグは単なるヒント。
そのフラゲで環境によっては何かが変わるかもしれんし、変わらなくても文句は言えない。

199:194
07/09/19 02:29:17
>>196
ちょおおおおおおおお!!
そのフラグ1つで全てが解決しました。

デバイス作成の辺りはコピペ以降全然かまってなかったので盲点でした。
こんなに早く的確なヒントありがとう!!

200:デフォルトの名無しさん
07/09/19 06:43:26
>>193
だからどこが?

201:デフォルトの名無しさん
07/09/19 07:53:44
>>192
俺は作り直すにしても、POOL_MANAGEDがいいかなと思う。
UMAやTurboCacheまで考慮したテクスチャマネージメントは難しいし、
最近の先読みレンダリングならドライバの方がプログラマよりも正確に
テクスチャの使われ方を把握することが可能だから、VRAMのやりくりは
任せてしまった方が良いんじゃないかな。

202:デフォルトの名無しさん
07/09/19 08:32:41
>>201
その問題より単純にメモリを食うことで遅くなってる場合のほうが多いっぽい
それと全部システムメモリにとっておくってのは個人的にやりすぎだと思うし思想に賛同できない
んで重要なデバイスロストに関しては対応できてないとかいうマヌケっぷり
こんなもんいらんわw

203:デフォルトの名無しさん
07/09/19 09:18:23
xfileの仕様が詳しく書いてあるサイトってありますか?


204:デフォルトの名無しさん
07/09/19 10:12:04
「シェーダー」の定義がよくわかりません
狭義では陰影を計算してテクスチャーを擬似立体化するらしいですが、
色々と読んでみれば別のこともできるみたいです。
(というか法線マップが使われるようになったのは近年になってからのはず)
頂点シェーダーは別にポリゴン数(頂点数)を出すために活動するわけでも、
ピクセルシェーダーはテクスチャー情報を扱うわけでもないんですよね?

具体的にシェーダー(ストリーミングプロセッサ)は何をするんですか?

205:デフォルトの名無しさん
07/09/19 10:16:09
テクスチャがシステムメモリから直接表示されるらしいw

206:デフォルトの名無しさん
07/09/19 10:45:27
>>200
>>135

207:デフォルトの名無しさん
07/09/19 10:49:00
>>203
URLリンク(msdn.microsoft.com)

>>204
実際に使ってみればわかるだろ

208:デフォルトの名無しさん
07/09/19 10:50:26
こっちだった
URLリンク(msdn.microsoft.com)

209:デフォルトの名無しさん
07/09/19 11:10:18
>>204
いままで固定機能パイプラインで
半ば自動的に処理されていた部分をある程度自由に
プログラムできるように(又はプログラムしなくてはいけなく)なった

頂点シェーダでは
頂点データを2D画面に表示できるようになるまでの
座標変換とライティングまでを行い
ピクセルシェーダーでは
頂点シェーダから渡された頂点データを元に
ポリゴンをピクセル単位に分解して
最終的に描画される色を決定する

210:デフォルトの名無しさん
07/09/19 11:39:26
>>207
ありがとうございmす


211:デフォルトの名無しさん
07/09/19 12:53:17
>>135は普通に嘘っぱちだろ

212:デフォルトの名無しさん
07/09/19 12:56:08
>>211は大嘘

213:デフォルトの名無しさん
07/09/19 14:25:52
>>213は嘘

214:デフォルトの名無しさん
07/09/19 15:00:53
>>92に戻る

215:デフォルトの名無しさん
07/09/19 16:10:33
いちいち蒸し返す意味がわからん

216:デフォルトの名無しさん
07/09/19 16:11:41
デバイスロスト厨は>>133で懲りて降参したんじゃないの?
まだ仲間がいるわけ?

ロストは2種類あるだの、これは嘘あれは嘘だの、いい加減うざいんだが。

217:デフォルトの名無しさん
07/09/19 16:36:10
誰か綺麗にまとめてくれ
現象と対処を箇条書きで頼む

218:デフォルトの名無しさん
07/09/19 16:40:48
そもそも発端の質問文>>81に肝心の「現象」が書かれていないので
まとめようがない。

219:デフォルトの名無しさん
07/09/19 16:49:22
まとめ
Q. >>81
A. >>59

220:デフォルトの名無しさん
07/09/19 18:07:16
>144が正解で、>6は惜しいけど>82の指摘が正しい。

>>192
プロならPOOL_DEFAULTが当然。
なんかおきたらPOOL_DEFAULTのリソースを解放後にResetを行う。
Resetが失敗したときに初めてデバイスを最初から作り直し。


221:デフォルトの名無しさん
07/09/19 18:09:45
D3DCREATE_MULTITHREADEDは重要。
このフラグはランタイムのAPIがスレッドをシリアライズするかどうかの違いになる。
複数スレッドから同じデバイスに対してAPIを呼び出すと場合には必修。
そうじゃないとランタイムが保持しているコンテキストに不整合が発生する。


222:デフォルトの名無しさん
07/09/19 18:31:20
自らプロと名乗る輩ほど信用ならないものはない

223:デフォルトの名無しさん
07/09/19 18:32:26
すげー勉強になるわ

頓珍漢なレスも多いけど、丁寧にスレ読んでいけば
深い知見を持った人が書いたと思しきレスもちゃんとあってすげー癒されるわ

224:デフォルトの名無しさん
07/09/19 18:35:41
>>223
URLリンク(up2.viploader.net)

225:デフォルトの名無しさん
07/09/19 18:41:44
ほわっつずぃすインザワールド?

226:デフォルトの名無しさん
07/09/19 19:07:46
モコモコチュンチュン

227:デフォルトの名無しさん
07/09/19 19:37:49
>>222
二重否定があまり良くないので対偶を

信用できる輩ほど、自らプロとは名乗らない。

228:デフォルトの名無しさん
07/09/19 19:49:00
>>224
壁紙にしたわ

229:204
07/09/19 22:13:07
>>207
それは無理です・・・

>>209
すると従来までは固定パイプライン(シェーダー)というものが存在して、
それが最近はプログラマブルになったという認識でいいのでしょうか?

230:デフォルトの名無しさん
07/09/19 22:19:43
>>229
おk
プログラマブルシェーダが登場したのはDirectX8から。
DirectX8と9は固定機能もシェーダも同時に使えて双方のステートなんかも混在してたんだが
DirectX10(Vista以降)からはシェーダのみになって固定機能は完全に削除された。

こういうのが知りたいのなら何か一冊本を買ってみるといいよ。オススメはないけどねw

231:デフォルトの名無しさん
07/09/19 22:24:27
>>229
チュートリアルにしたがって1回動かしてみればすべてが解決すると思うぜ

232:デフォルトの名無しさん
07/09/19 22:41:32
フル2DでRPG作成している者ですが
DirectDrawかDirectGraphics
どっちがいいと思われますか?
DirectDrawはとっつきやすく比較的簡単です

DirectGraphicsにおいて2Dの扱いは3Dの付属というか
ただテクスチャ貼れりゃいいみたいな扱いを受けてますが・・・
しかし円滑にフェードや半透明、回転、拡大縮小を実現するには
DirectGraphicsをやるべきだと僕個人は思ってます・・・

皆さんの意見を参考にしたいのでご教授をお願いいたします


233:デフォルトの名無しさん
07/09/19 22:43:16
>>232
わかってんならさっさとそうしろ

234:デフォルトの名無しさん
07/09/19 22:53:03
>>233
ん?いや、俺が聞きたいのはみんなはどう思ってるのかなってだけです^^;;;;
なんだこの人はwwwwwwwwwww

235:デフォルトの名無しさん
07/09/19 22:58:25
>>234
落ち着け、そしてsageろ
>>233はDirectGraphicsに触ったこともなさそうだからしょうがないだろ?空気嫁

俺はフル2Dはずいぶん前におさらばしたからなぁ~・・・・
まぁDirectGraphicsは基本3Dのためにあるようなもんだってのがわかってるようだし
素直にDD(DirectDraw)にしとき

DDにはDDのいいところがあるし、フェードとかやりたいんならロックすりゃいいんじゃないの?


236:デフォルトの名無しさん
07/09/19 23:04:08
>>234
ん?いやいや、誰に聞くまでもなくあなた様のおっしゃるとおりの状況なのですよ
現状でDirectDrawを使う選択肢は無いと結論付けていいです
これは速度の問題とクオリティの問題が大きいです
昔は320x240とか640x480ぐらいでよかったんですけどね
いまって最低でも800x600で、現実の線で1024x768とか当たり前っしょ?
2Dだときついですよ2Dだと

GDI+という選択死もありますが、これは回転、拡大縮小、半透明と
個別には速度もそれなりで問題なくできるんですが、回転+半透明とか回転+拡大縮小とか
合わせ技でNGです
DirectDrawだとこれらを全部自作する手間もはっきりいって今はもう失われ死技術といって過言ではないでしょう
よしんば、その技術を見つけたとしてもあんまりいい結果にはなりません(主に速度で)

ということでわかってもらえたでしょうか?

237:デフォルトの名無しさん
07/09/19 23:06:56
>>234
少々口は悪いが>>233は一つの意見だろ?俺も同感だし。

回答者に対して「なんだこの人は」はないだろう・・・

238:デフォルトの名無しさん
07/09/19 23:14:08
>>236 なんだこの人はwwww、これがキ印の人か

239:デフォルトの名無しさん
07/09/19 23:20:34
もうこの流れじゃマトモな答えは返ってこないな

240:デフォルトの名無しさん
07/09/19 23:22:14
恥ずかしいことをおっおっ聞きしますが...
MFCはだめぽと言われたのですが、
VC++2005EEでDirectXって使えるでしょうか?><

241:デフォルトの名無しさん
07/09/19 23:23:56
なんでわざわざ古いのを使おうとするんだ?
DirectDrawなんかありえんだろ
DirectDrawはGraphicsに吸収されただけで消滅したわけじゃ・・・消滅したか
2Dに扱いがひどいって?なぜそう思うのかわからん

242:デフォルトの名無しさん
07/09/19 23:25:02
自演だか成りすましだか知らないけど
一瞬にして流れを変えた>>232の破壊力だけは認める

もう誰もデバイスロストの事なんか覚えちゃいない

243:デフォルトの名無しさん
07/09/19 23:31:11
>>242
デバイスロストは現象、対処ともに綺麗にまとまったからもういいっしょ

244:デフォルトの名無しさん
07/09/19 23:33:51
>>242
結局わからなかったんだろ?ヘボはひっこんでろよwwww

245:デフォルトの名無しさん
07/09/19 23:37:29
>プロならPOOL_DEFAULTが当然。
>なんかおきたらPOOL_DEFAULTのリソースを解放後にResetを行う。
>Resetが失敗したときに初めてデバイスを最初から作り直し。
こうやってみるとデバイスロストも大して対応難しくないな

246:デフォルトの名無しさん
07/09/19 23:37:40
DirectDrawにはDirectDrawのいいところがあるんでは?
文字出力や画像出力のやりやすさとか
特殊なエフェクトを頻繁に塚わないのであればDirectDrawでいいんでは?
半透明とかいっぱい使えば綺麗ってわけでもなし

素材>=アイデア>>>エフェクト


247:デフォルトの名無しさん
07/09/19 23:44:29
慣れてるほうでやればいいだろ
そんなもん聞くな

248:デフォルトの名無しさん
07/09/19 23:47:17
>>246
ないって
すべてが遅いし
同じことDirect3Dでもっと綺麗にできるし
基本的な3D機能ならサポートされてないグラボのほうがめずらしい

249:デフォルトの名無しさん
07/09/19 23:51:27
>>244
俺は質問に対して真っ先に間違いを指摘したんだけどな

250:デフォルトの名無しさん
07/09/20 00:23:47
はじめのほうでデバイスロストが2種類ないっていってた厨房か?
デバイスロスト2種類あったじゃん
Resetかかる奴としける奴とで

251:デフォルトの名無しさん
07/09/20 00:27:54
DirectDrawはバイリニアフィルタ付きで画像を描画したい時に便利だった。
UYVYとかYUY2も大抵変換無しで使えるので、画像・動画デコーダの試験アプリには重宝した。

もし SetStretchBltMode(BILINEAR) とか用意されたら用済みだったろうけどね。

252:デフォルトの名無しさん
07/09/20 00:30:18
>>232,235
>DirectGraphics
そもそもそんな物は存在しない

253:デフォルトの名無しさん
07/09/20 00:34:36
>>250
もう何度も書かれているが、Resetが失敗する状況のことをロストとは言わない。
少なくともヘルプでは、その状況のことを"Lost"、「ロスト」、「消失」などとは呼んでいない。
>>135 >>144あたりを読み直しましょう。

254:デフォルトの名無しさん
07/09/20 00:37:32
URLリンク(www.google.co.jp)
URLリンク(www.google.co.jp)


255:デフォルトの名無しさん
07/09/20 00:45:40
人生相談
お金もあってカッコいい男と仲良くなれそうなのですが、
勝手知った昔からの彼氏(重度のオタです)との腐れ縁の方が
もし結婚しということになったとしても
なんだかんだいって長続きしそうな気がするのは分かりきっているのですが、
私はどうしたらよいでしょうか。

256:デフォルトの名無しさん
07/09/20 00:50:21
固定シェーダとかDirectGraphicsとか、世の中には謎の技術が多数存在する。
しかしそれは残念ながら、頭にウジの涌いた馬鹿にしか扱えない。

257:デフォルトの名無しさん
07/09/20 01:00:58
やべ、俺そういうの普通に扱えてるわ。

ということは・・・(((( ;゚Д゚))))

258:デフォルトの名無しさん
07/09/20 01:24:22
>>245
スマートポインターとか使って全ての関係を隠蔽し始めると、、、難しくなるよな。


259:デフォルトの名無しさん
07/09/20 01:25:30
>>254
600件近くも全世界に向けて赤っ恥を晒し続けているんだな

260:デフォルトの名無しさん
07/09/20 01:36:21
その600件のうち一件は俺のページな件について。

明日からちゃんと学校行きます・・・

261:204
07/09/20 01:39:43
>>230-231
了解しました。何か本買ってきます

262:デフォルトの名無しさん
07/09/20 05:31:13
コロコロ変な言葉作るMSが悪い。俺はただの犠牲者。

263:デフォルトの名無しさん
07/09/20 07:44:38
他人のせいにするゆとり世代

264:デフォルトの名無しさん
07/09/20 07:58:25
>>252
お前もしかして
DirectGraphicsじゃなくて
DirectXGraphicsだ、とかそういうことを主張したいわけ?
URLリンク(msdn.microsoft.com)


上げ足とるにもほどがあるだろ?
質問スレ、しかも初心者スレなのにちょっとウザいかな?とか空気読めて無いかな?とか考えないわけ?
お前嫌われてるだろ?w

265:デフォルトの名無しさん
07/09/20 08:18:09
>>264
こういう開き直り方をする奴って、プライドだけ高くて全然成長しないんだよな

266:デフォルトの名無しさん
07/09/20 08:25:19
>>265
たった一文字ついてないだけでなにをそんなにこだわってるの?
俺、お前みたいなのめちゃくちゃ嫌いなんだわ

267:デフォルトの名無しさん
07/09/20 09:28:38
お前らそんな事で言い合ってたら俺みたいなのが参加してしまうぞ

268:デフォルトの名無しさん
07/09/20 09:37:55
>>266
1文字でも間違えるとエラーになる世界にいるから
気になるんじゃないか?

269:デフォルトの名無しさん
07/09/20 09:46:00
A : DirectGraphics じゃなくて DirectX Graphics な。
B : そうか今度から気をつける。
これで済む話なのに煽り文句を入れるから荒れるんだよ。

270:デフォルトの名無しさん
07/09/20 12:34:15
別に質問者じゃないけど見てて腹が立つ
こんな本質とかけ離れた所指摘して悦に入ってる馬鹿みるたびに叩き殺したくなる

271:デフォルトの名無しさん
07/09/20 12:40:01
そしてごく一部の馬鹿のせいで間違った用語が初心者に氾濫していくと。

272:デフォルトの名無しさん
07/09/20 12:42:52
キチガイ>>270が来たーーーーーっ

キチガイってほんと怖いね。



273:デフォルトの名無しさん
07/09/20 12:45:15
しょせん2ちゃん
キチガイはおまえだ>>272

274:デフォルトの名無しさん
07/09/20 12:48:45
お前もキチガイだろ>>273

275:デフォルトの名無しさん
07/09/20 12:49:20
>>274
お前もな

276:デフォルトの名無しさん
07/09/20 12:52:47
>>275 いや、俺はキチガイだが殺そうとは思わんよ

キチガイでも重度となると、何してもいいから羨ましいよ>>275

277:デフォルトの名無しさん
07/09/20 13:52:03
おしえてください。DirectXをはじめようとおもってDirectX付属のチュートリアルをサンプルフレームワークで実行しようとしています。
三角形がでるだけの単純なやつなんですけど、三角形がぼろぼろになってでてしまいます。
チュートリアルのプロジェクトはちゃんと表示されるので、自分でサンプルフレームワークにいれるときに失敗していると思うのですが、
どのへんが悪いのかさっぱりわかりません。以下、移植時にいじったコードです。どこかおかしいですか?

#define DXUT_AUTOLIB
#include <dxstdafx.h>
#pragma comment(lib, "..\\dxut\\release\\DXUT.lib")

struct CUSTOMVERTEX
{
  FLOAT x, y, z, rhw;
  DWORD color;
};
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL;

278:277
07/09/20 13:52:54
HRESULT CALLBACK OnCreateDevice(IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext)
{
  CUSTOMVERTEX dxvertices[] =
  {
    { 150.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, },
    { 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, },
    { 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
  };

  if (FAILED( pd3dDevice->CreateVertexBuffer(3 * sizeof(CUSTOMVERTEX), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &g_pVB, NULL)))
    return E_FAIL;

  VOID* pdxvertices;
  if (FAILED(g_pVB->Lock(0, sizeof(dxvertices), (void**)&pdxvertices, 0)))
    return E_FAIL;
  memcpy(pdxvertices, dxvertices, sizeof(dxvertices));
  g_pVB->Unlock();

  return S_OK;
}

void CALLBACK OnFrameRender(IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext)
{
  pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0);
  if(SUCCEEDED( pd3dDevice->BeginScene())) {
    pd3dDevice->SetStreamSource(0, g_pVB, 0, sizeof(CUSTOMVERTEX));
    pd3dDevice->SetFVF(D3DFVF_CUSTOMVERTEX);
    pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);
    pd3dDevice->EndScene();
  }
  pd3dDevice->Present(NULL, NULL, NULL, NULL);
}

279:277
07/09/20 13:53:47
void CALLBACK OnDestroyDevice(void* pUserContext)
{
  SAFE_RELEASE(g_pVB);
}

INT WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
  DXUTSetCallbackDeviceCreated(OnCreateDevice);
  DXUTSetCallbackDeviceDestroyed(OnDestroyDevice);
  DXUTSetCallbackFrameRender(OnFrameRender);

  DXUTInit(true, true, true);
  DXUTCreateWindow(L"hoge");
  DXUTCreateDevice(D3DADAPTER_DEFAULT, true, 640, 480, NULL, NULL);
  DXUTMainLoop();

  return DXUTGetExitCode();
}

280:デフォルトの名無しさん
07/09/20 15:00:04
フルスクリーンかどうかはどうやって判別するのでしょう?

281:デフォルトの名無しさん
07/09/20 15:02:29
視認

282:277
07/09/20 15:09:59
理由がわかりました。

  CUSTOMVERTEX dxvertices[] =
  {
    { 150.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, },
    { 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, },
    { 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
  };

の位置が悪いようです。どうもお世話様でした。

283:デフォルトの名無しさん
07/09/20 21:19:13
URLリンク(msdn.microsoft.com)
ここの
>デバイスには、常に、カラー バッファが関連付けられていなければならない。
ってどういうこと?

284:デフォルトの名無しさん
07/09/20 21:22:28
>>283
描画する先が存在しなかったらどうすればいいと言うんだ?
何が疑問なのかさっぱり分からん。

285:デフォルトの名無しさん
07/09/20 21:24:48
>>284
その文の前の文からの繋がりが分からない、って言ってるんじゃないかね?

前の文には、SetRenderTargetにNULLを渡すこともできると書いてあるのに、・・・
ってことでは

286:デフォルトの名無しさん
07/09/20 21:34:55
>>284,285
すまん。
カラーバッファってサーフェイスのことか。
ものすごく勘違いしてた

287:デフォルトの名無しさん
07/09/20 22:48:41
英語版でがんばってるけど、やっぱり日本語ヘルプもそろそろ更新してほしいな
もう3年も経つのに・・・

288:デフォルトの名無しさん
07/09/20 22:55:28
今まで日本語版だけあったのが奇跡なんだと思え

289:デフォルトの名無しさん
07/09/20 23:04:56
はい。

290:デフォルトの名無しさん
07/09/20 23:06:13
MSに許可貰って日本語訳した本でも売れば専門学校がガシガシ買って儲かりそうだけどな。

291:デフォルトの名無しさん
07/09/20 23:12:10
何年かかるんだよw出来た頃にはとっくに新しいSDKが出てる

そんなことするなら自動翻訳するか初音ミクに歌わせたほうがマシだ。

292:デフォルトの名無しさん
07/09/20 23:56:02
だからアメにプラットフォーム奪われるのは危険なんだって昔から言ってたのに。
絶対自分の国の開発者を有利にするに決まってるんだから。

293:デフォルトの名無しさん
07/09/20 23:58:27
奪われる?

294:デフォルトの名無しさん
07/09/21 00:41:49
PC98でエロゲしか出てなかった国なんだから滅びても仕方ない



295:デフォルトの名無しさん
07/09/21 01:17:12
PC98て 表示色数4096色中16色 VRAMプレーン方式 スプライト機能なしの素敵ハードか

296:デフォルトの名無しさん
07/09/21 01:30:03
OUT 168,8
ってやると200ラインモードでも画面が綺麗になるんだぜ

297:デフォルトの名無しさん
07/09/21 07:59:00
>>292
ほとんどインド人だろがw

298:デフォルトの名無しさん
07/09/21 14:00:02
>>297
インド人多いけど、結局、上は白人だよ。

299:デフォルトの名無しさん
07/09/21 16:43:43
>>298
誤解されがちだけど、インド人は大部分がコーカソイド(白人)です。
モンゴロイド(黄色人種)ではありません。

人種は肌の色で決まるわけではないので悪しからず。

300:デフォルトの名無しさん
07/09/21 19:11:42
>>299
誤解してるのは君

301:デフォルトの名無しさん
07/09/21 21:39:28
よくわからないがXbox360ユーザーは非国民ということで

302:デフォルトの名無しさん
07/09/21 21:43:01
俺はアーリア人だから問題ないな

303:デフォルトの名無しさん
07/09/21 22:00:45
>>302
それは誤解

304:デフォルトの名無しさん
07/09/22 06:16:50
こんなスレで質問していないで、早く試行錯誤でバグ回避策を見つける仕事に戻るんだ!
何?やる気がありません?なら辞めろや、他の派遣雇うからw


305:デフォルトの名無しさん
07/09/22 09:17:59
脳内社員か。
派遣デバッガはレポート書いて提出したら仕事終わりで、
こんなところうろうろしてねえよ。



306:デフォルトの名無しさん
07/09/22 17:24:48
>>305
それは誤解
つうか偏見

307:デフォルトの名無しさん
07/09/23 00:09:04
>>306
だが現実

308:デフォルトの名無しさん
07/09/23 17:02:11
マ板でやれ

309:デフォルトの名無しさん
07/09/23 17:04:07
>>308
それも誤解

310:デフォルトの名無しさん
07/09/23 20:04:31
次の初心者まだ~?チンチン
みっくみくにしてやんよ

311:デフォルトの名無しさん
07/09/23 20:35:30
俺は教えてだぁりんの方が好きだな

312:デフォルトの名無しさん
07/09/24 06:59:25
おはようございます、動画処理について研究している者です。
VisualStudio2005を使い、処理プログラムを作成していきたいのですが、第一段階の目標として
「実時間(ストリーム)でカメラから撮影している動画をPCに表示する」を掲げています、
参考図書として[はじめての動画処理プログラミング-Win32APIとDirectXで実装する動画処理の基礎-]
 →URLリンク(www.cqpub.co.jp)
を使って勉強したのですが、この本では「DVカメラを~/USBカメラを~/IEEE1394で~」と書いてあります、
しかし自分の研究室にあるカメラはそのようなものではなく(URLリンク(up2.viploader.net))
このような古いタイプでした、IEEE1394規格でもありません AVALDATA社という所のこのようなボードを使って
URLリンク(www.avaldata.com) 一応取り込み・表示する事はできるのですが
応用力の無い私にはここからどうやって弄ればいいのか分かりません、
これがDVカメラならなんとかなりそうだったのですが…“まずどうすればいいか”を教えて頂ければ幸いです。
分かり辛い質問で申し訳ありません、そちらから聞きたい事があればどうぞ質問してください。

313:デフォルトの名無しさん
07/09/24 07:15:05
個人研究? 教官に聞けないの?

314:デフォルトの名無しさん
07/09/24 07:23:27
URLリンク(www.google.co.jp)

315:デフォルトの名無しさん
07/09/24 07:40:59
技術的な質問ならともかく、研究への応用について尋ねられてもなあ

316:デフォルトの名無しさん
07/09/24 07:43:10
>>312
たぶん、それについている「専用のSDK」とやらを使うしかない

317:312
07/09/24 08:08:10
やはり自分でSDKを使っていくしかないですか・・・
正直関数の説明書を見ても意味不明なのですが、
まぁもう少し頑張ってみたいと思います。
ぶっ続けで研究してたので今から休憩に入りますがもしかしたら
今晩くらいにまた質問させて頂くかも知れません、その時は宜しくお願いします。

318:デフォルトの名無しさん
07/09/24 08:27:21
SDKの関数を使って、SDKが使用しているバッファを一旦取り出し
DirectShowなり他のライブラリのバッファに突っ込むようなことをすれば
後者のAPIが使えて古い独自SDKに振り回されなくてすむようになる。
速度的に問題が無ければな。

余談だが、古い機材や糞SDKを使わざるを得ない状況を打開する経験ってのは
社会に出てからも何か役に立つんじゃないか。社会のことはよくしらねーけど。

319:デフォルトの名無しさん
07/09/24 13:51:30
もうダイレクトXわけわかんなすぎ!
たすけてよぉ~!!

320:デフォルトの名無しさん
07/09/24 14:04:09
つ OpenGL

321:デフォルトの名無しさん
07/09/24 14:50:09
画面を徐々に暗くしていく処理(フェードアウト?)を一番簡単にやるにはどうしたらいいですか?

322:デフォルトの名無しさん
07/09/24 15:15:07
>>321
あからじめ徐々に暗くするムービーを用意→再生

323:デフォルトの名無しさん
07/09/24 15:16:27
圧縮率も最強になるだろうし結構実用的だと思うぜw>ムービー

324:デフォルトの名無しさん
07/09/24 15:28:50
画面サイズの真っ黒な板を
一番手前において徐々に透明度を下げる

325:デフォルトの名無しさん
07/09/24 15:30:40
ユーザがモニタのあかるs

326:デフォルトの名無しさん
07/09/24 15:35:15
>>322
ツマンネ

>>323
馬鹿じゃねーの

>>324
偉い

>>325
くだらん

327:デフォルトの名無しさん
07/09/24 15:35:42
エロCGと同じフォーマットでグラデーションの一枚絵をたくさん用意→スクリプトで絵を切り替え。


328:デフォルトの名無しさん
07/09/24 15:47:27
おまえらどんなレベルのゲーム作れんのよ

329:デフォルトの名無しさん
07/09/24 15:58:13
ダダシン先生みたいなのですぅ!

330:デフォルトの名無しさん
07/09/24 16:10:31
>>324
この方法でいけそうです
ありがとうございました

331:デフォルトの名無しさん
07/09/24 16:10:51
このスレは無能な奴に限ってえらそうですね

332:デフォルトの名無しさん
07/09/24 16:44:59
すいません、さっきの続きの質問なんですが

フェードインをフェードアウトをまとめたクラスにいろんな場面からアクセスしたいんですが
こういう場合はやはりグローバル変数にするしかないですかね?

333:デフォルトの名無しさん
07/09/24 16:48:59
あほや・・・あほがおる!!

334:デフォルトの名無しさん
07/09/24 16:54:49
それはDirectXの質問ではないが、
グローバル変数でもSingletonでも好きなようにやれ。
フェードでまとめる以外にも、パーティクル等のエフェクト機能の一部という実装もある

335:デフォルトの名無しさん
07/09/24 17:34:50
グローバルにしておきます
ありがとうございました

336:デフォルトの名無しさん
07/09/24 18:04:19
それってなんか
クラスの作り方を間違えてる希ガス

337:デフォルトの名無しさん
07/09/24 18:20:02
とりあえずなんでもクラスにまとめてしまうもんで;;
何か他に良い設計ありますか?

338:デフォルトの名無しさん
07/09/24 18:38:32
各シーンから呼び出されるものではなく
システムの中に
シーンの切り替えなどを一括に管理する部分(クラス)を作って
そこから呼び出されるべきものではないかと思う

DirectXの話じゃなくて設計の話なので板違い
荒れる前に他行った方が良いぞ

339:デフォルトの名無しさん
07/09/24 18:43:52
おお、なるほど!
ありがとうございます

340:デフォルトの名無しさん
07/09/24 18:48:37
>>332
引数で渡すとかないのか?ウンコ?

341:デフォルトの名無しさん
07/09/24 18:52:14
引数で渡すのはスマートじゃないですからっ><

342:デフォルトの名無しさん
07/09/24 19:34:35
>>341
そんなのどこの本に書いてあったんですか?
グローバル変数なんて1つ使っただけでもう設計も糞もないんですよ?

343:デフォルトの名無しさん
07/09/24 19:42:05
本に書いてないとダメなのか?

344:デフォルトの名無しさん
07/09/24 19:45:10
糞っぽい。
フェードアウト完了のイベントで関数呼び出すという発想もないようだな。


345:デフォルトの名無しさん
07/09/24 19:49:59
そもそもゲームの設計に関して
きちんと書かれてる本なんて見たことない

これといった正解もないし
会社ごとに違うのは当たり前
社内でさえ基礎研究がきちんと全体に浸透してることなんて
ほとんどないからプロジェクトごとで違ったりするし
あまり深く考えずに
とりあえず今の自分の技術で最善と思われる方法をとればよろし
後で、あーすればよかったとか
こーすればもっと良くなるとか、そういうのを繰り返して上達するものだ

346:デフォルトの名無しさん
07/09/24 19:57:57
じゃあタスクシステムに一家言ある御仁に頼む↓

347:デフォルトの名無しさん
07/09/24 19:58:59
>>342
個人で作ってるので自分がコードを見てスマートかどうかですよ

348:デフォルトの名無しさん
07/09/24 20:02:32
>フェードアウト完了のイベントで関数呼び出す
??

349:デフォルトの名無しさん
07/09/24 20:04:54
>>343
少しは参考にするべきだと思うぜ
引数が多いと駄目なんて記述はどこの本読んでもない

それとシーンの管理だけどこの辺はちょっと考えて設計したほうがいいと思うぜ
現行

フェード処理S→→→フェード処理E
シーン1→シーン2・・・ ・・・シーンN

の可能性があるならフェードってつまり何?
シーンってつまり何?
ってちゃんと考えておいたほうがいいぜ
ロードのタイミングも考慮してね

その結果

フェード処理S→フェード処理E→→→→フェード処理S・・・
シーン1ロード→シーン2ロード→シーン1→シーン2→シーンアンロード→シーン?ロード・・・ ・・・シーンN

ってなるかもしんねーしw
とにかく色んな場面を考えてみろ

350:デフォルトの名無しさん
07/09/24 20:49:05
DIrectX日本語or英語版がDLできるところありませんか。・

351:デフォルトの名無しさん
07/09/24 20:49:24
>>346
タスクシステムこそ
ゲーム業界にのみ伝わる現代の魔術
連綿と口伝によってのみ受け継がれ
変化し、進化と退化を繰り返す
その亜流は数知れず、もはやその全てを語れるものはいない

352:デフォルトの名無しさん
07/09/24 20:50:33
"DIrectX"をgoogleで検索するとトップページにこんなのが!
URLリンク(www.microsoft.com)

353:デフォルトの名無しさん
07/09/24 20:57:11
退化と進化

進化という言葉が進歩を意味しないのは、生物学上は当然なのであるが、一般には誤解されやすい部分である。

今日の学校教育においてすら、国語教育の場では進化の反対語として退化を教える例がしばしば認められる。
しかし、退化は生物の個々の器官に対して使われる言葉である。したがって、その生物全体について使われる
進化と対応するものではなく、退化に対する言葉は『発達』である。

354:デフォルトの名無しさん
07/09/24 21:52:06
で?

355:デフォルトの名無しさん
07/09/24 21:55:40
>>353
勝手に話を生物学上に限定してんじゃねーぞドカス

356:デフォルトの名無しさん
07/09/24 22:00:29
>>355
生物学に限定しようがしまいが、退化は進化の対義語ではない。

って俺は小学校か中学校で習った覚えがあるんだが、お前らは習わなかったのか?

357:デフォルトの名無しさん
07/09/24 22:03:56
せめてDirectXの話で揉めようや

358:デフォルトの名無しさん
07/09/24 22:05:31
しんか しんくわ【進化】

(名)スル

(1)〔evolution〕生物は不変のものではなく、長大な年月の間に次第に変化して現生の複雑で多様
  な生物が生じた、という考えに基づく歴史的変化の過程。種類の多様化と、環境への適応に
  よる形態・機能・行動などの変化がみられる。

(2)物事が次第に発達していくこと。

>>351は(2)>>353は(1)を言ってる。それだけ。~~国語の時間糸冬~~


359:デフォルトの名無しさん
07/09/24 22:09:22
はいはいそうですか

360:デフォルトの名無しさん
07/09/24 22:18:43
つーか、おまいら
>>351の突っ込み所はそこじゃないだろw

361:デフォルトの名無しさん
07/09/24 22:19:18
誤解が多いが「退化」は進化なんだけどな。
環境に適応して無駄な部分が無くなるのが退化で、それは進化の一種。

362:デフォルトの名無しさん
07/09/24 22:21:08
>>351は的を得てるだろ

363:デフォルトの名無しさん
07/09/24 22:22:58
× 的を得る
○ 的を射る

364:デフォルトの名無しさん
07/09/24 22:23:35
○的を射る ×的を得る
○当を得る ×当を射る

365:364
07/09/24 22:24:43
(*'A`)

366:デフォルトの名無しさん
07/09/24 22:27:53
このスレDirectXはさっぱりだが国語の勉強にはなるな

367:デフォルトの名無しさん
07/09/24 22:30:52
マ板、ム板は
予想の斜め上あたりで議論が繰り広げられるから
面白いなw

368:デフォルトの名無しさん
07/09/24 22:33:50
>>363-364
キースっ!キースっ!♥

369:デフォルトの名無しさん
07/09/24 22:39:48
…(*'A) (A`*)…

370:デフォルトの名無しさん
07/09/24 22:41:56
…(*'AA`*)…

371:デフォルトの名無しさん
07/09/24 22:42:31
…(*'A`*)…

372:デフォルトの名無しさん
07/09/24 22:43:42
       _,,,  
      _/::o・ァ  さきほどお見苦しい映像が
    ∈ミ;;;ノ,ノ   流れましたことをお詫び申し上げます
      ヽヽ

373:デフォルトの名無しさん
07/09/24 22:44:24
融合してるし!w

374:デフォルトの名無しさん
07/09/24 22:44:27
この流れワロタ

375:デフォルトの名無しさん
07/09/24 22:44:33
良くなろうが悪くなろうが、ある種が時間とともに変化することを「進化」いう。
その「進化の過程において」、ある一部の器官が縮小、あるいは消滅することを「退化」という。

DirectX7→8、ってのは進化の例。
その「進化の中で」、DirectDrawが消えた、ってのが退化の例。


376:デフォルトの名無しさん
07/09/24 22:46:41
>>375
空気嫁w

377:デフォルトの名無しさん
07/09/24 22:47:36
>>375
お前には失望した

378:デフォルトの名無しさん
07/09/24 22:49:51
>>375は自重できずに自分のことばっか喋って相手を幻滅させるタイプ

379:デフォルトの名無しさん
07/09/24 22:52:18
>>375の人気に嫉妬www

380:デフォルトの名無しさん
07/09/25 01:18:39
DIrectX7の日本語or英語版がDLできるところありませんか。・

381:デフォルトの名無しさん
07/09/25 01:32:20
>>350

382:デフォルトの名無しさん
07/09/25 02:04:10
>>380
URLリンク(www.vb-fun.de)

383:デフォルトの名無しさん
07/09/25 02:08:09
>>382

ありがとうございます。DLしておきます。
SDKじゃなくてランタイムがいいんですが、今はSDKしか手に入りませんか?
なさそうならSDK入れることにします。

384:デフォルトの名無しさん
07/09/25 02:14:01
DirectX Run-Time Only

385:デフォルトの名無しさん
07/09/25 02:18:20
>>351
保存した

386:デフォルトの名無しさん
07/09/25 02:35:33
>>383
DX7がでた頃のエロゲーでもかってくるんだ

387:デフォルトの名無しさん
07/09/25 03:13:45
あの頃のエロゲはDirectXを使わないことが何か偉い事という価値観だったんじゃないの?


388:デフォルトの名無しさん
07/09/25 05:47:36
>>319
URLリンク(fatalita.sakura.ne.jp)

389:デフォルトの名無しさん
07/09/25 10:27:17
DirectX 9なんだけど 最新版ってどれになるの?
日付新しいのとかあるから わけわからなくなってます・・・

これ入れとけ!っての教えてください。

390:デフォルトの名無しさん
07/09/25 10:35:39
ランタイムのことなら Microsoft サイトから DirectX ランタイムウェブインストーラ
SDK なら 2007 August あたりなんじゃね?
詳細は Microsoft のサイトの DirectX ページにアクセク。

391:デフォルトの名無しさん
07/09/25 20:39:54
それはありえない。
VC6や.Net2003対応してない

392:デフォルトの名無しさん
07/09/25 20:45:05
2003はPlatform SDK入れればいいよって固定シェーダの人が言ってた

393:デフォルトの名無しさん
07/09/25 20:45:42
VS2005EE入れればいいだけじゃね

394:デフォルトの名無しさん
07/09/25 22:44:52
重いからやだ

395:デフォルトの名無しさん
07/09/25 22:48:11
2005軽いじゃん。

ヘルプ重いけど。

396:デフォルトの名無しさん
07/09/25 23:38:56
ぜったいやだ

397:デフォルトの名無しさん
07/09/25 23:43:24
結局何がやりたいんだ?

398:デフォルトの名無しさん
07/09/26 00:48:48
2003はまだサポートされてるんじゃ?

399:312
07/09/26 05:22:18
おはようございます、2日前の>>312です。
AVALDATA社のSDK説明書にサンプルプログラムとして「画像の連続入力」
というのもがあったので書いて実行してみたのですが(↓画像)の状態になるだけで
取り込んでいるはずの画像が表示されません…
表示もできるようにコードを書き換えて頂けませんでしょうか、
宜しくお願いします。m(__)m

実行結果 URLリンク(up2.viploader.net)
コード等 URLリンク(www12.axfc.net)


400:デフォルトの名無しさん
07/09/26 05:59:53
そのボードを持ってる奴がこのスレにいる可能性はどれくらいだと思う?

401:デフォルトの名無しさん
07/09/26 06:10:13
もともと表示まで行うサンプルではないようだ。贅沢を望むな。
GrabCallbackFuncでファイルにでも書き出せば。


402:399
07/09/26 06:33:45
GrabCallbackFuncとは何ですか? 検索しても引っかからないのですが・・・

403:デフォルトの名無しさん
07/09/26 06:38:21
自分がアップしたサンプルコードすら読んでないとは恐れ入る。
GrabCallbackFuncはFile_1605\rg\sample2.cの中の関数だよ。

404:402
07/09/26 06:54:09
アップしたコードの中でしたか・・・お恥ずかしい限りです、
正直難しい用語だらけで処理の流れがよく理解できていないのです
このGrabCallbackFunc(){~}の中に何かを付け加えると表示や書き出しができるということでしょう、
何処に何と付け加えるのか教えて頂けないでしょうか・・・


405:404
07/09/26 08:47:36
表示方法・・・どなたか教えていただけないでしょうかorz

406:デフォルトの名無しさん
07/09/26 09:18:42
>>405
GrabCallbackFuncが呼び出される時の引数を全部吐き出させろ。
そもそも呼び出されているかどうかすら怪しいし。
あと、Acap関数呼び出したらAcapGetLastErrorCodeでとりあえずエラーが無いか確認。
こういう時は、得られる情報を全て吐き出させてみるのが基本だ。

407:デフォルトの名無しさん
07/09/26 10:31:04
AVALか……

408:デフォルトの名無しさん
07/09/26 10:45:22
大学のレベルも落ちたもんだな

409:デフォルトの名無しさん
07/09/26 11:02:27
そもそもDirectXと無関係なのにいつまで迷惑をかけ続けるつもりなんだ?
本当に自分のことしか考えないやつだな。

410:デフォルトの名無しさん
07/09/26 20:07:25
OpenGLのglPushAttrib()とglPopAttrib()みたいに、
簡単に状態を保存したり復帰したりする方法はありますか?

411:410
07/09/26 20:20:42
自己解決しますた
IDirect3DStateBlockのCapture()とApply()がそうだったのですね

412:デフォルトの名無しさん
07/09/26 21:27:26
>>408
安心しろ某医大は毎年新人歓迎会でス○トロ祭りをやるらしい
程度の低さをいうなら昔からだ・・・w

413:デフォルトの名無しさん
07/09/26 21:32:27
>>412
   /⌒ヽ        ,r-、
   l   }      /  /
   ヽ  r --- 、 /   /
    y'´_,,_   _ ヽ、 /
    / /,r=、  ,'ニヽ Y
    } ( ● )l (,●)  l
   _L_ ̄ | 二rニ'7
    ヽ-フ `ーー'`´、 /
   /〈  < ̄/ ̄ Y、<スカト○祭だなんて、最近の大学はレベルたけえな
     )ヽ、 ̄, '´ / \
   _,_L      | ヽ

414:デフォルトの名無しさん
07/09/26 22:30:33
デバイス○ロスト祭り

415:デフォルトの名無しさん
07/09/26 22:54:36
>>414
おちつけ、なんもかんもあってないw
○も意味不明になってるw

416:デフォルトの名無しさん
07/09/27 02:00:20
最近になってDirectXを使い始めたのですが、
DirectGraphicsで簡単に画面に2Dテクスチャを表示できる、DPD3DXSPRITEですが、
貼付けた画像がどうしても歪んでしまいます(元の画像よりも大きくなってしまう)。
読み込む画像の辺の長さが2の累乗でなければならないという情報もネットで見つけたのですが、
もっと自由な元画像のサイズで、表示の際の大きさ指定をピクセル単位で出来るような方法はないのでしょうか?

417:デフォルトの名無しさん
07/09/27 02:10:10
>>416
ないなら自分で作ればいいじゃないか

418:デフォルトの名無しさん
07/09/27 03:37:48
D3DXSpriteを初心者が使うと変な副作用やバージョン違いに悩まされ
自殺することが多いのでお勧めできません。

419:デフォルトの名無しさん
07/09/27 03:52:25
質問してもいいですか?
DirectX9をダウンロードは出来たのですが、インストールが出来ません。
何度やっても、もう一度実行するか、ネットワーク接続を確認しろという画面が出ます。
何が悪いのでしょうか?

機種はVaio lx52gのMeです。

420:デフォルトの名無しさん
07/09/27 04:09:21
>>419
落としたのがWebインストラーで
ネットワークにつながってないって落ちじゃ

421:デフォルトの名無しさん
07/09/27 05:06:34
てか、久々にD3DXSpriteいじったらほんとに色々仕様が変わっててワロタ
デバイスロストとか色々対応してないけど後は自分で考えるんだ

class MySprite{
  MySprite( LPDIRECT3DDEVICE9 dev, TCHAR* file ) ;
  ~MySprite(){
    if(tex)tex->Release() ;
    if(sprite)sprite->Release() ;
  }
  void Draw(float x, float y, float w, float h ) ;

  LPD3DXSPRITE sprite ;
  LPDIRECT3DTEXTURE9 tex ;
  D3DXIMAGE_INFO info;
} ;
MySprite::MySprite(LPDIRECT3DDEVICE9 dev, TCHAR *file):sprite(NULL),tex(NULL)
{
  D3DXGetImageInfoFromFile(file, &info);
  D3DXCreateTextureFromFileEx(dev,file,info.Width,info.Height,
    1,0,D3DFMT_UNKNOWN,D3DPOOL_MANAGED,D3DX_DEFAULT,D3DX_DEFAULT,0,NULL,NULL,&tex);
  D3DXCreateSprite ( dev, &sprite ) ;
}
void MySprite::Draw(float x, float y, float w, float h)
{
  sprite->Begin(0) ;
  3DXMATRIX scale, trans ;
  D3DXMatrixScaling ( &scale, ((w==0)?info.Width:w)/(float)info.Width, ((h==0)?info.Height:h)/(float)info.Height, 0.0f ) ;
  D3DXMatrixTranslation ( &trans, x, y, 0 ) ;
  sprite->SetTransform(&(scale*trans)) ;
  sprite->Draw ( tex, NULL, NULL, NULL, 0xffffffff ) ;
  sprite->End() ;
}

422:デフォルトの名無しさん
07/09/27 06:05:23
業界標準のOpenSpriteライブラリとかないのかよ

423:デフォルトの名無しさん
07/09/27 06:14:30
業界標準はD3DXSPRITEなんて使いません

424:デフォルトの名無しさん
07/09/27 07:04:47
いらねーよな
入門書もやらずになんか表示しようとするから
そんな機能ほしいと思うんだろ

そんなもん使って表示したところで次になんかつながらないから
なにかあるたびにいちいち詰まる
こんなクラス使ってる奴ゲーム作るところまでいかないだろ

425:デフォルトの名無しさん
07/09/27 08:11:26
とりあえずは、D3DXSpriteで便利にやってみて、速度とかやりたい事の壁で
どうしようもなくなったら自前の処理に移れば良い。

ここは初心者スレなんだから、玄人ぶっても滑稽だよ。

426:デフォルトの名無しさん
07/09/27 08:14:33
>>425
初心者スレだからこそ、まずはキチンと入門書を追ってもらいたいと思う
そしたらDrawPrimitiveでの描画を通るはずだし、
こんな質問は絶対にでないと思う

427:デフォルトの名無しさん
07/09/27 09:35:19
ぇ、ていうか
わざわざ答えてもらってるのに
質問者が超便利関数とかを期待してて
>>422みたいな態度とったのかと思ったけど違うの?

428:416
07/09/27 11:30:40
質問に答えて頂きありがとうございました。
とりあえず今やりたいと考えていることは2Dで出来るため、
パラパラと本を読んで一番初めに目についたSpriteに飛びついたわけでしたが
あまり使われない方法のようですね・・。
>>426さんの言うようにDrawPrimitiveでの描画についても調べてみたいと思います。

>>421
丁寧にありがとうございます。大変参考になりました。

429:デフォルトの名無しさん
07/09/27 11:40:12
>>428
スプライトが歪んでいる場合、ID3DXSprite使うのやめるよりも前に
テクスチャの読み込み段階で歪んでいないか一応チェックね。
あれはデフォルト指定すると勝手にテクスチャサイズを
二の二乗に切り上げて、画像を拡大したテクスチャを作るから。

430:デフォルトの名無しさん
07/09/27 15:22:35
DirectXのAPIはいわゆる最小インターフェースってやつだろ。
手っ取り早くゲーム作りたい向きには不親切極まりない。

あんまプログラミング経験のないやつが、やりたいことを速攻でやりたいなら、
何か他人の作ったライブラリ漁ったほうがいいんじゃね?
俺は自分でやってるから詳しくないが。

431:デフォルトの名無しさん
07/09/27 21:55:30
DirectSoundで音を鳴らしたいのですが、
初っ端からつまづいてしまいました・・・。
VC++2005でビルドしようとすると、以下のようなエラーが出ます。

1>Source1.obj : error LNK2001: 外部シンボル "_IID_IDirectSoundCaptureBuffer8" は未解決です。
1>Source1.obj : error LNK2019: 未解決の外部シンボル _DirectSoundCaptureCreate8@12 が関数 _main で参照されました。

dsound.hのインクルード、dsound.libへのリンクもオプションで設定しているのですが、
どこがマズいのでしょうか??

432:デフォルトの名無しさん
07/09/27 23:20:33
dxguid.libとリンクしていないとこがマズいです。

433:431
07/09/28 07:39:04
>>432
ありがとうございます。
しかし、確認してみたところ、dxguid.libが含まれているディレクトリをライブラリディレクトリとして
設定できていました・・・。

434:デフォルトの名無しさん
07/09/28 07:55:19
ディレクトリを設定するだけじゃ意味無いだろ。

dsound.libをリンクするように設定してるんだろ?
同じようにdxguid.libをリンクしろ、って言ってるの。

435:デフォルトの名無しさん
07/09/28 08:59:17
すみません
UDXライブラリを使いたいのですがdirectX最新版ではつかえませんか
サンプルのXファイルが表示しません

436:デフォルトの名無しさん
07/09/28 09:15:46
UDXライブラリって何だよ
ライブラリならここじゃなくサポート掲示板なりで質問するべきでは?

437:デフォルトの名無しさん
07/09/28 09:19:12
>>436
UDXライブラリは2002年ころにfinal版が出て更新されていません ほかに聞けるところがないです

438:デフォルトの名無しさん
07/09/28 09:50:00
>>436
他のライブラリをいくつか調べたのですがUDXがもっとも手軽だと思います
これだけのソースでXファイルが表示できます
参考サイト 
URLリンク(f42.aaa.livedoor.jp)
URLリンク(www.geocities.co.jp)


#include"udx.h"
CMesh m;

void StartUp(){
SetVPos(VEC3(0, 0, -10));
m.Load("test.x"); }

void MainLoop(){
BeginScene();
m.Render(&MTX_FRONT);
ShowCameraInfo(0,0);
EndScene();
MouseLook(0.5);}

void CleanUp(){}

439:デフォルトの名無しさん
07/09/28 09:59:07
先日近所のスーパーでアニメのような3D表示するカードゲームをみました。
どうやらカートゥーンシェードというものらしいです。
DirectXでこのカートゥーンシェードを表示する勉強をしてみたいので、
仕組みの解説やライブラリを、Googleでカートゥーンシェードや、CartoonShadeを検索しても
それらしい情報が見つからないです。
みなさん、どこから情報を集めておられますか。先輩方、教えてください。

440:デフォルトの名無しさん
07/09/28 10:03:41
>>435
2002年に更新停止してるとかそんなマイナーなライブラリをなんの断りもなく持ち出すな

俺らにそのなんちゃらライブラリを使って試せと?

441:デフォルトの名無しさん
07/09/28 10:08:01
>>439
URLリンク(www.google.com)

442:デフォルトの名無しさん
07/09/28 10:10:32
>>440
使っている人がいたら動作環境を教えてもらいたいです
ライブラリ付属の線や四角は表示できるんですけど・・Xファイルが見えないです
あと、UDXに興味があったら使って動くか試してもらいたいです

443:デフォルトの名無しさん
07/09/28 11:33:43
>>442
ライブラリっていうかXファイルの問題じゃね?
そのライブラリはほんとに
すべてのXファイルの読み込みに対応してるのか?
Xファイルはテンプレート定義だから
よっぽど丁寧につくってないとXファイルによって読めないとかざらにある
メッシュのみOK、アニメーション付きは×とかな
人に試せというまえに
表示までの流れのどこでコケてるのかくらい調べてこいよ

444:デフォルトの名無しさん
07/09/28 11:44:23
>>443
ライブラリ付属のXファイルとソースでコンパイルまでは行くのですが画面に出ません

445:430
07/09/28 11:45:50
そうか、ライブラリに頼ってもこういう結果になる世界だったか……。
認識がチクロやサッカリンより甘かったわ。

昔のSDKでは動くのかな。動くならでそれで我慢するなり、
そうでなければ別のに乗り換えるしかないんじゃね。

446:デフォルトの名無しさん
07/09/28 12:12:34
>>442ですが
WindowsのバージョンはXP SP1
DirectXのバージョンは最新版(2007/7くらいのやつ)
DirectX SDKは8.1です UDX最終バージョンに合わせました
画面が全く出ないわけではなく、文字や線とかはかけます
もしかしたら、SDKも最新したらいいんですかね

447:デフォルトの名無しさん
07/09/28 12:15:21
だから、一言で表示されないといわれても
色々あるわけで・・・

・そもそもファイルが読み込めてない
・読み込めてるが座標変換がされてない
・座標変換されてるがカメラの範囲内にない
・カメラの範囲内にあるがでか過ぎて(小さすぎて)みえない
・あるべき場所にはあるが光源が無い
・透明になってる
・カリングの設定が間違ってる,etc,etc

どこで失敗しているのかくらいデバックできるだろ?
それがわからなければ直しようが無い
これは環境云々の問題じゃないぞ

448:デフォルトの名無しさん
07/09/28 12:22:50
>>447
サンプルをそのまま使っているんですよ 見えないサンプルって無いと思います

449:デフォルトの名無しさん
07/09/28 12:29:13
>>448
あのなぁ

あんたがどういう環境でやってるのか知らんが
たとえば使ってる文字セット
がユニコードなのかマルチバイトなのかが違うだけで
Xファイル内のテクスチャファイル名が読めなかったりするんだぞ?

ライブラリに合わせて環境をかえるんじゃなくて
環境にあわせてライブラリを変えることを考えろよ

450:デフォルトの名無しさん
07/09/28 12:36:22
馬鹿はほっとこうぜ

451:デフォルトの名無しさん
07/09/28 12:54:42
ありがとうございました
UDX動きました
実行ファイルの生成される位置にXファイルがないだけでした


452:デフォルトの名無しさん
07/09/28 13:54:46
ださすぎw

453:デフォルトの名無しさん
07/09/28 15:00:47
URLリンク(www.rupan.net)

UDXで人物を表示したんですけどメタセコでみるのより画像が悪すぎです
どうしてですか?

454:453
07/09/28 15:01:47
パスは 0 です

455:デフォルトの名無しさん
07/09/28 15:15:25
光源を設定してないとかじゃネーノ ( ´_ゝ`)

456:デフォルトの名無しさん
07/09/28 15:16:17
>>453
D3DX8BOR.DLLが見つからなかったため、このアプリケーションが開始できませんでした

お前もう、いい加減にしとけよ

457:デフォルトの名無しさん
07/09/28 15:25:49
>>456
URLリンク(www.rupan.net)
PASS 0
これでみれますか?

>>455
光源はいってるかよくわかりません サンプル書き換えただけなので 入れてみます

458:デフォルトの名無しさん
07/09/28 15:54:11
>>457
フルスクリーンはマジ簡便

見た限り光源計算がされてない
Xファイル自体に法線情報がはいってないので
ライブラリー内で
法線データがないときに自前で生成しているのか?とか
しているとして
ライトの設定がちゃんとしてあるか確認だな


459:デフォルトの名無しさん
07/09/28 16:32:12
ぜんぜん簡単に使えてないところがミソ

SDKのチュートリアルから地道にやったほうがよっぽど近道なのに、
そうやって手を抜こうとするから基本的なことすら理解できずに余計な苦労をする。

460:デフォルトの名無しさん
07/09/28 16:56:11
DirectXを一から勉強する方法教えてくれ!!
俺は燃えているぞおおおお!!

461:デフォルトの名無しさん
07/09/28 17:00:53
>>460
これを最初から最後まで読むといいよ
URLリンク(msdn.microsoft.com)

462:デフォルトの名無しさん
07/09/28 17:12:01
マウスとカーソルで動かせます これだけのことを生DirectXでやったら大変でしょ?コードは↓これだけ
URLリンク(www.rupan.net)

#include"udx.h"
CMesh m;CObject o;
void StartUp(){
SetVPos(VEC3(0, 1.5, -5));
m.Load("0.x");
o.SetMesh(&m,VEC3(0,0,5));}

void MainLoop(){
MouseLook(0.2f);
BeginScene();
ON_HOLD(DIK_LEFT) o.RotY(0.05f);
ON_HOLD(DIK_RIGHT) o.RotY(-0.05f);
ON_HOLD(DIK_UP) o.RotZ(-0.05f);
ON_HOLD(DIK_DOWN) o.RotZ(0.05f);
o.Render();

devSetLighting(FALSE);DrawAxis();
devSetLighting(TRUE);
BeginFont();
ShowCameraInfo(0,0);
EndFont();EndScene();}

void CleanUp(){}

463:デフォルトの名無しさん
07/09/28 17:14:05
>>458
なんかテクスチャーがあると絵が変になるみたいです
462はテクスチャー無しです メタセコが変なXファイルを生成しているのかUDX側なのか不明です

464:デフォルトの名無しさん
07/09/28 17:20:51
ここはDirectXの質問スレであって
ライブラリの使い方の質問スレじゃないんだか
そんなの、ライブラリ製作者に聞けよ

465:デフォルトの名無しさん
07/09/28 17:25:37
>>463
もうこれで最後な
メタセコでXファイル出力するときに
法線(スムージング)とUVマップの
チェック項目にチェックをいれろ

これでだめなら
お前のライブラリの使い方が悪い
基本を理解してないのに使おうとしても
応用が利かないってことがもうわかっただろ?

466:デフォルトの名無しさん
07/09/28 17:28:29
できましたサンクス

467:デフォルトの名無しさん
07/09/28 17:29:33
マイクロソフトによる講演「Windows Vista ゲーム開発」、数多くの国内PCゲームが躓いたIME問題は、SDKサンプルのささいなバグだった!?
URLリンク(www.watch.impress.co.jp)

468:デフォルトの名無しさん
07/09/28 17:44:41
>>441
ありがとうごぢゃいます。勉強させていただきます。

>>467
DXUTでIMEエディットボックスが利用できなかったのでおれの環境おかしいのかなぁとおもってましたが、
よくわかりました。教えてくれてありがとうございます。

469:デフォルトの名無しさん
07/09/28 18:19:19
Xファイルが大量にUPされてるサイトとかない?
モデル作れないorz

470:デフォルトの名無しさん
07/09/28 20:19:45
お金くれれば作ってあげる。
キャラ一体30万でいいよ。

471:デフォルトの名無しさん
07/09/28 20:42:45
30万とかぼったくりだろ。
俺だったら1ポリ1000円でいいよ。

472:デフォルトの名無しさん
07/09/28 21:07:18
な、なら俺は1頂点500円だ

473:デフォルトの名無しさん
07/09/29 01:25:24
ここ2,3日の質問レスはどれも死ねと回答したくなるような代物だった。
俺は何を思って初心者スレにいたのだろう。
たぶん俺はここにいるべきではないのだ。
自分のゲームを作る仕事に戻ったほうがいい.....



474:デフォルトの名無しさん
07/09/29 02:59:38
そうだ帰れ帰れ

475:デフォルトの名無しさん
07/09/29 06:23:48
>>473
そう思っただけでまったく回答なんてしてなかったんだろ?
ここにいるべきではないな

476:デフォルトの名無しさん
07/09/29 07:58:53
>>473はスカトロの話題で進んでほしかったらしいよ

477:431
07/09/29 11:36:28
>>434
あ・・・なるほど(汗)
おかげさまでできました!
ありがとうございました!

478:デフォルトの名無しさん
07/09/29 12:44:30
>>475
そのとき回答していない=ここにいるべきではない
とはならないだろ。回答できるだけの知識があって、回答できる質問がないかここに見に来たけどむかつく質問しかない、って言ってるんだから、それが理由で去るなら、このスレは回答者を一人失っただけ。回答者は答えなくても何も困らない。

技術的に初心者なのはぜんぜん構わないが、質問者として初心者なやつには答える気は全く起こらない。

479:デフォルトの名無しさん
07/09/29 17:31:23
DirectSoundでサウンドボードに入力される音声を再生したいです。
キャプチャバッファを作りWAVファイルに録音する方法は分かったのですが、
リアルタイムに再生する方法が分かりません。
おそらくセカンダリバッファに入力音声を入れて
(バッファのポインタ)->Play();
とすれば良いと思うのですが、キャプチャデバイスからの音声をセカンダリバッファに
放り込むやり方が分かりません。
ググっても、キャプチャデバイスを使うものは再生無しで録音するものばかりです・・・。

ご助言、よろしくお願いいたしますm(_ _)m

480:デフォルトの名無しさん
07/09/29 17:51:38
ストリーミング再生の事?
URLリンク(www2.muroran-it.ac.jp)

481:479
07/09/29 18:23:16
>>480
ストリーミング再生です。
そのページは読んでみたのですが、音楽CDの読み込みに特化しているようで
参考になりませんでした。

482:デフォルトの名無しさん
07/09/29 19:19:57
結局のところ、録音バッファと再生バッファの両方をロックしてmemcpyで終わりだろ。
何を悩んでいるんだ?

483:toshi
07/09/30 00:30:09
自分の理解の為に、3D知識についてwikiやhtmlページにまとめようと思っています。
(^o^;
本やWEBを参考に下記ページのようにまとめてみました。ぶしつけですが、
もし宜しかったら、皆様に間違いや補足知識の指摘を頂けないでしょうか?
URLリンク(toshi104.odap.jp)
辛口で構わないのですが、始めて3日足らずの初心者なので、間違いや不備は
沢山あると思います。どうぞ宜しくお願い致します。
(※リンクはしばらく残しておきます。)(※掲示板も設置しました)
(※宣伝ではないですよ。趣味です。ゲーム好きです。)


484:デフォルトの名無しさん
07/09/30 00:46:18
一番辛口に言うと
「チラシの裏にかいとけ」


一応斜め読んで気になったのは
FVFっていずれ使われなく(使えなく)なるんじゃね?とか
射影座標とスクリーン座標がごっちゃになってそうとか

485:toshi
07/09/30 01:35:47
レス感謝です。
>「チラシの裏にかいとけ」
あはは、そうですね。でもレス感謝です。

>FVFっていずれ使われなく(使えなく)なるんじゃね?
そうなんですか?頂点フォーマットですよね?他にどんなのがあるのでしょう?
一応DirectX9.0関連の本やWEBで一般に使われていたので・・・。
差し支えなければ、教えて下さい。

>射影座標とスクリーン座標がごっちゃになってそうとか
なるほどー、射影座標っていうのがあるんですね。勉強になります。
本に書いてありませんでした。でも、遠近法等を表現する「平行投影」「透視投影」
のハナシはありました。つまり、スクリーン座標前の変換である「プロジェクション変換」に含んでしまっているみたいですね。
どもです。

486:デフォルトの名無しさん
07/09/30 03:42:38
>>478
ごちゃごちゃいいわけウザイw

例え自分の正義に基づいてどうであっても
他人がお前をウザイと思えばお前の中でどうであってもウザイことに変わりはない

お前が知らないから答えられなくても、
お前が知っていて答えなくても質問者にとってはどうでもいいことだ

それにお前の望む質問者なんてもんは多分ほとんどいないといいきれるほど稀な存在だろう
初心者なんてのは色々ひっくるめて初心者なんであって
技術の部分「だけ」が足りない奴なんてのはほとんどいないといっていいだろう
そういう奴等をあらかた無視して色々お膳立てしてあって
「ハイ、後は、この部分の回答だけ貰えばOKなんです」
なんて状態になるわけない
こんなのいたら質問スレになんてくるわけない
多くの初心者は総合的に初心者であることがほとんど

要は俺がいいたいことは
現実にない状況(理想)を勝手に望んでそれを当然のこととするのはウザイ
ってことだ

まあ、ウザイだけで、正しいとか正しくないとかは問題じゃないからねw
好きにやりなよw

487:デフォルトの名無しさん
07/09/30 03:43:29
とりあえず寝ればいいんじゃね

488:デフォルトの名無しさん
07/09/30 10:28:26
>>485
プロジェクション変換は
スクリーン座標に変換するものではなく
ビュー変換から射影座標に変換するためのもの
そこからさらにVierport変換をかけて
ようやくスクリーン座標になる
Direct3Dの場合は
Viewport変換はViewpotの設定にしたがって
デバイスが勝手にやってくれるので忘れられがちだけど


でも、こんなのをまとめたところで
「で?」っていう感じがしないでもないんだが・・・

489:デフォルトの名無しさん
07/09/30 14:11:12
自分の知識を整理するって意味では有用じゃないの

他人からしたらあまり意味ないけど

490:デフォルトの名無しさん
07/09/30 14:17:52
そんな時のためにチラシの裏があるんだよ

491:デフォルトの名無しさん
07/09/30 14:27:51
ダイレクトX死ね

492:デフォルトの名無しさん
07/09/30 15:12:53
>>486
ごちゃごちゃ言いわけしてるのは君w
まあどうでもいいけど

493:デフォルトの名無しさん
07/09/30 18:40:21
XFileフォーマットに関して質問です。

現在D3DXを使わずにXファイルの書き出しをしています。
しかし、圧縮バイナリ"xof 0302bzip0032"の後の8バイトが何を指しているのか
分からずつまずいています。
前4バイトはおそらく解凍後のバイナリサイズだと思うのですが
残りの4バイトが分からないのです。

ご存知の方いらっしゃいましたらご教示お願いします。




494:479
07/09/30 18:54:05
>>482
おかげさまでできました。
ありがとうございましたm(_ _)m

495:デフォルトの名無しさん
07/09/30 22:08:33
新ねエーきょうみねええーあひゃひゃひゃ
今からここは初心者の性根を叩き
なおすつういみのしょしんしゃすれになるぜーーー


496:デフォルトの名無しさん
07/09/30 22:12:46
新ねえー興味ねええあひゃひゃひゃふあ
つうかいまからここは初心者の性根を叩きなおす
といういみでのしょしんしゃすれになったから

497:デフォルトの名無しさん
07/10/01 00:15:27
>>446
>>451
>>453
>>454
>>457
>>462
>>463
割れOS使ってんなよ

498:デフォルトの名無しさん
07/10/01 00:39:14
最近のSDKはダウンロード時にチェックされんのか
あんま意識してなかったけどそういやそうだった

だから古いのを使いたがるのね

499:デフォルトの名無しさん
07/10/01 07:31:45
古いSDKを使いたがる奴=割れ厨ってことだな

500:デフォルトの名無しさん
07/10/01 11:59:59
XP SP1で止まってる奴は十中八九割れ

501:デフォルトの名無しさん
07/10/01 15:19:08
テクスチャって2の累乗の正方形じゃないとダメみたいなことを
聞いたことがあったようななかったような気がするんですが、
そんな仕様ってありましたっけ?
CreateTextureFromFileとかで普通に読み込んで表示できてるんですが・・・

502:デフォルトの名無しさん
07/10/01 15:37:21
>>501
かつて、そういうGPUがあった。

503:デフォルトの名無しさん
07/10/01 15:57:57
>>501
TextureCaps の D3DPTEXTURECAPS_POW2 フラグと
D3DPTEXTURECAPS_SQUAREONLY フラグが立っているときがそれ。

504:デフォルトの名無しさん
07/10/01 16:34:19
>>503
全然気にせず作っていた、、、どの世代のGPUってそんな制限あったんだろう?
そのCAPってDX9だけどDX10にはCAPがないからその制限ないのかな?


505:デフォルトの名無しさん
07/10/01 18:15:20
>>504
2の累乗制限に関しては
・条件付きnon-pow-2サポート
・無条件non-pow-2サポート
の2種類がある。
URLリンク(msdn2.microsoft.com)

[条件付きnon-pow-2サポート]
D3DPTEXTURECAPS_POW2==TRUE && D3DPTEXTURECAPS_NONPOW2CONDITIONAL==TRUEのとき

[無条件non-pow-2サポート]
D3DPTEXTURECAPS_POW2==FALSE && D3DPTEXTURECAPS_NONPOW2CONDITIONAL==FALSEのとき

これとは別に、テクスチャの縦横サイズをそろえる必要があるかどうかの
D3DPTEXTURECAPS_SQUAREONLYフラグがある。

PixelShader 3.0への対応条件に
・D3DPTEXTURECAPS_SQUAREONLYがFALSEなこと
・条件付きまたは無条件のnon-pow-2テクスチャをサポートすること
が含まれているので、PixelShader 3.0対応ハードなら基本的に問題ない。
URLリンク(msdn2.microsoft.com)

C:\Program Files\Microsoft DirectX SDK (August 2007)\Samples\C++\Direct3D\ConfigSystem\CardCaps.pdf
にCAPS一覧がある。

>そのCAPってDX9だけどDX10にはCAPがないからその制限ないのかな?
ない。

またIDirect3DDevice9ExはPixel Shader 3.0対応は必須ではないが、
条件付きまたは無条件のnon-pow-2テクスチャをサポートすることは必須になっている。
Aeroが使える環境では必ず何らかのnon-pow-2テクスチャサポートがある。


506:デフォルトの名無しさん
07/10/01 18:38:22
この制限があった有名なビデオカードは3dfx社のVoodooだよね。
もう10年近く前のカード。DX9では本来対応すべきなんだろうけど
今ならフラグをチェックして制限があれば「対応外」としてもかまわない気がする。

507:デフォルトの名無しさん
07/10/01 18:52:17
そしてVoodoo以外はその制限があるカードが確認できない、都市伝説と化している。
あると主張する人が具体的な製品名を挙げることが出来た例は皆無。

508:デフォルトの名無しさん
07/10/01 18:58:52
C:\Program Files\Microsoft DirectX SDK (August 2007)\Samples\C++\Direct3D\ConfigSystem\CardCaps.xls
から調べてみた。
April 2006時点のものらしいので、ドライバのアップデートで変わってるかもしれないことに注意。

[D3DPTEXTURECAPS_SQUAREONLY]
そんなカードは無い。

[pow2のみ]
Pixomatic, Permedia 3, Wildcat VP870, ViperII Z200, 315, Xabre, TNT 2

[conditional non-pow2]
Millennium G450, DeltaChrome, Volari Family, 865G, 945G, RADEON 7000, RADEON 7200, MOBILITY M9,
RADEON 8500, RADEON 9000, RADEON 9100 IGP, RADEON 9200, MOBILITY FIRE GL, RADEON 9600,
RADEON 9700 , RADEON 9800, X300, X700, X800 , X850, X1800, GeForce 2, GeForce4 MX, GeForce3 Ti500,
GeForce4 Ti4200, GeForce FX 5200, GeForce FX 5900

[unconditional non-pow2]
Parhelia, GeForce 6200, GeForce 6800, GeForce 7800, Quadro FX 4400

>507
[pow2のみ]に挙げた7つは制限を持つらしい。
まあいまさら考慮する必要がないと思うけど。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch