■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

鬱だ氏のう DirectX (Part 12)
251 名前:デフォルトの名無しさん :04/02/21 23:57
       ∵∴∵∴∵∴∵∴∵F
    /||∵/∴∵\∵∴∵∴l
   / ::::||∵<・>∴∴.<・>∵∴∵|=-<
 /:::::::::::||∵ / ●\∴∵∴∵,'、
 |:::::::::::::::||∵/三 | 三|∵∴∵/  ト
 |:::::::::::::::||∵|\_|_/|∵∴,ィ'
 |:::::::::::::::||∵| \__ノ  |∵,/\_
 |:::::::::::::::||∵\__/ ,イ   |
 |:::::::::::::::||∵∴∵ ,, ┐' ト-
 |:::::::::::::::||| ̄乃'゙人 ∧
 |:::::::::::::::||∧ ∧∩ ..||
 |:::::::::::::::|| ゚∀゚)/  .|| tanasinn
 |:::::::::::::::||∧ ∧∩ ..||
 |:::::::::::::::|| ゚∀゚)/ . ||
 |:::::::::::::::||    〈 . ..||
 |:::::::::::::::||,,/\」 . ..||
 \:::::::::::|| ̄ ̄ ̄ ̄


252 名前:デフォルトの名無しさん :04/02/22 06:24
アセンブラで書き直したら45%スピードアップしたよ
体感速度がだんち

253 名前:デフォルトの名無しさん :04/02/22 07:46
撒餌

254 名前:デフォルトの名無しさん :04/02/22 08:15
コマセ?

255 名前:デフォルトの名無しさん :04/02/22 08:22
>>252
複雑な3D処理の中核ボトルネック部分をアセンブラで書き直すと劇的に早くなることがあるね

256 名前:252 :04/02/22 08:53
縦シューだけどね。
WinMain以外全部asmだよ

257 名前:デフォルトの名無しさん :04/02/22 09:05
EXEは何KBになった?

258 名前:デフォルトの名無しさん :04/02/22 09:17
俺はマシン語直接打ち込んでるよ
ばりはや

259 名前:デフォルトの名無しさん :04/02/22 09:31
COBOLからDirectXが使いたいのですがどうすればいいですか?

260 名前:デフォルトの名無しさん :04/02/22 09:36
今時のPC、今時の縦シューで描画以外がボトルネックになるのか。。。
一体内部でどんなことやってるんだか

261 名前:デフォルトの名無しさん :04/02/22 09:40
>>260
RTS型の縦シューだから経路探査にものすごい複雑な処理が必要なんだよ

262 名前:デフォルトの名無しさん :04/02/22 09:49
ソフト販売を目的とするならインラインASMは必須だけどね

263 名前:252 :04/02/22 09:51
やっぱキャラと弾幕のインタプリタと、マイクロスレッドだね



264 名前:デフォルトの名無しさん :04/02/22 09:52
>>261
だとしても、WinMain以外全部asmである必要はない。
最内ループやそれに類する高負荷部分以外は
コンパイラに任せた方が良い結果を生むことの方が多い。

いや、君が万人に一人の天才なら話は別だよ?そんときゃ素直に謝るよ

265 名前:デフォルトの名無しさん :04/02/22 10:21
アセンブラだとDirectX使えないじゃん

266 名前:デフォルトの名無しさん :04/02/22 10:29
BitBltより45%アップに一票。
つか、縦シューなら素直にH/Wに頼れよ。

267 名前:デフォルトの名無しさん :04/02/22 11:19
>>263
一体どんなキャラ/弾幕数とどれだけ複雑な処理を行っているのやら.
労力を無駄に浪費したいだけのアホなのはよく分かった.

268 名前:デフォルトの名無しさん :04/02/22 12:20
オブジェクトの1つ1つにスレッドを割り振る
敵キャラはもちろん敵弾一つ一つだ

269 名前:デフォルトの名無しさん :04/02/22 14:08
           _,. -‐''"∴∵``' ‐ .、._
          ,.‐'´∴∵∴∵∴∵∴∵ `‐.、
        ./∴∵∴∵∴∵∴∵∴∵∴∵\   tanasinn
       ,i´∴∵∴∵∴∵∴∵∴∵∴∵∴∵ヽ
.       /∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵i、  ↓>>265
     ,i∴∵∴∵∴∵∴∵∴∵∴∵∴∵∧∴∵l      ∧    
      |∴∵∴∵∴∵∴(・)∴∴.(・)∴∵:/ ヽ_∵.l  .   / . ヽ   
.     | ∴∵∴∵∴∵∴ / ○\ ∴∵./   `、⌒ヾ⌒ヽ/   ヽ   
.      |∴∵∴∵∴∵∴/三 | 三|∴./    (.....ノ(....ノ   / ヽ  
.     |∴∵∴∵∴∵∴| __|__ |∴|   ι      ι::(....ノノ.  
     l∴∵∴∵∴∵∴|  === .|:/ ̄ ̄ヽ      ::::::::::::::/`ヽ  
.     ゙i ∴∵∴∵∴∵ \__/:(___..ノ     :::::::::::::::::::(....ノノ 
      ヽ∴ ∵∴∵∴∵∴∵∴∵∴:ヽ   ι ::::::::::::::::::::::::::ノ   


270 名前:デフォルトの名無しさん :04/02/22 14:09
           _,. -‐''"∴∵``' ‐ .、._
          ,.‐'´∴∵∴∵∴∵∴∵ `‐.、
        ./∴∵∴∵∴∵∴∵∴∵∴∵\   tanasinn
       ,i´∴∵∴∵∴∵∴∵∴∵∴∵∴∵ヽ  ↓>>249
.       /∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵i、
     ,i∴∵∴∵∴∵∴∵∴∵∴∵∴∵∧∴∵l      ∧    
      |∴∵∴∵∴∵∴(・)∴∴.(・)∴∵:/ ヽ_∵.l  .   / . ヽ   
.     | ∴∵∴∵∴∵∴ / ○\ ∴∵./   `、⌒ヾ⌒ヽ/   ヽ   
.      |∴∵∴∵∴∵∴/三 | 三|∴./    (.....ノ(....ノ   / ヽ  
.     |∴∵∴∵∴∵∴| __|__ |∴|   ι      ι::(....ノノ.  
     l∴∵∴∵∴∵∴|  === .|:/ ̄ ̄ヽ      ::::::::::::::/`ヽ  
.     ゙i ∴∵∴∵∴∵ \__/:(___..ノ     :::::::::::::::::::(....ノノ 
      ヽ∴ ∵∴∵∴∵∴∵∴∵∴:ヽ   ι ::::::::::::::::::::::::::ノ   


271 名前:デフォルトの名無しさん :04/02/22 14:38
アセンブラだとDirectX使えないじゃん

272 名前:デフォルトの名無しさん :04/02/22 17:54
>>271
ハァ??
君ってチンカス以下だね

273 名前:デフォルトの名無しさん :04/02/22 18:10
ハァァァ、俺もチンカスになりてぇ

274 名前:デフォルトの名無しさん :04/02/22 23:32
D3DXCreateTextureFromFileで48*48のDDSファイルからテクスチャを作って
LPD3DXSPRITEのDrawを使って等倍で描画すると64*64になってしまうのですが
2のN乗のピクセル数じゃないとダメとかって仕様なんですか?

Drawで75%にして表示させるのだと
48*48になってもスケーリングでぼやけてしまうので…


275 名前:デフォルトの名無しさん :04/02/22 23:37
>>274
>2のN乗のピクセル数じゃないとダメとかって仕様なんですか?
うん、そう。
ていうか何がしたいんだよ。

276 名前:デフォルトの名無しさん :04/02/23 00:09
>>274
ぼやけるのは別問題。
三角形ラスタ化ルールをよく嫁。

277 名前:デフォルトの名無しさん :04/02/23 00:18
アセンブラだとDirectX使えないじゃん


278 名前:デフォルトの名無しさん :04/02/23 00:18
引き伸ばして展開した物を75%にしたらぼけるのは当たり前。

>ぼやけるのは別問題。
>三角形ラスタ化ルールをよく嫁。
全然別問題じゃないぞ。
脳内反射でテクセルのせいだと思いこむな。

279 名前:デフォルトの名無しさん :04/02/23 00:19
なあ、ちょっと質問。
monshoさんところのボーンの説明なんだけど。
ttp://monsho.hp.infoseek.co.jp/msys/sys08.html
どうして、ボーンをそう一度に突っ込もうとするんだ?
わけて描画するよりソフトウェア処理のがいいのか?
ちなみに俺はシャイなので直接本人に聞けなかったりする。

280 名前:デフォルトの名無しさん :04/02/23 00:23
>>279
一つの頂点に対して、多数のボーンが割り当てられている場合、
どうやって分けるつもりなんだ?

281 名前:デフォルトの名無しさん :04/02/23 00:23
「アセンブラとアンブレラは似ている」

282 名前:デフォルトの名無しさん :04/02/23 00:42
>>280
例えば、(ボーンじゃなくて)ローカルのメッシュごとに描画すると考えて
そのメッシュの描画に必要なボーンがわかればいいんじゃないのか?

283 名前:デフォルトの名無しさん :04/02/23 01:54
アンブレラだとDirectX使えないじゃん


284 名前:デフォルトの名無しさん :04/02/23 02:22
>>279
その変、色々こしょこしょごにゃごにゃ実験研究したんだが
おれも結果的には「スキニングはCPUで」になった
その過程の紆余曲折に関してはとてもここで述べきれないが
パフォーマンス以外の理由もかなり絡んでくる

285 名前:デフォルトの名無しさん :04/02/23 02:35
>>284
なぁ?>>282の方法では駄目だった?
#いや、俺、自分じゃスキニング実装したことないんだけどねw

スキニングをCPUに妥協した理由がシェーダが面倒っていうなら納得するけど。
かいつまんでいうとなんで?

286 名前:デフォルトの名無しさん :04/02/23 02:42
1枚のテクスチャに複数個の画像を詰め込んで利用するときに、
テクスチャ補間で、その領域の外部の点がサンプリングされて
周囲にノイズがのってしまうんですが、
どうやって回避するのが普通なんでしょうか?

各領域の境界に1ドットの遊びをつくってとりあえず対処しましたが、
もっと楽な方法ってあります?

287 名前:デフォルトの名無しさん :04/02/23 02:45
>>279
今やるなら適当に分けて頂点シェーダーで処理したほうが絶対いいと思う。
それにゲームなら分けないで済んじゃう場合が多いのでは?

>>284
一つでいいのでCPU処理の利点を教えて欲しい。

288 名前:285 :04/02/23 02:54
>>287
>一つでいいのでCPU処理の利点を教えて欲しい。
では、代わりに俺が2つ利点をば・・・。

1つ目。
スキニングをCPUでやると設計が楽ってところです。
頂点シェーダって組み方にもよると思いますけど
スキニング有り無しと2つ書かないといけないですよね。
バンプマップもスキニング有りと無し
環境マップも同様。
そのほかのものも同様。
って感じではっきりいって面倒です。
スキニングをCPUでやるととっても楽になりますってただそれだけなんですけどね。

2つ目。
ボーン一箇所に何本までね。とかいう制限が無くなる。

こんな感じでどうでしょうか?
ってか実装したことないんですけどね。俺w
これからやろうと考えてるので色々とうまい組み方が知りたいです。

289 名前:デフォルトの名無しさん :04/02/23 06:53
確かに気楽だわな。

でもCPU資産の方が余程重要と考える俺はケチなんだろか

290 名前:デフォルトの名無しさん :04/02/23 06:56
CPU資産の有効活用は難しいね
おれはPEN4-3.2GHzDualだからね

291 名前:デフォルトの名無しさん :04/02/23 08:18
caps.MaxVertexBlendMatrices
caps.MaxVertexBlendMatrixIndex

がカードによってばらばらだから。
convert2*BlendedMesh
がめんどくさい。

292 名前:デフォルトの名無しさん :04/02/23 08:23
ま、今あるSoftware頂点シェーダより遅いのは確かだろうな。


293 名前:デフォルトの名無しさん :04/02/23 08:39
ヌーブラだとDirectX使えないじゃん


294 名前:デフォルトの名無しさん :04/02/23 09:14
確かに自分の環境用に作るならまだともかく
環境を幅広く取ったらやる気失せるよなあ

295 名前:デフォルトの名無しさん :04/02/23 09:27
>>280
だじゃらメッシュ単位の問題ではなく、
同一頂点に対して、ハードの限界を上回るボーンが関連付けられたら、
分けようがないということなんだが。

296 名前:デフォルトの名無しさん :04/02/23 09:42
>>295
>>279のリンク先に関していえばレジスタ数の問題って書いてあるからそっちじゃないんじゃないかな。

297 名前:デフォルトの名無しさん :04/02/23 10:28
スキニングに限らずVertexShader2.0未満は何やんのもダルイ。

298 名前:デフォルトの名無しさん :04/02/23 11:07
DirectShowスレが寂れているのでこちらに。
DirectShowで簡単なビデオ編集(切り出し)ソフトを作ろうとしていて、
タイムライン表示用にBMPを撮りたいのですが、ISampleGrabberもIMediaDetも
DX9と共存できなくて困っています。
GetImage的な使い方が出来る方法はないですか?

299 名前:デフォルトの名無しさん :04/02/23 11:21
ヘッダがバッティングするだけだから、ソースを分けるか、
GUIDを自分で定義するなりすれば使える。

300 名前:デフォルトの名無しさん :04/02/23 11:25
           _,. -‐''"∴∵``' ‐ .、._
          ,.‐'´∴∵∴∵∴∵∴∵ `‐.、
        ./∴∵∴∵∴∵∴∵∴∵∴∵\
       ,i´∴∵∴∵∴∵∴∵∴∵∴∵∴∵ヽ
.       /∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵i、
     ,i∴∵∴∵∴∵∴∵∴∵∴∵∴∵:../⌒ヾ皿⌒ヽ
      |∴∵∴∵∴∵∴(・)∴∴.(・)∴∵∴./_(.....ノ─(.....ノ_
.     | ∴∵∴∵∴∵∴ / ○\ ∴∵:../11 12  1\
.      |∴∵∴∵∴∵∴/三 | 三|∴∵./     ↑    / ヽ      tanasinn
.     |∴∵∴∵∴∵∴| __|__ |∴../ 10  ......↑    (....ノノ
     l∴∵∴∵∴∵∴|  === .|∵.l   ..   ...│   ..  /`ヽ
.     ゙i ∴∵∴∵∴∵ \__/∴.l 9  ....  ●     (....ノノ
      ヽ∴ ∵∴∵∴∵∴∵:./ ̄ ̄ヽ  .           lノ
                    (___..ノ.           4 /


301 名前:デフォルトの名無しさん :04/02/23 14:06
tanasinnって誰だ!!??

302 名前:298 :04/02/23 14:10
頑張ってみます。

303 名前:デフォルトの名無しさん :04/02/23 14:57
>>295
>同一頂点に対して、ハードの限界を上回るボーンが関連付けられたら、
>分けようがないということなんだが。
ハードの限界を上回るって一頂点に何十本も割り当てる意味ってあるの?
あまりにも微妙すぎて結局無駄になりそうな気がする。

304 名前:デフォルトの名無しさん :04/02/23 15:03
>>303
確かGeForceでは固定機能ではインデックス不可で2Weightまでだったはず。
単純に制限が強すぎて使えない。

305 名前:デフォルトの名無しさん :04/02/23 15:41
>>304
それって頂点シェーダの話?

306 名前:303 :04/02/23 16:04
>>304
今なら頂点シェーダーが動かないボードでもシェーダーを使った処理をして
初期化時にソフトorハード処理を切り替えたほうがいいと思う。
DirectX8世代より前のボード使ってる人ってもう少数派なのでは?
まあシェーダーは一切使わないって方針もありだとは思うけど…

>>305
固定機能って書いてあるよ。


307 名前:デフォルトの名無しさん :04/02/23 16:09
>>304
頂点シェーダじゃなかった。すつれい。

自分も昔固定機能HWスキニングの為に、メッシュ分割モジュールを組んだことがあるが
今はもうHDDの肥しになってる訳で。こんなもんに労力を割くのは無駄。
実装も美しくなくなるし。
同様の理由でHDRLightingも無駄、つーかDirect3D自体無駄。

308 名前:305 :04/02/23 16:30
>>306
すまんこ

309 名前:デフォルトの名無しさん :04/02/23 16:33
DirectSoundのSetNotificationPositionsについて質問です。
これを使って複数のバッファを同時再生すると、
バッファAのシグナルが発生するタイミングで
バッファBのシグナルも発生してしまうようです。
これの回避方法は無いでしょうか?

使用しているのはDX8.1で、目的はストリーミング再生です。
ちなみに、調べてみたところ、OSがw2kだと起こり、98だと起こらないらしいです……

310 名前:デフォルトの名無しさん :04/02/23 16:58
確かにそうなるけど、何か問題あるかな?

問題というとMsgWaitなんたらかんたらかなぁ。
あの関数は全ての自動リセットイベントを非シグナル状態にします。
マニュアルリセットにして、ストリームへロードしたバッファのイベントのみ
非シグナルにすれば上手く行くかもしれません。

311 名前:309 :04/02/23 18:17
説明不足でした。
シグナルの検知にはWaitForSingleObjectを使っています。
シグナル発生のたびにバッファへ書き込みを行い、
書き込んだ分だけ読み込み用ポインタをずらしているのです。
そのため、他のバッファのシグナルを検知してしまうと、
バッファ内容が意図しないタイミングで更新され、
読み込みポインタがどんどんズレてしまうハメに。
結果的には音飛び状態になっています。

マニュアルリセットの件については、
どういう事なのかピンときませんでした……すみません。

312 名前:デフォルトの名無しさん :04/02/23 18:44
>>309
バッファつくるときにDSBCAPS_LOCSOFTWAREを指定。
って、解決策になってないね…。
誰かH/Wにリソース置いても上手くいく方法教えてくだせえ。

313 名前:デフォルトの名無しさん :04/02/23 18:47
まあ要するにスレッド同期が上手く行ってないんですね。
そういうのはスレッドの設計があまりよろしくないと思います。
今のままで解決する方法もあると思いますが思い切って設計変えたほうが楽な気がします。

こういうタイプの実装方法って主に3つパターンあると思うんですが
1)1スレッドに1イベントと1バッファを割り当てる
2)1スレッドで全イベントを管理、イベント発生したら対応バッファを処理、終了したら次のイベントを待機
3)1スレッドで全イベントを管理、イベント発生したら待機スレッドを起動、対応バッファを割当、そのスレッドでバッファを処理

1番と3番はスレッドが複数必要で同期要りますが、2番のスレッドは1つです。
MsgWaitForMultipleObjectsを使ってイベントを待ちましょう。この関数の注意点は310の通りです。

314 名前:313 :04/02/23 18:56
ところで追記だけど
もしかして全てのバッファで同じイベント使ってない?(;´Д`)

315 名前:デフォルトの名無しさん :04/02/23 18:57
|-`).。oO(同じイベントハンドル使ってるからじゃないのかなぁ…)

316 名前:309 :04/02/23 19:03
何度も書き込み失礼します。

>イベント発生したら対応バッファを処理
これが出来ないから困っているんです……
イベントが発生しても、対応するバッファを知ることが出来ないのです。

バッファAにイベント1、イベント2を設定し、
バッファBにイベント3、イベント4を設定したとします。
バッファAの再生位置がイベント1に達したとき、
本来ならイベント1のみがシグナル状態になるはずですが、
なぜかイベント1とイベント3が一緒にシグナル状態になったりするのです。
これですと、イベントが発生したからといって、バッファを処理して良いとは限りません。

317 名前:309 :04/02/23 19:04
>>314
勿論別です・・・

318 名前:デフォルトの名無しさん :04/02/23 19:12
>>312
ハードウェアの時だけ出る症状なの?

319 名前:デフォルトの名無しさん :04/02/23 19:31
>>318
漏れの環境ではハードウェアの時だけ。
んで今、DirectXのヘルプ見たらDSBUFFERDESCの注意の項に

VxD ドライバの場合、DSBCAPS_CTRLPOSITIONNOTIFY を使って作成された
サウンド バッファは常にソフトウェア バッファである。(中略)
ハードウェアが利用可能な場合は、WDM ドライバにより、通知可能なバッファが
ハードウェアに存在することがある。

とある。
Win9X系では正常で、Win2kではおかしいってのはこのせいじゃないかと思ってる。
で、これドライバ最新のにしても直らんのよ。皆、どうしてる?

320 名前:313 :04/02/23 19:36
>>316
対応するバッファは分かるはず。
MsgWaitForMultipleObjectの戻り値を使えば、
どのイベントがシグナル状態になったか把握できるよ。

321 名前:309 :04/02/23 19:40
>>319
なるほど……DSBCAPS_LOCHARDWAREでやっみたら上手くいきました。
悲しいですがとりあえず、w2kではハードウェアを捨ててやってみます。

>>320
うう、私の説明が下手なんでしょうか……。
どのイベントがシグナル状態になっているかは分かっています。
しかし、シグナル状態になるタイミングそのものが異常なのです。

322 名前:313 :04/02/23 20:03
つまりスレッド同期じゃなくて
ハードウェアからの通知が遅すぎて変なタイミングで更新されるってことですか(;´Д`)
とにかく解決してよかったです。

323 名前:デフォルトの名無しさん :04/02/23 20:05
いまいち状況が把握できなかった俺はもうダメポ

324 名前:デフォルトの名無しさん :04/02/23 20:49
313は最後まで状況を理解できなかったみたいだな…

325 名前:313 :04/02/23 21:04
VXD系ドライバだとソフトウェア配置になるから通知タイミングが安定するが
WDM系ドライバだとハードウェアに通知可能なバッファを置くことが出来るがその通知がどうも怪しい
だからソフトウェア配置にすれば通知タイミングが安定する環境がある

…そういうことじゃないの?(;´Д`)
気になって試しにサンプルのソース弄ってみたけど
Win2k&LOCHARDWAREにしてもちゃんと動いたよ
結局ドライバとかハードウェアの問題じゃないの?

326 名前:デフォルトの名無しさん :04/02/23 21:18
ホントDirectXって糞だな

327 名前:デフォルトの名無しさん :04/02/23 21:26
誉めても何もでんぞ

328 名前:デフォルトの名無しさん :04/02/23 21:29
ホントDirectXって神だな

329 名前:デフォルトの名無しさん :04/02/23 21:31
昔、似たような問題に出くわしたな。
検索すれば、同じ現象で悩んでる(た)人を見つけられるはず。
ちなみに俺が出した結論は

SetNotificationPositions を 使 わ な い



330 名前:デフォルトの名無しさん :04/02/23 21:35
それもありだな。
定期的に適当な関数呼び出して貰って位置取得しつつロックすりゃいい。
…って位置取得もなんか問題あったような。
ホントDirectXって糞だな。

331 名前:デフォルトの名無しさん :04/02/23 21:36
SoundBlasterが糞だという意見もあるけどな

332 名前:デフォルトの名無しさん :04/02/23 21:42
      ____
     /∵∴∵∴\
    /∵/∴∵\∵\        .  ..     \|
   /∵<・>∴∴.<・>∵|        . . / ̄ ̄ ̄
   |∵∵/ ●\∵∵|        . /
   |∵ /三 | 三|∵ |         |
   |∵ |\_|_/| ∵|         ∩
    \ | \__ノ  |/      .   |.|                  tanasinn
     \___/:、          ∪、
     /∵━○━∵ヽ         ..| \
    /∵人∵∵∵ \:\        \  \
  ⊂´:_/  )∵∵∵∵ヽ:_`⊃   / ̄ ̄ ̄ ̄ ̄ ̄
                     /



333 名前:デフォルトの名無しさん :04/02/23 22:54
DirectSEX未経験だぜ、ゴルァ!!


334 名前:デフォルトの名無しさん :04/02/23 23:18
つうか23にもなってゲーム作ってる俺も糞だ

335 名前:デフォルトの名無しさん :04/02/23 23:50
>>334
つうか24になってゲームなんか作ってる俺の方がもっと糞だ

336 名前:デフォルトの名無しさん :04/02/24 00:28
ネガティブプログラマー四MEN楚歌

337 名前:デフォルトの名無しさん :04/02/24 01:41
つうか就職してまでゲームなんか作ってるおまいらの方がもっと糞だ

338 名前:デフォルトの名無しさん :04/02/24 01:47
就職できずにゲームつくってるオレが彩京

339 名前:デフォルトの名無しさん :04/02/24 04:08
>316
書き込む前にGetCurrentPos()使って、次の書き込みが再生位置に被らないか判定する。

一回の通知で二つ分のバッファを書き込むようにしているから、こうしているんだが。

まあこの方法でも、USBサウンドデバイスが通知を受けた後のGetCurrentPos()で、
通知位置より前の位置を返してきたりして困ったが。

340 名前:デフォルトの名無しさん :04/02/24 19:50
>>316
いい加減、質問する前に少しは調べる癖を身につけろよな・・・

ttp://www.tobysoft.net/toby_diary2003.html
ttp://www.namikaze.org/yodiary/200010.html

結局はそんな腐ったインターフェース使うなということで
ファイナルアンサーなんだからさ。

341 名前:デフォルトの名無しさん :04/02/24 20:01
>>313
講釈師 見てきたような 嘘をいい


342 名前:デフォルトの名無しさん :04/02/24 20:37
嘘ってわけじゃないだろ。
解決策にはなってないな。

343 名前:デフォルトの名無しさん :04/02/24 22:26
>>340
これがFAだとすると、ほんとに鬱だ氏のうって感じだな
DirectX腐れすぎだ

344 名前:デフォルトの名無しさん :04/02/24 22:27
あ、いや、ドライバだな、腐れすぎなのは・・

345 名前:デフォルトの名無しさん :04/02/24 22:40
いや本当に腐れてんのは27にもなってエロゲ作ってる俺だ

346 名前:デフォルトの名無しさん :04/02/25 00:06
DirectXAudioについてお聞きします。使っている環境はDX8です。
現在はBGMと、効果音(銃声)を再生したいと思っております。
効果音の種類は今後追加することになるかもしれません。

本などを調べて、IDirectMusicPerformance8,Loader8,AudioPath8はひとつずつ用意して、
segmentにかんしては、再生させるWAVファイルの種類分必要というこということを
しりました。
BGMはひとつあれば十分ですが、銃声に関しては鳴らすキャラクターも複数おりますので、
音声がかぶることがあります。

ということでPlaySegmentExの引数に、BGMはプライマリーで、銃声はセカンダリーと
指定すれば、銃声は複数のセグメントを用意しなくても1つで十分ということみたいですが、
(そうですよね・・・?)、たとえば、ゲームをポーズさせて、のちに再開たい場合はどう
すればいいのでしょうか。

中止時刻を記憶しておいて、途中再開させるときはそこからスタートさせるような処理
を行うのでしょうか。でも、BGMなら1つだからまだ可能そうですが、1つのセグメントを
複数に多重再生させているような状態でそれがかのうなのでしょうか。
IDirectMusicSegmentState8を使えばなんとかなるかもとおもったのですが、そうも
思えなくて困っております。

よろしくおねがいします。


347 名前:デフォルトの名無しさん :04/02/25 13:14
                 ∴
         ∵  ∴  ∴∵∴    ∴
     ∴∵∴∵∴∵∴∵∴∵∴∵∴∴∵
       ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
   ∴∵∴∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴
      ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵/ ⌒ヽ∴∵∴∵∴
    ∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵| |   |∴∵∴∵
  ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∪ / ノ∴∵∴∵∴∵
..  ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵| ||∵∴∵∴∵
.∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∪∪∴∵∴∵∴∵
.∵∴∵∴∵∴∵∴∵:(・)∴∴.(・)∵∴∵∴∵∴∵∴∵∴∵∴∵∴
∵∴∵∴∵∴∵∴∵∴/ ○\∵∴∵∴∵∴∵∴∵∴∵∴
..∵∴∵∴∵∴∵∴∵/三 | 三ヽ∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
. ∴∵∴∵∴∵∴∵ | __|__ │∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵     tanasinn
.∵∴∵∴∵∴∵∴∵|  ===  │∵∴∵∴∵∴∵∴∵∴∵∴
.∵∴∵∴∵∴∵∴∵\___/∵∴∵∴∵∴∵∴∵∴∵∴
..∴∴∵/ ̄.. \∴∵∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴
∴∵∴/    ,. i ∵∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
∴∵∴|    /.| |.∵∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
  ∵∴|   | :| |.∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴
    ∴| |  |::| |.∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
    ∴| | |∵U∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴
      | | |∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵
     / / / ∵∴∵∴∵∴∵∴∵∴∵ ∵
    / / /       ∴∵∴∵∴ ∴
   .しし’          ∵

348 名前:デフォルトの名無しさん :04/02/25 18:16
>>290
今更だが、
Pen4はDual不可だぞ。

349 名前:デフォルトの名無しさん :04/02/26 02:00
D3DXIntersectの第9と第10引数にNULLを渡した時の動作って
保証されてますか?
DirectXSDKについてるPickのサンプルでNULLを渡してますが、
ヘルプにはNULLを渡す事について何も書かれてないと思うのですが。
見落としだったらすいません。
使ってるのはDirectX9.0bです。


350 名前:デフォルトの名無しさん :04/02/26 08:30
>>349
MSの掟。

351 名前:デフォルトの名無しさん :04/02/26 08:52
なぜ我々は糞と分かっていながら使い続けねばならないのか。
そこが大きな問題だ。

352 名前:デフォルトの名無しさん :04/02/26 10:55
それは、ここが鬱だ氏のうDirectXスレだからだな。
Windowsから一歩離れればDirectXなんか無いシナー

353 名前:デフォルトの名無しさん :04/02/26 11:24
私達が糞だから。

354 名前:デフォルトの名無しさん :04/02/26 11:31
まるでそびえ立つスレだ。

355 名前:デフォルトの名無しさん :04/02/26 11:35
糞どうし仲良くやろうや

356 名前:デフォルトの名無しさん :04/02/26 17:20
dxdiag で d3d9 のテストに成功したんだけど、いざプログラムを書いても失敗して、ソフトウェアレンダリングです。
dxdiagのテストプログラムソースって有りませんか?

357 名前:デフォルトの名無しさん :04/02/26 17:33
無いです。

コード晒してください。

358 名前:デフォルトの名無しさん :04/02/26 20:27
VertexBufferはD3DPOOL_MANAGED、
TextureはD3DPOOL_DEFAULTってまずいかな?

359 名前:デフォルトの名無しさん :04/02/26 22:42
独り暮らしはDEFAULT、
結婚生活はMANAGEDってまずいかな

360 名前:デフォルトの名無しさん :04/02/26 23:11
>>358
べつにまずくはない。

361 名前:デフォルトの名無しさん :04/02/27 01:03
ダイアログ内にDirect3Dで描画したいんだけど(DXウィザードのMFCベースのように)
WIN32SDKからやる方法って、どうやるんでしょうか?

362 名前:デフォルトの名無しさん :04/02/27 01:13
ダイアログ内に子ウィンドウ作ってそいつをDirect3Dの窓にするってのは駄目?

363 名前:361 :04/02/27 10:52
>>362
おお!そうですね、なんでそんなこと気がつかなかったんだろう…
ども、ありがとうございます。早速試します。

364 名前:デフォルトの名無しさん :04/02/27 16:40
みんな
D3DCREATE_MIXED_VERTEXPROCESSING
って使ってる?

365 名前:デフォルトの名無しさん :04/02/27 17:09
使わないと環境依存が強すぎてろくな事が出来なくなる。

366 名前:デフォルトの名無しさん :04/02/27 22:02
>>365
どのくらいのハードを対象にしてるの?
ピクセルシェーダぐらいは使っていいの?

367 名前:デフォルトの名無しさん :04/02/29 16:04
皆さん。3Dの時代は終りデスよ〜

368 名前:デフォルトの名無しさん :04/02/29 17:05
>>367
じゃあ次は何の時代なんだ?

369 名前:デフォルトの名無しさん :04/02/29 17:12
2次元に戻る。

370 名前:デフォルトの名無しさん :04/02/29 17:36
そして1次元へ。

371 名前:デフォルトの名無しさん :04/02/29 18:53
さらには無我へ

372 名前:デフォルトの名無しさん :04/02/29 19:43
ゲームには絵と違って時間という概念があるから、
最初から4次元だったんだよ。

セーブからやり直せるし。

373 名前:10次元→ひも理論をへて :04/02/29 21:08
そして伝説へw

374 名前:デフォルトの名無しさん :04/03/01 02:19
DirectX9でも始めようと思って、初心者向けの本を買った。
SDKを落として、最初のサンプルをビルド。エラー。
なんか関数の定義がサンプルでの使用法と違ってるらしい。

結局、summer版SDKを入れてたせいでした。本はその前のSDK向けだったみたい。
というか、何で同じバージョンで、しかも初心者向けサンプルに含まれる関数定義をあからさまに変えますか。
どうせ俺はヘルプ読めねえよ!
8.1をやるか、OpenGLをやるかというお達しかね…_| ̄|○

375 名前:デフォルトの名無しさん :04/03/01 02:57
9のsummer updateはちと酷いね。
少なくとも別バージョンにするべきだったと思う。

376 名前:デフォルトの名無しさん :04/03/01 12:58
>>374 summerってそうなのか。そろそろ入れようかと思っていたけど
面倒は嫌いなんで、次回作ゲームを作り始めるタイミングで入れよっと。
でも、DirectX10とかが先に出てるかもしれん。

377 名前:デフォルトの名無しさん :04/03/01 15:38
なんで9.1とかにしなかったんだろうなほんと。

378 名前:デフォルトの名無しさん :04/03/01 15:45
>>374
summerの一つ前のDirectX9SDKをインスコすればいいだけじゃーん
3Dの勉強したいだけならOpenGLが簡単でいいかもね

379 名前:デフォルトの名無しさん :04/03/01 22:05
そりゃsummer(2004)が出るからだべ

380 名前:374 :04/03/02 02:30
前のSDK入れたらビルド出来たー。
>>378多謝。

3Dをやりたいのだが、ネットワークとかサウンドも扱ってみたいのでDirectXを選んでみました。
とりあえず、これから勉強してみますわ。

381 名前:デフォルトの名無しさん :04/03/02 08:35
>>377
今後のメジャーバージョンアップは9.1、9.2、9.3になるので(10はナシ)

382 名前:デフォルトの名無しさん :04/03/02 12:45
9.01とかでいいのに。

383 名前:デフォルトの名無しさん :04/03/02 16:16
http://kfactory.s9.xrea.com/cgi/up/upload/PIECE/Imdun.zip
このサンプルを動かすとフルスクリーンで起動するんですが、普通のウィンドウのように起動するには
どうしたら良いですか?

384 名前:デフォルトの名無しさん :04/03/02 16:44
MSの製品で.3なんてバージョンはあまり無いような気がする

385 名前:デフォルトの名無しさん :04/03/02 20:25
すみません。directinputの使い方が詳しくのっているサイトはないでしょうか?
ジョイスティックを使って画像を動かしたいのですけれど、なぜか動かないので・・・

386 名前:デフォルトの名無しさん :04/03/02 20:31
本買え
のちのち為になるし

387 名前:デフォルトの名無しさん :04/03/02 20:33
DirectInputの使い方だけならサンプルとヘルプだけで十分

388 名前:デフォルトの名無しさん :04/03/02 20:35
ここで質問するような人間にとってはそれだけじゃ不十分

389 名前:デフォルトの名無しさん :04/03/02 20:38
>>386
本はかってます。工学社のやつ。しかし見てもわからないんです。
画像を動かすやつのサンプルがないですし。

>>387
サンプルにあるんですか?
一通り見たけどなかったような・・・

390 名前:デフォルトの名無しさん :04/03/02 20:52
どういう画像をどういう風に動かしたいの?
ちなみに普通に考えればその機能はDirectInputじゃないんだがな…。

391 名前:デフォルトの名無しさん :04/03/02 20:53
>>389
本とサンプル見れば分かるだろ
本当に読んだのか?

392 名前:デフォルトの名無しさん :04/03/02 20:53
>>389
SDKインスコしたとこよく見れ。Joystickってのがある。
あとヘルプのDirectInputチュートリアルがわかりやすいので嫁。

393 名前:デフォルトの名無しさん :04/03/02 20:55
>>390
2Dの画像を上下左右に動かしたいのです。
例えばパックマンみたいな感じで。


394 名前:デフォルトの名無しさん :04/03/02 20:59
>>391->>392
直接データとバッファリングデータの読み込み方法はわかったのですが、
画像を動かそうとするとなぜかうまくいかず・・・
変数を使って表示位置を変えるというのはわかってるんですが。



395 名前:デフォルトの名無しさん :04/03/02 21:03
>>393
DirectXとかプログラム以前にPCの常識的なことを学ばないと…。
それはDirectInputの問題ではなくDirectX Graphicsのほうだ。
ジョイスティックを扱っても画面を書き換えることは出来ないだろ。

396 名前:デフォルトの名無しさん :04/03/02 21:20
>>394
>画像を動かそうとするとなぜかうまくいかず・・・
ここが肝心なところ。
どんなふうに「うまくいかない」のか説明してくれないとアドバイスできない。

ジョイスティックからの入力に間違いがないか、表示して確認する。
画像の移動に間違いがないか、XかYを変化させながら表示して確認する。
両者が正しいのなら、あとはつなぎ合わせるだけ。

397 名前:デフォルトの名無しさん :04/03/02 21:21
>>394
どう上手くいってないか書かないと推測のしようもないわけだが・・・・・・・
DirectInputのサンプルは\DX90SDK\Samples\C++\DirectInput
ウィザードで生成されるものにもDirectInputは使われている
ついでにお勉強サイト
http://masafumi-t.cool.ne.jp/directx9.htm
http://www3.omn.ne.jp/~renas/DirectX/index.html

ソースを晒して叩いてほしいならウプロダは
http://gamdev.org/up/
ゲーム開発関係専用なので要注意

予備知識を仕入れたいなら
http://gamdev.org/w/?%5B%5B%A5%CB%A5%E5%A1%BC%A5%B9%A5%BD%A1%BC%A5%B9%5D%5D
のリンク集がよくまとまってる

勉強したいならこのリンク集
お勉強ページ 勝手にリンク
http://pc2.2ch.net/test/read.cgi/gamedev/1005060553/

398 名前:デフォルトの名無しさん :04/03/02 21:33
あのー383は・・・

399 名前:デフォルトの名無しさん :04/03/02 21:38
うまくいかないというのは、
画像の表示位置を変数で指定→ジョイスティックのボタンを押したら変数が変わる→これによって画像の位置を変化

という風にしようとしているのですが、なぜかボタンを押しても表示位置が変わらないのです。



400 名前:デフォルトの名無しさん :04/03/02 21:42
ボタン押した事自体はちゃんと認識できてるのか?
その変数とやらは変化してるのか?

デバッガ使えばすぐに分かるだろうし。

401 名前:デフォルトの名無しさん :04/03/02 21:44
だーかーらー
ジョイスティックだけで動かしてみて確かに入力が取れてるのかどうかとか
画像表示は表示位置を変えてもちゃんと描画されるのかとか
そーいうことを確かめろって言われてるんだってば

402 名前:デフォルトの名無しさん :04/03/02 21:45
>>399
プログラム内で変数を変えてみる→動かない→画像を移動させる処理が変

動いた

入力処理が変→入力自体が出来ていない→エラーコードを調べる

入力出来てる

条件分岐や変数の処理が間違ってないか確認

少なくとも聞く前にこれくらいはやろうぜ。

403 名前:デフォルトの名無しさん :04/03/02 21:47
あと>>383はdd_lib.hの228行目でも見れ

404 名前:デフォルトの名無しさん :04/03/02 21:48
>>399
デバッガのブレークポイント設定で、きちんと更新されてるかどうか調べてみぃ。

>>398
DirectX7以前のことは知らないのだが、ソースちらっと見た感じだと、
dd_lib.hのDD_INITあたりが該当するんでないかと。
どうもフルスクリーンモードしか作れないような仕組みになってるような…。

あとプログラム動かしてみたがテクスチャがキモイ。なんか間違ってる気がする。

405 名前:デフォルトの名無しさん :04/03/02 21:59
ddret = OldDDObject->SetCooperativeLevel(hwnd, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN);
これを
ddret = OldDDObject->SetCooperativeLevel(hwnd, DDSCL_NORMAL);
こう変えてみたんですが無理ですた。
>>404
やっぱ無理ですか?

406 名前:デフォルトの名無しさん :04/03/02 22:01
>>405
それってその場面でエラー出てる?

407 名前:デフォルトの名無しさん :04/03/02 22:06
>>406
ビルドは出来ました。
しかし実行するとプライマリィサーフェースが生成できませんとダイレクトドローの初期化に失敗しました
というメッセージボックスがでて終了してしまいます。

408 名前:デフォルトの名無しさん :04/03/02 22:14
>>407
そのエラーメッセージが出る場面は314行のところだな。

手元にDX7のヘルプが無いのでかなり憶測でしか言えないんだが、
恐らくウィンドウモードではフリッピングが不可能なのではないかと推測。
バックバッファとプライマリバッファの入れ替えが出来るのはフルスクリーンならではの芸当だからね。
一般のバッファに描画して、それをプライマリバッファへコピー、という描画方法にしてみてはどうだろう。
多少パフォーマンスは落ちるが今のPCなら無問題でないかと。

409 名前:デフォルトの名無しさん :04/03/02 22:24
(-_-#)~ブスブス
ん〜俺の頭はショート寸前…。


410 名前:デフォルトの名無しさん :04/03/02 22:35
ごめんね素直じゃなくって

411 名前:デフォルトの名無しさん :04/03/02 23:59
Direct3Dで

@や:みたいな一文字だけを立体で表示する方法を教えてください
あと、ランダムに生成されるダンジョンのマップから
三次元の部屋を構築する方法も教えてください

412 名前:デフォルトの名無しさん :04/03/03 00:03
>@や:みたいな一文字だけを立体で表示する方法
・モデラーでメッシュを作成してそれを表示する
・Text3Dサンプルを見る

>ランダムに生成されるダンジョンのマップから三次元の部屋を構築する方法
抽象的すぎて答えようがない

413 名前:デフォルトの名無しさん :04/03/03 00:09
もしかして@が主人公だったりして

414 名前:デフォルトの名無しさん :04/03/03 00:13
>>413
なるほどw ワロタ

415 名前:デフォルトの名無しさん :04/03/03 00:59
だいたいどんなゲームなのかイメージは沸いた。

416 名前:デフォルトの名無しさん :04/03/03 03:01
ID3DXFontのDrawTextで(int、doubleなど)変数の値を数字で表示したいのですが
型変換てどうやったらいいんでしょうか?

(DirectXじゃないかと思いますが
型のことをよくわかってないので他スレだと説明が…)

417 名前:デフォルトの名無しさん :04/03/03 03:14
int i; float f;
char str[100];
sprintf(str, "数字表示したいよ〜ん%d %f," i, f);
その後strを云々…

418 名前:416 :04/03/03 03:34
>>417
すごい簡単だったんですね…ちゃんと勉強します
ありがとうございました

419 名前:デフォルトの名無しさん :04/03/03 04:10
なんでこのスレで聞いたんだろう……

420 名前:デフォルトの名無しさん :04/03/03 05:31
初歩的な質問がやたら多いな
それにちゃんと答えてやってるのも珍しい

421 名前:デフォルトの名無しさん :04/03/03 06:03
レスしたオレも悪いな。
こうやって低レベルな質問にマジレスしてしまうとスレのレベルが下がる、
低レベルな質問は叩くぐらいの殺伐とした感じのほうがよいかもな。

422 名前:デフォルトの名無しさん :04/03/03 07:59
まぁ何事もほどほどにということで(←ハァ?

423 名前:デフォルトの名無しさん :04/03/03 09:52
>>411
>@や:みたいな一文字だけを立体で表示する方法
412にあるとおりだが

・モデラーでメッシュを作成してそれを表示する
に関しては、SDK付属のMeshViewerでも半角文字ならメッシュ作成して
Xファイル保存は出来るな。

424 名前:デフォルトの名無しさん :04/03/03 10:42
すみません
文字を画面に表示させたいのですが上手くいきません。
#include <studio.h>
main()
{
printf("ハローワールド\n");
}
絶対あっているはずなのですがコンパイルできません。
このままでは先に勧めませんので誰か助けてください


425 名前:デフォルトの名無しさん :04/03/03 11:00
               |
               |
          __|_
  あ゛    /;;;;;;;;;;;;;;;;ヽ     >>424
 あ゛    /;;;;;;;;;;;;;;;;;;;;;;;;;;;;i.    そんな餌で
 あ゛     l;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i,    わいは釣られへんでー
 〈      'i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'';;i,
  .〉      |;;;;,、;;;;;;;;;;;;;;ノ|ノ レ'  ,、
 〈      , !、| !、lVl/  `、_/ .ノ l l
  !!  i´l /          |__./ //
  // |. V\_,-|        ト┘
  | | \./  〉  _,/   !、
         く_____,/
         ,i;;;;;;;;;;;;;;;;;;;;;i
        ,!\;;;;;;;;;;!'´ 'i
        l  ./´`i  |
         |  /   |  |
       / ./    |.  |
      /`'7     |´`|
     / /        | |
     i´`|       i'´`i
    | /         ! ノ

STDndard Input/Output

426 名前:デフォルトの名無しさん :04/03/03 11:05
>>424
#include <stdio.h>
じゃねーか?
それとひとついっておくと「スタディオエイチ」とでも脳みそで発音してそうだが
「エスティーディーアイオー」が正しいらしいぞw
なんの略だっけか・・・スタンダードなんちゃらでいいんだっけ?

427 名前:デフォルトの名無しさん :04/03/03 11:12
すたんだーどあいおー
ですよ。
覚えましたか?

428 名前:デフォルトの名無しさん :04/03/03 11:22
>>427
なんで「あいおー」だけそのままなんだ?

429 名前:デフォルトの名無しさん :04/03/03 11:28
いんぷっとあうとぷっとと言うと長いからでは?

430 名前:デフォルトの名無しさん :04/03/03 11:38
>>420-421の後にこれですか。
自演臭いですね。

431 名前:デフォルトの名無しさん :04/03/03 12:03
いっぱい釣れたねお兄ちゃん!
ごほうびにいっぱい出したげるね

432 名前:424 :04/03/03 12:32
出来ました!!!
ありがとうございました!!!!!!

433 名前:デフォルトの名無しさん :04/03/03 12:52
つまんね

434 名前:デフォルトの名無しさん :04/03/03 12:57
ねこ

435 名前:デフォルトの名無しさん :04/03/03 13:03
こねこ

436 名前:デフォルトの名無しさん :04/03/03 13:04
大好き

437 名前:デフォルトの名無しさん :04/03/03 13:22
お兄ちゃん♥

438 名前:デフォルトの名無しさん :04/03/03 13:23
ん がついたから>>437の負け

439 名前:デフォルトの名無しさん :04/03/03 14:55
いかにもひな祭りらしい展開ですね。

440 名前:デフォルトの名無しさん :04/03/03 16:19
DirectXの知識って3Dに関することだけでもいいのでしょうか?
今3Dの勉強をしているんですが2Dのほうも知っておくべきでしょうか?

441 名前:デフォルトの名無しさん :04/03/03 16:23
おまえは何のために勉強してるんだと小1時間(ry

442 名前:デフォルトの名無しさん :04/03/03 17:44
434 名前:デフォルトの名無しさん 投稿日:04/03/03 12:57 ID:EfTGq2hX
ねこ


435 名前:デフォルトの名無しさん 投稿日:04/03/03 13:03 ID:EfTGq2hX
こねこ


436 名前:デフォルトの名無しさん 投稿日:04/03/03 13:04 ID:EfTGq2hX
大好き


437 名前:デフォルトの名無しさん 投稿日:04/03/03 13:22 ID:EfTGq2hX
お兄ちゃん?


438 名前:デフォルトの名無しさん 投稿日:04/03/03 13:23 ID:EfTGq2hX
ん がついたから>>437の負け

443 名前:デフォルトの名無しさん :04/03/03 18:19
434 名前:デフォルトの名無しさん 投稿日:04/03/03 12:57 ID:EfTGq2hX
ねこ


435 名前:デフォルトの名無しさん 投稿日:04/03/03 13:03 ID:EfTGq2hX
こねこ


436 名前:デフォルトの名無しさん 投稿日:04/03/03 13:04 ID:EfTGq2hX
大好き


437 名前:デフォルトの名無しさん 投稿日:04/03/03 13:22 ID:EfTGq2hX
お兄ちゃん?


438 名前:デフォルトの名無しさん 投稿日:04/03/03 13:23 ID:EfTGq2hX
ん がついたから>>437の負け

442 名前:デフォルトの名無しさん[sage] 投稿日:04/03/03 17:44 ID:EfTGq2hX


444 名前:デフォルトの名無しさん :04/03/03 18:26
434 名前:デフォルトの名無しさん 投稿日:04/03/03 12:57 ID:EfTGq2hX
ねこ


435 名前:デフォルトの名無しさん 投稿日:04/03/03 13:03 ID:EfTGq2hX
こねこ


436 名前:デフォルトの名無しさん 投稿日:04/03/03 13:04 ID:EfTGq2hX
大好き


437 名前:デフォルトの名無しさん 投稿日:04/03/03 13:22 ID:EfTGq2hX
お兄ちゃん?


438 名前:デフォルトの名無しさん 投稿日:04/03/03 13:23 ID:EfTGq2hX
ん がついたから>>437の負け

442 名前:デフォルトの名無しさん[sage] 投稿日:04/03/03 17:44 ID:EfTGq2hX

443 名前:デフォルトの名無しさん[sage] 投稿日:04/03/03 17:44 ID:EfTGq2hX


445 名前:デフォルトの名無しさん :04/03/03 18:27
お内裏様とお雛様
今日は楽しい姫初め


446 名前:デフォルトの名無しさん :04/03/03 18:53
>>424
#include <stdio.h>
__stdcall WinMain(HINSTANCE, HINSTANCE, char*, int)
{
printf("ハローワーク\n");
}

447 名前:デフォルトの名無しさん :04/03/03 19:07
WinMainかよ

448 名前:デフォルトの名無しさん :04/03/03 21:25
コンソールが無い

449 名前:デフォルトの名無しさん :04/03/03 23:47
device.Transform.World = Matrix.Multiply(Matrix.RotationX(System.Environment.TickCount / 150.0f), Matrix.Translation(0.0f, 0.0f, -4.0f));

現在Direct3Dを勉強中なのですが
上の行の意味を教えてください。

450 名前:デフォルトの名無しさん :04/03/03 23:51
一つずつ分解して考えろ
・Matrix.RotationX(System.Environment.TickCount / 150.0f) → 時間と共にX軸を中心に回転させる行列
・Matrix.Translation(0.0f, 0.0f, -4.0f) → Z方向に-4だけ動かす行列
・Matrix.Multiply(…) → 上の二つの行列を組み合わせる
・device.Transform.World =… → ワールドトランスフォームは上の結果

451 名前:デフォルトの名無しさん :04/03/04 00:15
0.0f, 0.0f, -4.0fのあたりでX軸中心にくるくる廻る

452 名前:デフォルトの名無しさん :04/03/04 02:40
すみませんVC++6.0でDX8を使って勉強し始めて
本やサイトを参考に記述して
「Zバッファを使って前後関係を正しいシーンを描写する」
って言うのをやってみたのですがうまくいきません。
初期化などの設定は以下の通りです。
d3dpp.EnableAutoDepthStencil= TRUE;
d3dpp.AutoDepthStencilFormat= D3DFMT_D16;
gl_lpD3ddev->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);//裏面消去しない
gl_lpD3ddev -> SetRenderState(D3DRS_LIGHTING,FALSE);//ライティングしない
gl_lpD3ddev -> SetRenderState(D3DRS_ZENABLE, TRUE);//Zバッファ
gl_lpD3ddev -> SetRenderState(D3DRS_ZWRITEENABLE, TRUE);//
gl_lpD3ddev->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);//テクスチャ透過
gl_lpD3ddev->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);//
gl_lpD3ddev->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);//

で描写の前にこのようにZバッファをクリアしています。
//---バックバッファ、Zバッファクリア
gl_lpD3ddev->Clear(0,NULL,D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER ,D3DCOLOR_XRGB(255,255,255),1.0f,0);

スレ違いだったり、変数が意味不明だったらもうしわけないです。
何か情報が足りなかったら提示しますので言ってください。
ですが明日卒業式前日で召集かかってるので
レスは遅くなってしまうかもしれません。
違点にお気づきの方がいましたらレスください。

453 名前:デフォルトの名無しさん :04/03/04 02:59
何がやりたくてそれがどううまくいかなかったのか

454 名前:デフォルトの名無しさん :04/03/04 08:13
すみません。2Dの画像を表示する場合、スプライトを使って表示するのと、
サーフェスを使って表示するのとどちらがいいのでしょうか。


455 名前:デフォルトの名無しさん :04/03/04 08:34
どちらが高速ですか?
3Dカードがない場合、どちらが高速ですか?

456 名前:デフォルトの名無しさん :04/03/04 08:48
>>455
サーフェス

457 名前:デフォルトの名無しさん :04/03/04 09:17
スプライトなんてものは、最初から存在しない。
だから比較しようがない。

458 名前:デフォルトの名無しさん :04/03/04 09:29
サーフェスを作って実行したらこんなメッセージが出てきたんですが、これはいったい何なのでしょうか
Direct3D9: (ERROR) :Memory still allocated! Alloc count = 107

459 名前:デフォルトの名無しさん :04/03/04 09:40
>>458
ただの外国語

460 名前:デフォルトの名無しさん :04/03/04 09:58
DirectX8のフォグの設定方法について質問があります。
フォグをかけるとRGBすべての成分にフォグの効果がかかりますが、
これを特定のカラー成分だけに適用させることって可能ですか?

ポリゴンを描画する際、B成分のみフォグを適応させたいんですが…

461 名前:デフォルトの名無しさん :04/03/04 10:41
>>452 ビューポートの設定をきちんとしている?
あと、前投影面を0に設定していたりしてない?

462 名前:デフォルトの名無しさん :04/03/04 10:48
>>460
ピクセルシェーダでできるようなできないような。

463 名前:デフォルトの名無しさん :04/03/04 11:02
ソフトウェアレンダラーとハードウェアレンダラーの長所と短所をそれぞれ教えてください。


464 名前:452 :04/03/04 11:13
前後関係を正しく描写したかったのですが
後ろにあるオブジェクトが前に表示されたんです

465 名前:デフォルトの名無しさん :04/03/04 11:18
>>463
正直いまさら説明するのもアホらしい

466 名前:デフォルトの名無しさん :04/03/04 11:23
そんなこといわずにお願いします

467 名前:デフォルトの名無しさん :04/03/04 11:27
>>466
じゃあこれ↓
http://www.microsoft.com/japan/msdn/library/ja/directx9_c/directx/graphics/programmingguide/gettingstarted/devices/devicetypes.asp

468 名前:452 :04/03/04 11:30
ビューポートの意味がよく分からないのですが
このことですよね?
D3DXMatrixLookAtLH(
&gl_ViewMat,//our
&D3DXVECTOR3(0,5,10),//form
&D3DXVECTOR3(0,0,0),//focus
&D3DXVECTOR3(0,1,0));//up
このようにビュートランスフォームしています。

前投影面は0ではないと思います。
gl_Near = 0.000001f;//前方投影面
gl_Far = 50.0f;//後方投影面
こんな感じです。



469 名前:デフォルトの名無しさん :04/03/04 11:37
>>468
検索しろよ

470 名前:デフォルトの名無しさん :04/03/04 11:42
>>468
ビューポートはビュー行列とは違うぞ
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/directx9_c/directx/graphics/reference/d3d/structures/d3dviewport9.asp
この辺を読めばなんのことかわかるのではないかと・・・。

471 名前:452 :04/03/04 11:48
もうしわけない、一応しらべて、射影トランスフォームのことかな?
と思ったのですが。間違えてビュートランスフォームを書いてしまいました。
Directx5についてのチュ−トリアルだったのですが、設定してる内容が似てる
のでこれだと思ったのですがやはり違いますか、、、、
//---射影行列
D3DXMatrixPerspectiveFovLH(
&gl_ProjMat,//out
60.0f * 3.1415f / 180.0f,//角度
1.0f,//比
gl_Near,//近点
gl_Far);//遠点


472 名前:452 :04/03/04 11:59
ビューポート設定してませんでした、、
D3DVIEWPORT8VP={0,0,800,600,0.0f,1.0f};
gl_lpD3ddev->SetViewport(&VP);
今したのですが。
でもうまく描写してくれません。。

473 名前:デフォルトの名無しさん :04/03/04 12:03
>>472
ちなみに3Dの描画の流れはこんな感じです。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/directx9_c/directx/graphics/programmingguide/fixedfunction/legacyfvfformats/vertexandpixelprocessing.asp
ところで>>452ではアルファブレンドをかけてるみたいですが、
ちゃんと不透明なものを全て描いてから透明なものを描いていますか?

どううまくいかないのか書いてくれないと答えようがないです。

474 名前:452 :04/03/04 12:20
http://www.realdigital.co.jp/densi2/program/d3d/image/dx3d-139.png
私が参考にしてるチュートリアルの画像です。
最終的にはこのように表示したいのですが、
カメラの座標を移動して
地面の裏から投影してもキャラクタが
描写されてしまうのです。
gl_lpD3ddev->SetTexture(0,gl_lpPlayerTexture);//伽羅テクスチャの設定
gl_lpD3ddev->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,gl_PlayerVertex,sizeof(TLVERTX));//伽羅の描写
gl_lpD3ddev->SetTexture(0,gl_lpEarthTexture);//地面テクスチャを設定
gl_lpD3ddev->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,gl_EarthVertex,sizeof(TLVERTX));//地面の描写

このようにすると描写した順番に描写されるだけで前後関係が無視されてしまうのです。

475 名前:デフォルトの名無しさん :04/03/04 13:16
>>452
gl_Nearの値を1.0fくらいにしてみたら?

以前、視点ギリギリのポリゴンを表示したいと思い、この値を
小さくしすぎたら、Zソートが変になってギザギザに表示された。
ビデオボードがショボかったからかもしれんが。

476 名前:452 :04/03/04 13:23
>>475
うまくいきました。
Zバッファのサイズからして
gl_Near = 0.000001fでは
ほとんど0に近似して処理してるのでしょうか、

とにかくうまくいきました
ありがとうございます。

477 名前:デフォルトの名無しさん :04/03/04 14:49
>>476
あの深度じゃ0扱いだと思う。

478 名前:デフォルトの名無しさん :04/03/04 22:23
最近プログラミングとDirectXの勉強を始めた者です。
VC++でDirectXを使用し、3DのRPGを製作しようと思っているのですが
3Dのフィールドマップを設置するにはどの様な手段がございますか?

DXSDKのサンプル等を見て自分なりに考えた方法は
モデリングツールで作成したフィールドマップをX形式で保存して
それをDirect3Dによって表示させるという方法です。
他に手段がございましたらご教示下さい。お願い致します。

479 名前:デフォルトの名無しさん :04/03/04 22:29
>>478
わざわざX形式を仲介するほどのことはないと思います

480 名前:デフォルトの名無しさん :04/03/04 22:29
モデリングツールで作成したフィールドマップはたいていXじゃない形式で保存されるので、
Xでもいいけど自分のアプリに適した自前形式に変換し、Direct3DかOpenGLで表示でございます


481 名前:デフォルトの名無しさん :04/03/04 22:41
>>478
まずどんなフィールドにするのかという条件を明確に定義しろ。
話はそれからだ。

482 名前:デフォルトの名無しさん :04/03/04 22:42
モデリングツール、、
みんないいの持ってんのかね?

おれは六角フリー版だ、、

483 名前:デフォルトの名無しさん :04/03/04 22:49
3DSMAX6。
割れ物じゃないぞ。

484 名前:デフォルトの名無しさん :04/03/04 22:51
Xならメタセコで十分だろ

485 名前:デフォルトの名無しさん :04/03/04 23:03
>>484
今調べてみたんだが
メタセコいいね。

486 名前:デフォルトの名無しさん :04/03/04 23:19
LWだ。

487 名前:デフォルトの名無しさん :04/03/04 23:20
ちょっとデコボコさしたりするくらいならxは必要ないな

488 名前:デフォルトの名無しさん :04/03/04 23:30
ちなみにメタセコには「凹凸地形の作成」なる機能がありましゅ

489 名前:478 :04/03/04 23:36
皆様ありがとうございます。
X形式でなくても大丈夫なのですね。

>>481
条件ですか・・・。
イメージとしてはフル3Dで構成されたMMOのようなフィールドです。
具体例を挙げると、最近のではリネージュ2がそうでしょうか。
ん〜・・・説明が曖昧すぎますね、ハッキリしなくて申し訳ない。

490 名前:デフォルトの名無しさん :04/03/04 23:48
リネ2のフィールドってどんなもんだ?FF11みたいな奴?
ちなみにROみたいな3Dフィールドは内部データはほとんど2Dと一緒
ゼノギアスとかああいう完全3Dのフィールドは3D用のデータ構造を作らなきゃならない

491 名前:478 :04/03/04 23:53
>>490
完全な3Dフィールドとして作成するつもりです。
ですから視点変更なども出来るようにしたいと思ってます。

492 名前:デフォルトの名無しさん :04/03/05 00:39
確かにそういうフィールドはモデリングツールで作成して配置することになるんだろうけど、
フィールドデータを用意するのが大変なのもそうだが何よりもプログラムが大変だな。
あとFF11とROの決定的な違いは論理移動空間が3Dと2Dで違うこと。視点云々の問題ではないです。

493 名前:478 :04/03/05 03:23
>>492
スマソ。↓の行は余計でしたね・・・。
>ですから視点変更なども出来るようにしたいと思ってます。

フィールドマップについてですが
ハイトフィールドを使って高低差をつけてみます。

494 名前:デフォルトの名無しさん :04/03/05 06:29
ところでみんなハイトフィールドで作ったものって
どうやって細かい部分を作ってるの?
モデリングソフトで読み込めないじゃない?
ウチのところは一回ハイトフィールドをポリゴンで出して
モデリングソフトで読み込んで色々と配置して実際のデータでは
ポリゴンを普通に読み込んで表示。
当たり判定は標高データを使うってしてるけど。

みんなのところはどうよ?

495 名前:デフォルトの名無しさん :04/03/05 07:57
頂点シェーダ未対応のビデオカード(Geforce2MX等)でも
普通にD3DCREATE_SOFTWARE_VERTEXPROCESSINGを指定するだけで
頂点シェーダを使用することは可能なんでしょうか?
(使うバージョンは1.1です)


496 名前:デフォルトの名無しさん :04/03/05 08:03
使える

497 名前:デフォルトの名無しさん :04/03/05 09:18
>>496
早速のお答えありがとうございます。
これで安心して使えます。

恐縮ですが、もうひとつだけ質問させてください。

頂点フォーマットがRHWの時は頂点シェーダをスルーして
直接スクリーン座標を出力しているのか、それとも
なんらかのシェーダを通って射影座標を出力しているのでしょうか?

というのも、XYZRHW,RHW=1と同じ表示を
XYZで頂点シェーダを使用して表示させているのですが、
もしRHWではシェーダを全く使用しないなら
単にコストが多くなってるだけなのかと思いまして・・・。

498 名前:!496 :04/03/05 10:19
>>497
それって平行移動やら回転やら拡縮やらするのにシェーダなくても大丈夫な感じですか?

499 名前:デフォルトの名無しさん :04/03/05 10:57
>>494
実際の表示データを作るときはそれでいいんじゃない?
無理に論理データと一緒にする必要は無いしなー

500 名前:デフォルトの名無しさん :04/03/05 15:37
>>499
それがですね。
なんだかハイトフィールドからポリゴン作って
モデリングソフトでいじってっていう手順を踏むと何故か
ハイトフィールドと整合性が取れなくなることがあるんですよw
(デザイナいじったでしょ?みたいなw)
なのでデザイナが作ったデータからハイトフィールド作れみたいな要望が
あったんですけどこれは面倒ですよね。ぜひ省きたい作業ですね。
いや、そりゃーできるっちゃあできると思いますよw

で、なんか楽なやり方知ってる人いないですかねーということで・・・。


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.