トップページgamedev
1001コメント310KB

鬱だ氏のう DirectX (Part 6)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものでス02/10/07 01:00ID:???
DirectXについてマターリと技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

■旧スレ(プログラム板)
http://piza.2ch.net/tech/kako/966/966655286.html  (Part 1)
http://pc.2ch.net/test/read.cgi/tech/997101556/   (Part 2)
http://game.2ch.net/test/read.cgi/gamedev/1005119775/ (Part 3)
http://game.2ch.net/test/read.cgi/gamedev/1016276254/ (Part 4)

コピペスマソ
0142名前は開発中のものです。02/10/21 10:24ID:???
>>141
DirectX8ならデバイス作成時に指定すれば
UP系以外なら勝手に動作するので気にする必要は無い
0143名前は開発中のものです。02/10/21 10:42ID:DC+a3Xms
>DirectX8ならデバイス作成時に指定すれば
それが具体的に>>141であってるのか?という質問なのですが・・・

例えば市販のFPSなどで描画方式の選択肢が
DirectX・DirectX H/W T&L・OpenGL などとなっていますよね?
で、H/W T&Lが選ばれた場合、内部では具体的にどうしているんだろうという質問です
0144名前は開発中のものです。02/10/21 10:48ID:???
>>134
デバイス作りなおしているんでないの?
0145名前は開発中のものです。02/10/21 10:48ID:???

>>143
×>>134
0146名前は開発中のものです。02/10/21 12:06ID:DC+a3Xms
すいません、まだ質問の意図を理解して貰えていないようです・・・

Hardwere T&Lって、ポリゴンの変形とライティングを
ハードウェアで処理するって事ですよね?
で、DirectXのリファレンスを見ても
「ポリゴンの変形とライティングをハードウェアで処理しろ」
っていうフラグが無いんです。
CreateDeviceでD3DDEVTYPE_HALとD3DCREATE_HARDWARE_VERTEXPROCESSINGを
指定することでポリゴンの変形はハードウェアで処理してくれそうなんですが
ライティングに関してハードウェアを使えと明示するフラグはなさそうだし
どうすれば「HardwereT&Lしてるぞ」っていう状態にできるのか悩んでいるのです。
0147名前は開発中のものです。02/10/21 12:14ID:???
あとUP系て何ですか? ぐぐっても全然hitしないんですけど・・・
(DrawPrimitiveに関係あるらしい事はわかった)
0148名前は開発中のものです。02/10/21 12:52ID:???
D3DCREATE_MIXED_VERTEXPROCESSINGを指定すれば実行中に切り替えられるけど
普通はデバイスを作成し直す
というよりはほとんどのゲームは実行前に指定するようになってる
それからT&LはTもLも一緒なので別々に指定する方法は無い

>(DrawPrimitiveに関係あるらしい事はわかった)
そこまで分かっていてヒットしないはずは無いんだけどもしかしてネタですか?
0149名前は開発中のものです。02/10/21 13:21ID:???
DrawPrimitiveUP
0150名前は開発中のものです。02/10/21 13:25ID:???
とりあえず悪いことは言わないから、
IDirect3DDevice8 のメソッドくらい全部調べとけよな>>147
0151名前は開発中のものです。02/10/21 16:54ID:???
>>140
質問の意味が分からん。もそっと詳しく説明しー
>>133の処理とFSAAに何の関連があるというのだ。
0152名前は開発中のものです。02/10/21 20:14ID:3IKbfs80
DirectXGraphicsを使用して、画面全体をぼかす方法って何かありますか?
キーワードだけでもいいので教えてください。
0153名前は開発中のものです。02/10/21 21:54ID:???
>152
グーグルで「DirectXGraphics」「画面全体」「ぼかす」をキーワードに検索しる!
0154名前は開発中のものです。02/10/21 21:56ID:???
>>152
DirectXGraphicsだと検索にヒットしないかもしれません
DirectGraphicsです。
Direct XのXはいろんな物(変数XとかプロジェクトXと同じ)という意味でして、
Xの中にGraphics Audio Inputなどが含まれていますです。
0155名前は開発中のものです。02/10/21 23:08ID:???
>>152
>>153に切れてもよいぞ!!
0156名前は開発中のものです。02/10/22 00:11ID:???
>>154
うそを言ってはいけない。
正しくは「DirectX Graphics」と「DirectX Audio」だ。
0157名前は開発中のものです。02/10/22 00:29ID:???
>>154
知ったかするのはヤメレ
DirectXGraphicsで正しい
0158名前は開発中のものです。02/10/22 00:47ID:???
DirectXGraphics 画面全体 ぼかす
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=DirectXGraphics+%E7%94%BB%E9%9D%A2%E5%85%A8%E4%BD%93+%E3%81%BC%E3%81%8B%E3%81%99

DirectX Graphics 画面全体 ぼかす
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=DirectX+Graphics+%E7%94%BB%E9%9D%A2%E5%85%A8%E4%BD%93+%E3%81%BC%E3%81%8B%E3%81%99

DirectGraphics 画面全体 ぼかす
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=DirectGraphics+%E7%94%BB%E9%9D%A2%E5%85%A8%E4%BD%93+%E3%81%BC%E3%81%8B%E3%81%99

Direct Graphics 画面全体 ぼかす
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=Direct+Graphics+%E7%94%BB%E9%9D%A2%E5%85%A8%E4%BD%93+%E3%81%BC%E3%81%8B%E3%81%99
0159名前は開発中のものです。02/10/22 01:16ID:???
>>158
ダメじゃねえか。

つかワロタ。

画面全体は辞めて、エフェクトとか画面効果に変えてみたら?
0160名前は開発中のものです。02/10/22 01:33ID:???
directx8 soft focus
directx8 full scene blur
0161名前は開発中のものです。02/10/22 02:09ID:???
>>152
ちょっと真面目に答えてみると.......。

いちど小さいサイズのテクスチャにレンダリングして、そのテクスチャをもう一度 元のサイズに
レンダリングしてみるってのはどう?

例) 欲しいサイズが640x480の場合
640x480 → 320x240 → 640x480
つまり、いちど縮小して、また拡大する......ってな具合に。

求めたい画像イメージとは違うかもしれないが、ボケたように見えるてっとり早い方法だと思うよ。

あとは、サーフェスをロックして、シコシコとピクセル単位でいじるとか。
処理コスト高いけど。

まずは、上記の方法を実装してみれ!がんがれ!
0162名前は開発中のものです。02/10/22 02:17ID:???
>>152
一般的にはDirect3Dで話は通るよ。


Direct3D ぼかす で再チャレンジだ。
0163名前は開発中のものです。02/10/22 02:19ID:???
「Direct3Dの質問をするとみんな答えをぼかす。。。」とか
教えてクンの愚痴日記がヒットしたら笑えるんだけどなぁ。
0164名前は開発中のものです。02/10/22 21:48ID:cC1V2h4q
テクスチャって、2の累乗の大きさの正方形じゃないといけないんですよね。
640x480の画像を表示させたいのですが、どう分割したら効率よく無駄なく
表示できますでしょうか。
0165名前は開発中のものです。02/10/22 22:20ID:???
>>164
>2の累乗の大きさの正方形じゃないといけないんですよね。
それはビデオチップによって事情が違うぞ。
まず、D3DCAPS8.TextureCaps をチェックしたほうがええ。
 
富豪的サボり屋さんならD3DPTEXTURECAPS_SQUAREONLY ビットをチェック。
それが立ってなければ1024x512なテクスチャサーフェスをローカルメモリに
ドカっと確保。で完了。そこまで湯水のように使えないが小金持ちではある
ということならAGPメモリに確保。で完了。
 
それは困る、テクスチャサーフェスのムダは絶対省きたいんだよ。
だけどDEVCAPSなんかチェックしてらんねーよ。俺は横着でおまけにケチなんだよボケが。
という場合は、640x480の元画像をキャラクタチップデータと共用の256x256テクスチャ
サーフェス(複数)に分割配置。画像表示用のポリゴンメッシュを用意して完了。
0166名前は開発中のものです。02/10/22 22:23ID:???
基本的なことで申し訳ないんですが、
サーフェースのプロパティで横幅とピッチってありますよね
ピッチは横ラインのバイト数だと書いてあったんですが、
初心者な自分にはよくわかりません
家の環境ではピッチが横幅の倍になります
このとき、サーフェースのメモリを+1するということは
どういう意味があるんでしょうか?
試しにメモリを一つ飛ばしで描画したところ、
元の画像と色が変わってしまいました
2バイトで一つのピクセルを表しているということなんでしょうか?
教えてもらえたらうれしいです
長くてすいませんでした
0167名前は開発中のものです。02/10/22 22:24ID:???
× キャラクタチップデータと共用の
○ キャラクタやマップチップのデータと共用の
0168名前は開発中のものです。02/10/22 22:24ID:4cmO9mq8
167=165ね。スマソ
0169名前は開発中のものです。02/10/22 22:36ID:???
>>166
256色なら1バイトで1ピクセル
ハイカラー色(16ビット)なら2バイトで1ピクセル
フルカラー色(24ビット)なら3バイトで1ピクセル
フルカラー色(24ビット)なら4バイトで1ピクセル

これでわかるかな?


0170名前は開発中のものです。02/10/22 22:44ID:???
>>169
どうもです
それじゃあ、ピッチというのは
ピットマップの色数で決まるものなんでしょうか?
0171名前は開発中のものです。02/10/22 22:45ID:???
>>170
個々のビデオカードの仕様。
017217102/10/22 22:51ID:???
まずヘルプを四度毛
http://www.microsoft.com/japan/msdn/library/ja/jpdx8_c/hh/directx8_c/_dx_width_vs._pitch_graphics.asp?frame=true
0173名前は開発中のものです。02/10/22 22:51ID:???
>>171
しつこくてすいません
今、フルカラーのビットマップを使っているんですが
ピッチが横幅の2倍という事は1ピクセルが2バイトということではないんですか?
そうすると、どうやって色を表しているんでしょうか?
0174名前は開発中のものです。02/10/22 22:53ID:???
>>172
読みます
どうもでした
0175名前は開発中のものです。02/10/23 02:33ID:???
フルカラーのX8R8G8B8とA8R8G8B8なら1ピクセル4バイトじゃねえか。

ピッチはLock成功後のD3DLOCKED_RECT::Pitchの値以外にない。
幅×ピクセルサイズで決めうちが可能とはMicrosoftも誰も保障しないので
自己責任で。
0176名前は開発中のものです。02/10/23 02:33ID:rAqnFbe+
深度バッファを設定しないで描画をすると、画面のクリアが出来ないんですけど、
そういうもんですか?
0177名前は開発中のものです。02/10/23 02:35ID:???
物凄い勢いで厨な質問が続いてるな。
0178名前は開発中のものです。02/10/23 02:49ID:???
>>176
んな仕様はない。
お前のコードが腐ってる可能性が99.9%。
0179名前は開発中のものです。02/10/23 02:57ID:???
>>176
残りの0.1%は愛と勇気
0180名前は開発中のものです。02/10/23 03:04ID:???
厨な流れに便乗して…私の厨質問もお願いします。

DirectX使用、かつマウスメッセージを自前処理している
ゲームにおけるマウス入力の有無を、外部からフックして
取得するみたいな事は、可能でしょうか?
0181名前は開発中のものです。02/10/23 03:08ID:???
>>180
DLL使えば普通に可能ですよ?
可能かどうかとウジウジ悩む前にまずやってみそ。
0182名前は開発中のものです。02/10/23 03:29ID:???
>>181
ああっと、お待ちを。もちろんグローバルフックは試し済みです。
うーん、ゲームやマウスドライバによるのでしょうか…よわりまくりん。

いずれにせよレスサンクスです。
0183180=18202/10/23 04:01ID:???
とほほ、どうしても取得できない…。

質問を限定させて下さい。DirectInputを使って、マウス制御を
排他処理にしているようなゲームのマウス状態を
外部から取得することは可能でしょうか?

座標についてはどうやら、絶望的なようで…。
せめてボタンの押し下げだけでも分かると嬉しいのですが…。
0184名前は開発中のものです。02/10/23 04:04ID:???
逆の発想で行ったら?
つまり、マウスの移動を自ら外部に通知する。
0185名前は開発中のものです。02/10/23 04:15ID:???
DirectX9は、
いつ頃出るんだ?
今、DX8使ったライブラリ組んでも
途中でDX9が出てきそうで嫌だ。

で、
いつよ?

IO別冊の本には
デッサン狂いまくりの猫耳の絵は載せないでください。
見てて恥ずかしいです。
0186名前は開発中のものです。02/10/23 04:16ID:???
ゲーム開発じゃなくて、チートツールでも作ってんじゃねえ?
そこまでやるならメモリ覗け。
0187名前は開発中のものです。02/10/23 04:25ID:???
私も知りたいなぁ…<DX9

DirectX9が出たとしても今更DirectX Graphicsで示した
グラフィック周りの統合を解除することは無いと予想して
拡張を見越しながらDX7からDX8に移行することを決心。
大幅に仕様変更されていたら撃沈。

個人的には、あのど土井たんの(?)ネコみみの絵を見ると
「この絵なら技術は信頼できそうだ」っていう印象を持ちます。
「天は2物を与えず」っていうか…。
0188180=18202/10/23 04:30ID:???
>>184
むむむ、逆転…理解できませんでしたがヒントサンクスです!
正直袋小路の今、ありがたい限りです(´Д⊂
ベッドで考えてきまつ((((((*´∀`)
>>186
私ですよね?いえいえマウスホイール上下に
キー入力を割り当てるだけの、ささやかなツールになりそうです…。

でも確かにメモリ…公開は諦めて逝っちゃおうかしら(*´∀`)
0189名前は開発中のものです。02/10/23 05:37ID:???
バイナリの中で
IDirectInputDevice8::SetCooperativeLevelを
callしているところを見つけ出して、push命令の
オペランドを6などに書き換えればいい。
0190名前は開発中のものです。02/10/23 05:55ID:???
とっかかりになるのが、0041d8f0hとか。
そっから追ってけば所望の場所にたどり着くだしょ。
0191名前は開発中のものです。02/10/23 05:56ID:???
0041d8f0h = IID_IDirectInput8A
0192名前は開発中のものです。02/10/23 11:25ID:???
プログラムと関係なくてすいません。
サンプルについてるDMBoidsの後ろで流れてる音楽が凄い好きなんですが、
ああいうのってなんてジャンルなんでしょうか。
0193名前は開発中のものです。02/10/23 14:28ID:???
>>192
テクノポップス・・・かなぁ?
0194名前は開発中のものです。02/10/23 21:53ID:???
DMBoids起動できないよ(笑)
0195名前は開発中のものです。02/10/23 23:38ID:???
>>189-191
うはー、ありがとうございます。
正直久しぶりにアセンブラ見て、うんざりしてたとこでした。
これで一気に進めそうです。大感謝<(_ _)>
0196名前は開発中のものです。02/10/24 00:04ID:???
DirectseX
0197名前は開発中のものです。02/10/24 00:11ID:???
196=中学生
0198名前は開発中のものです。02/10/24 00:13ID:???
>>185
DX8→DX9はあまり変わってないから安心してDX8で組んでいいよ。
異メジャーバージョン間での移行では今までで一番少ない変更で済むくらい。
一番修正が必要なのはシェーダー関係がハンドルからインターフェースに
変わったくらいで、それ以外は関数名が変わったとか、引数が変わった程度。
0199名前は開発中のものです。02/10/24 00:19ID:???
DX9出てからDX覚えようと思ってたんだが、
>>198見るに激変はなさそうだな。
今からDX8覚えて基礎固めるかなぁ
さてどうしよう?
0200名前は開発中のものです。02/10/24 00:22ID:???
DX9 might not come out this year という噂もあり…。
http://www.beyond3d.com/forum/viewtopic.php?t=2854
0201名前は開発中のものです。02/10/24 00:22ID:???
>>200
なんでやねーん(;_;)
020219902/10/24 00:35ID:???
ちなみに>>195ではないよ
>>200
うーむ、悩むなぁ
0203名前は開発中のものです。02/10/24 00:59ID:???
まぁ知っての通り、DirectXがバージョンアップする度に
移行作業が大変だとかぼやく香具師もたまに登場するわけだが
あーいう書き込みを読むときは眉に唾付けといたほうがいいな。
0204名前は開発中のものです。02/10/24 01:25ID:OYxRWu3f
Visual Studio.NETでDirectXのプログラムを作るときって、
何か設定はいらないんですか?

Ver6の時は、インクルードフォルダとか指定したりした気がするのですが。
0205名前は開発中のものです。02/10/24 01:38ID:???
厨質問をここでするかなぁ。
ツールの取り扱い説明書ぐらい嫁よ厨房。
分かりやすい例えいえば、VisualStudio6は標準パスの中に
PlatformSDKをインストール
0206名前は開発中のものです。02/10/24 01:40ID:???
>>205
大丈夫か?
0207名前は開発中のものです。02/10/24 01:40ID:???
>>204
そりゃあ必要だべさ。
つか基本だべ?
も一回プログラムの基礎から始めた方がよかんべ。
0208名前は開発中のものです。02/10/24 01:40ID:???
ワロタ
0209大丈夫じゃない20502/10/24 01:44ID:???
(続き)
すればインクルードフォルダの設定を書き加えることなしに
DirectX8.1SDKが使えるぞ。
0210名前は開発中のものです。02/10/24 02:03ID:???
>>205
コピーだから説明書はもってねぇって返事がくるぞ
021119802/10/24 02:27ID:???
これくらいなら書いても良さそうなので…

DX8→DX9はシェーダーの強化が主題みたいなものだから、それ以外の部分は
あまり変わってない感じ。
DX8からの移行時に固定機能で影響を受けるのはSetTextureStageStateの一部
がSetSamplerStateに変わったとか、SetIndicesのBaseVertexIndexが
DrawIndexedPrimitiveに移った程度。あとはCreateImageSurfaceが
CreateOffscreenPlainSurfaceに名前が変わったくらいか。

追加された新機能はいっぱいあるけど、DX8用に書いたソースから変更が
必要なのはそれくらい。
ちなみにD3DXはだいぶ強化されてる。アニメーション対応とか、アンチ
エイリアスライン描画とか。

一通り眺めてみると、DX9の作りかけの状態がDX8って感じ。
0212名前は開発中のものです。02/10/24 05:48ID:AlCDGmpl
>>211 C#への対応は完璧ですか?それとも現在のVBみたいなもん?
0213名前は開発中のものです。02/10/24 08:07ID:???
こらこら
0214名前は開発中のものです。02/10/24 10:46ID:???
DCの扱いも詳細きぼんぬ。
0215名前は開発中のものです。02/10/24 11:01ID:???
とっととリリース
あるいはpublic betaを出してほしい・・・
0216名前は開発中のものです。02/10/24 22:38ID:???
動的環境マッピングをやりたいんですが詰まってます。
環境マッピングにつかうテクスチャにレンダリングするわけなんですが、
レンダリングした物体が次フレーム時にも残ってしまい残像が出来てしまいます。
で、レンダリングする前にクリアしてみると、今度はテクスチャの画像が消えてしまいます。

どうすればよいのでしょうか…
0217名前は開発中のものです。02/10/24 22:48ID:???
>>216
キューブテクスチャを使った動的環境マップの
サンプルソースコードがSDKに入ってるから、まずそれ嫁。
0218名前は開発中のものです。02/10/24 23:33ID:???
>>211

>ちなみにD3DXはだいぶ強化されてる。アニメーション対応とか、アンチ
>エイリアスライン描画とか。

アニメーションというと、D3DRMみたいな、Xファイルのアニメーション?
スキンメッシュを自分で作成してアニメーションさせてみたいと思ってるのですが、
コンバーターとか、Xファイル関連のユーティリティとか付いてますかね??
0219名前は開発中のものです。02/10/25 00:02ID:4L21o589
dx9リリースどうなったのよ!時期に関して聞こえてコネー
0220名前は開発中のものです。02/10/25 02:34ID:???
来年
0221名前は開発中のものです。02/10/25 04:59ID:???
>>217
レスどうも。読んでみまっす。
0222名前は開発中のものです。02/10/25 09:46ID:0f8ClKRQ
もうDX9フルサポートのカードがでちまったよ。
「DirectX 9をフルサポートする新世代ビデオカードRADEON 9700 PRO」
http://review.ascii24.com/db/review/hard/videocard/2002/10/25/639151-000.html
0223名前は開発中のものです。02/10/25 09:59ID:???
でちまったか。

そして仕様変更の罠
0224名前は開発中のものです。02/10/25 10:06ID:???
>>219
>DX9 might not come out this year
日本語に訳すとね
「direct X9は今年中には公開されないっぽ」
ですな。
0225名前は開発中のものです。02/10/25 15:52ID:???
>>224
暗黙の仮定法のmightはmayよりもさらに確実性が低いから、
「ひょっとしたら今年中には出ないかも」くらいの意味だよ。
0226名前は開発中のものです。02/10/25 17:47ID:???
いつのまにかこんなスレが
0227名前は開発中のものです。02/10/25 19:42ID:0f8ClKRQ
だったら、頑張ってフルサポート1番乗りしたATIテクノロジーズって
かわいそうかも?
0228名前は開発中のものです。02/10/25 19:43ID:4L21o589
つか、NVidiaの妨害工作の予感
0229名前は開発中のものです。02/10/25 19:45ID:???
一番かわいそうなのはマトロックス
0230名前は開発中のものです。02/10/25 20:35ID:???
> つか、NVidiaの妨害工作の予感

NV30合わせになるようにMSと結託したのでは?
0231名前は開発中のものです。02/10/25 20:54ID:???
GeForce5キタ━━━━━━(゚∀゚)━━━━━━━!!!!!
0232名前は開発中のものです。02/10/25 21:32ID:Xo93wY0r
>>231
ソースどこー?

http://www.nvidia.com/
にはなかった
0233名前は開発中のものです。02/10/25 21:48ID:???
http://www.zdnet.co.jp/news/0210/25/ne00_nvidia.html
0234名前は開発中のものです。02/10/25 21:52ID:???
むしろこちらでは?

GeForce 5、COMDEXでデビュー
http://www.zdnet.co.jp/news/0210/25/nebt_07.html
0235名前は開発中のものです。02/10/26 01:52ID:???
vs.netでd3dx8.hインクルードするとたまにvsの起動が滅茶苦茶重くなるんだが
なんで?
0236名前は開発中のものです。02/10/26 06:02ID:???
zdnetの記事は提灯くさいなー。
実際、DirectX8がそうであったように、
DirectX9もここしばらく(来年の今頃まで)の間は
ベンチマニアや趣味シェーダプログラミング専用の玩具に留るだろ。
9000や4Tiでゲームは快適に動くしなー。
 
いや・・・Doom3クラスは9700要るのか・・・。
0237名前は開発中のものです。02/10/26 09:25ID:XAvHACAG
漏れはDX9の描画機能よりC#対応のほうが気になります。
0238名前は開発中のものです。02/10/26 09:36ID:NGd267ph
来年じゃな… ベーター登録必須なのかもね〜
とはいえ、対応ハードがないと意味ないか…
0239名前は開発中のものです。02/10/26 10:16ID:???
DX9開発ならRadeon9700だよね!
という状況をnVidiaは是が非でも回避せねばならないわけですわ
このままだとDX9の動作リファレンスは9700になっちゃうからね...
0240名前は開発中のものです。02/10/26 14:32ID:???
>>236
8すら未だメインで使われているとは言いがたい
0241名前は開発中のものです。02/10/26 14:50ID:???
4MX搭載機種を売り続けているメーカを怨むがよい。
■ このスレッドは過去ログ倉庫に格納されています