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

鬱だ氏のう DirectX (Part 3)

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

■旧スレ(プログラム板)
http://piza.2ch.net/tech/kako/966/966655286.html  (Part 1)
http://pc.2ch.net/test/read.cgi/tech/997101556/   (Part 2)
0105名前は開発中のものです。01/12/13 18:32ID:???
>>104
Shadeで作るな、と言われそうだね。

Shadeはポリ数が多くなってリアルタイムレンダリングには向かないんじゃないかなあ。
DXFを介している時点でアニメ情報やUV情報なんか消えていそうだし。
とりあえず、単純なモデルをテキストXに変換させてみて、
データを読んで何がおかしいか調べてみるといいかもよ。
メッシュが裏返ってたり、スケールがものすごく違ってたりするのかも。
0106名前は開発中のものです。01/12/13 21:51ID:d41h5h24
>>105さん
ありがとうございます。
やはり鬼門ですか・・・・

難しいなぁ・・・ ナムナム
0107名前は開発中のものです。01/12/14 13:20ID:EZLqVsis
Shade脱落です・・・

lightwave3Dに乗り換えます・・
0108名無しサソ01/12/15 01:24ID:???
 参考までに。DXFの3DFACEフォーマットは、多角形の
各xyz座標をダラダラと羅列しているだけの素敵な仕様だよ。
当然、UV座標や法線を持ち合わせているわけではないので、
独立頂点で分けて作った筈のエッジも潰れてしまう。

 というわけで、DXFから直接Xファイルを作るのは出来るだけ
避けた方が良いと思う。
0109名前は開発中のものです。01/12/16 05:25ID:8r+MK5UR
Cの基礎本レベルが終わった程度のプログラミング能力の奴がDirectX
を使おうとしたら、どういうのがいいですか?

 1、諦めろ。
 2、むしろゲーム作成支援ソフトを使う。
 3、頑張ってEasyLinkLibraly を導入して間接的に。
 4、DXだけ学び、DXだけでゲームを作る (…できるの?)
 5、DX、WinAPI、VC++、その他一式を全て究めて攻略。

 とりあえず5はやだ。
0110名前は開発中のものです。01/12/16 05:29ID:???
>>109
6.SDKのサンプル弄ってみる。
0111名前は開発中のものです。01/12/16 06:10ID:/+Yh7d/w
>109
110が正解っぽいな。 まあどもみち、5を選ばざるえないんだろうが
最初から気張って、つまづいた拍子にやる気をなくすより
サンプルでも弄ってなさいってこった。
0112名前は開発中のものです。 01/12/16 10:51ID:???
 WinAPIを極める必要はあんまり無いと思うけど。あんなの
そのつど調べて覚えていけばいいんだし。
 やっぱC++でプログラム書きまくって慣れておくことだろ。
0113NAME OVER01/12/16 17:56ID:???
directx8でx、y座標(zは無視)を指定して画面に
ポリゴン&スプライト表示することはできますか?
0114名前は開発中のものです。01/12/16 19:03ID:???
>>113
できる
0115>>10901/12/16 19:25ID:Ar8VngeJ
俺の場合、Cは一通り書ける状態で、
VC、C++、D3D8、をやってた。
2週間もあれば、読み書きぐらいは出来ると思うよ。
どういう設計が1番か?てのは、わからないけど。
0116名前は開発中のものです。01/12/16 22:30ID:???
>>109
絶対イジッタほうがいい。
DX7の頃は使い始めが異様に難しかったけど、
8からは初期化も簡単、すぐに画面に表示できるような
作りになってる。画面になんか出ればイジリがいもあるでしょ。
0117名前は開発中のものです。01/12/16 22:46ID:CihImbig
>>109
とりあえず4、6の組み合わせで十分ではござらぬか。
追々必要なら5にも手を出すと。
0118名前は開発中のものです。01/12/16 23:25ID:iGqGEygK
ここで聞いてしまっていいのかちょっとわからないのですが、
皆さんSSEって何経由で使ってますか?
やっぱしVC++のProcessor Pack?
しかし、これなんか問題が多いと聞いたのですが、、、
0119名前は開発中のものです。01/12/16 23:39ID:???
SSE使うときはnasmw使ってる。
0120あぼーんNGNG
あぼーん
0121名前は開発中のものです。01/12/17 11:15ID:???
>>109
初心者ですが、サンプルとか参考にしながら
動く状態のものをちまちま改良していってます。
一度に色々やろうとすると行き詰まるっぽいです。
あとEasyLinkLibralyは解析しづらいのでイヤンです。
0122名前は開発中のものです。01/12/17 21:29ID:???
プライマリサーフェスより大きいオフスクリーンサーフェスは
作れないっていう制限ってver7でもありましたっけ?
0123名前は開発中のものです。01/12/17 21:43ID:???
>>122
それはビデオカードの制限によるものでは?
0124名前は開発中のものです。01/12/17 22:28ID:???
あそうなんですか。
じゃあなるべく使わない方が良いな・・。
レスどうもです。
0125名前は開発中のものです。01/12/18 00:02ID:???
caps見れば作れるか作れないか分かるよ。
まぁ、作れる場合でも無制限ではないし、解像度によって上限が変わったり
するんだが。
320*240の解像度で横幅が1024のサーフェス作ろうとしたらエラー出たり。
800*600では大丈夫だった。ちなみにGeForceでの話。
0126 01/12/18 00:45ID:???
directx8にはカラーキーがないみたいだけど、それにかわるものって何か在る?
0127名前は開発中のものです。01/12/18 00:56ID:???
>>126
αブレンド
0128_01/12/18 03:22ID:KNjSRTW5
ちゅーか、αチャンネルの方が融通利くね。
0129名前は開発中のものです。01/12/18 12:26ID:???
>>124
システムメモリーを使えば、どうにかならんか?
0130名前は開発中のものです。01/12/23 02:51ID:???
7以来DirectX勉強してないんだが
なんか初期化やら色々な作業がスゲー簡単になったらしい?
0131名前は開発中のものです。01/12/23 09:32ID:???
7のD3DXの方が初期化は簡単。ステンシルバッファ使えないけど。
あと、8はサーフェスがロストしても勝手に内容を復元してくれる機能あるけど、
7のD3DXも同じようなことしてくれたのであまり変わってないかも。
というわけで、7でD3DX使ってたんならあまり便利には感じないかと。
むしろ細かい制御ができなくなったから不便に感じるかも。GDIも使えないし。
GDIに関しては9で少し改善されるようだけど、どうなることやら。
0132名前は開発中のものです。01/12/23 14:00ID:5HaRG1wG
コマンドラインアプリケーション上で、DirectSound で音を出せた人っていますか?
実際にやったところ、ウィンドウハンドルが存在しない為に、強調レベル設定
(SetCooperativeLevel)が使えず、その後のプライマリバッファの作成でも失敗します。
0133名前は開発中のものです。01/12/23 17:11ID:bm9n9GFO
>>132

DOS窓のWindowハンドルとるんぢゃダメ?
013413201/12/23 17:17ID:5HaRG1wG
>>133
それでいいの!? ちょっと調べてみます。
0135名前は開発中のものです。01/12/23 17:28ID:OXvxcNRi
>>132
非表示のWindowつくるとかでもいけるんじゃないかな?
013613201/12/23 18:31ID:5HaRG1wG
>>135
そういうのもありかー。
でもWindow作るときにWinMainの第1引数を使って
RegisterClass で登録しなくちゃいけないような。。。
RegisterClass 呼ばずにいきなり CreateWindow 呼んでもいいのかなぁ。。
これも調べて見ます。
0137名前は開発中のものです。01/12/23 19:03ID:bm9n9GFO
>>136

HINSTANCEでしょ?
GetModuleHandle(NULL);で取れないかねぇ?
DOSアプリだとダメかな?
0138名前は開発中のものです。01/12/23 19:05ID:OXvxcNRi
GetModuleHandle(NULL)
を代わりに使うんじゃなかったっけ?
おぼろげな記憶。
0139名前は開発中のものです。01/12/23 19:06ID:OXvxcNRi
かぶった。すまむ
014013201/12/23 19:28ID:5HaRG1wG
おぉ、助かります。。
014113201/12/23 19:39ID:5HaRG1wG
ただ今、コマンドアプリでもウィンドウアプリと同じ値を、
GetModuleHandle(NULL) で取得出来る事を確認しました!
0142名前は開発中のものです。01/12/23 20:07ID:N4+GBleN
久しぶりにDirect3D使ってみようと思い
8.1SDKを落としてきた
初期化がさくっと終わってるのに感動した!
でも新しい言葉がいっぱい出てきて正直困惑
0143名前は開発中のものです01/12/24 03:46ID:w3zASyI1
つかみんな8.1使うの?
95捨ててるから今迄のVerUPとは同じに考えられないよな。
マジどうすんのか聞きたい。
0144名前は開発中のものです01/12/24 04:34ID:???
全然普通に使ってますが?
むしろ95ユーザの為にステンシル他を使わない方が馬鹿げているような。
それともオレ、異端か?
0145名前は開発中のものです。01/12/24 05:43ID:???
いまどき95を使ってるような奴が良い顧客かどうか考えてみよう。
0146名前は開発中のものです。01/12/24 10:48ID:???
>>145
エロゲとかは95もターゲットにすることはあるかもね。
昔は(DirectX3くらいのころ)オールGDIで作ってあったのもあったしなぁ。
0147名前は開発中のものです。01/12/24 10:59ID:???
正直、DirextX8.1が必要なゲームを遊ぶような人間のどれだけが
いまだにWin95を使っているのか統計を取ってみたい。
ていうかいるのか?
0148名前は開発中のものです。01/12/24 11:35ID:???
>>147
 まあ、そうだろうな。
 俺もボロマシンに95入れて使ってるけど、最新のゲームやら
ビデオ編集やらはできないって割り切って使ってるよ。
 自分で書いたプログラムが他人のマシン借りないとマトモに
動かないってのはかなり鬱だが。
0149名前は開発中のものです。01/12/24 12:16ID:ri5i/9hM
最近のマシンはBitBltでさえ高速だから油断ならない。
動作確認のために、今使っている屑を手放せナイーヨ
0150名前は開発中のものです。01/12/25 13:28ID:FrMhTu1F
DXというかVCの質問になりますが
D3DXVECTOR3 vecがあって
"vec."と打つとメンバがポップアップされて表示される機能
あれが働かないのですが,どうすればいいのですか?

以前D3DVECTORを使用していたときは出ていたのですが...
擦れ違いとか言わないでそこをなんとか
0151名前は開発中のものです。01/12/25 13:41ID:bGbvaKtQ
vcのバグ
0152名前は開発中のものです。01/12/25 14:08ID:???
ヘッダもプロジェクトに入れよう。
0153名前は開発中のものです。01/12/25 14:48ID:???
>>143
未だに5.0対応のコードで書いていますが、何か?
0154名前は開発中のものです。01/12/25 15:42ID:FrMhTu1F
>>151
”外部依存関係”ってとこからヘッダのほうに持っていくと
上手く行きました.
thx!
0155名前は開発中のものです。01/12/25 15:43ID:???
>>152ダッタ
0156名前は開発中のものです。01/12/26 02:13ID:???
95使ってる奴に限って「動きません!」メール出しまくるので
ソフト作者に「95使ってる奴が世の中に大勢いる!」と錯覚与えてる罠。
0157名前は開発中のものです。01/12/26 12:53ID:???
企業や学校のリースの古いマシンは、OS入れ替えなしで使われている場合が多いね。
インストール禁止なんかになると、DirectXすら入ってない。
下手するとI.Eのアップデートすらされてなくて(以下略
0158 01/12/26 14:40ID:???
D3DXCreateTextureFromFileExでBMPからテクスチャつくってるんだけど
サイズの大きいBMPだとうまくいきません、原因分かりますか?
0159名前は開発中のものです。01/12/26 15:02ID:Q2518lPu
MSDN、まだDX8.1のCDを送ってこない。
仕方ないダウンロードするか。

DirectShowのGraphEditで遊んでます。
AudioCompressor に MPEG Layer-3 が出てきます。
これをSoundBlasterのキャプチャーにつなげても何も出力してくれないけど、
これってやっぱりエンコードが"32kBits/s, 22,050 Hz, Mono"までしか対応してないって
ことですかね。そうだろうなー。
MSとFraunhoferのケチ。
0160NAME OVER01/12/26 15:25ID:???
ALPHABLENDでカラーキーと同様なことをして
RENDER1回だと半透明になるのですか、
半透明じゃなく実体のまま(透明度0)表示する方法は?
016115901/12/26 15:50ID:???
是正
Fraunhofer IIS MPEG Layer-3 Codec (advanced)
56kbit/s 24kHz STEREO まで対応しているそうで。
0162名前は開発中のものです。01/12/26 16:27ID:???
>>158
Voodooとか使ってない?
Voodoo3から前は、256*256までのテクスチャしか扱えない。
0163名前は開発中のものです。01/12/26 16:45ID:LxAwFOu0
なんでMaxVertexBlendMatricesが2なんだよぉぉぉ
バナナにしか使えねぇぇぇ
0164 01/12/26 22:12ID:???
>>162
それ以外にもここまでしか扱えないっていうやつありますか?
0165名前は開発中のものです。01/12/26 23:51ID:???
ノートパソコンのチップセットとかはどう?RAGEなんとかとか。
一応3D機能はついているらしいけれど、どのくらいの能力があるかわからんです。
わざわざ買う余裕ないしねえ。
0166名前は開発中のものです。01/12/27 01:20ID:???
>>159
CマガにSDKついてたよ。
0167名前は開発中のものです。01/12/27 01:22ID:iaqj3AbY
Direct Musicでファイルをロードするときにニバイト文字とかがはいってると
読み込めない。
これがバグなのはあっちこっち検索してわかりましたけど、
解決方法ってあるんでしょうか?

勝手にファイルを英語のみのフォルダにコピーして読み込むとか、
考えたんですけど、どうもしっくりこなんです。

バージョンは7.0 OSはWindows98なんですが。
0168名前は開発中のものです。01/12/27 01:53ID:???
ファイル名に日本語使うな
0169名前は開発中のものです。01/12/27 02:06ID:iaqj3AbY
>168
使ってるわけ無いじゃないですか。
上位フォルダに日本語があってもだめなんですよ。
ってことは、「デスクトップ」とかに
インストールされると一発でアウトなんですわぁ。
どうしよう。
0170名前は開発中のものです。01/12/27 04:52ID:zlwuKPi3
相対パスでやったらダメなんか?ん?どーなのよ?
0171名前は開発中のものです。01/12/27 07:59ID:???
>>165
テクスチャーが1pixelずれてくれたり、
場合によっては加算合成が効かなかったりと
なかなか楽しませてくれます。
017216501/12/27 09:04ID:???
>>171
ありがとう。ぐはぁ・・・・
017317101/12/27 09:49ID:???
>>172
2Dでちょこっと合成に使うんならともかく、
バリバリ3Dになると遅くて気が狂いそうになるので
ユーザーとしては思いきって対応切ってくれた方がせいせいします。
対応していると思わせといて、動かしてみると遅くて遊べねー、ガッカリってのがよくあるので。

その分、最近のGeforc2Goとか、MobileのRadeonには対応しといてね。
0174名前は開発中のものです。 01/12/27 12:46ID:???
>1pixelずれてくれたり
 俺の家族が持ってるLavieもご多分に漏れずズレる・・・
 おまけに、Lockしての直書き込みが異常に遅い。俺の
ボロPC98にも余裕で負けてくれる。
0175名前は開発中のものです。01/12/27 14:04ID:???
D3DXMatrixTranslationってクリアするのな
びっくりしたーよ
いちいちテンポラリ作って掛けろってか
んなもんつかわねーよ 鬱だ・・・
0176名前は開発中のものです。01/12/27 14:55ID:???
プロ目指すなら単純な変換にわざわざAPI関数使うなよ、と煽ってみるw
0177名前は開発中のものです。01/12/27 14:56ID:aQ7PtWaf
>170
SetSearchDirectoryでニバイト文字がはいってるせいか、
やっぱりエラーが・・・
相対もだめ、絶対もだめ。
じゃあ、なにが・・・(泣
0178名前は開発中のものです。01/12/27 16:53ID:sd0GOXpJ
>>177
だからいったん別のとこにコピでいいじゃん。
017917001/12/27 18:01ID:???
>>177 >>178
思うにあれだろ?。ユーザに配布したとき、どんなパスにインストール
されても正しく動作させたいんだろ?。
それにしても、どういうシチュエーションで使いたいのか詳細キボンヌ。
0180名前は開発中のものです。01/12/28 00:34ID:BKYVf5Vs
>>179
Direct Xをノビタ プログラムをジャイアン ビデオカードをすねお CPUをドラえもんとするとね
ジャイアンがノビタをいじめるところをすねおがはやしたてるんだけど、それを見ていたドラえもんがノビタを助ける
そんなシチュエーションだね。
0181名前は開発中のものです。01/12/28 00:50ID:???
>>180
微妙に笑ってしまった
0182名前は開発中のものです。01/12/29 17:08ID:???
プログラムがDirect Xをいじめるところをビデオカードがはやしたてるんだけど、
それを見ていたCPUがノビタを助ける

HALがだめでREFになったてことか?
0183名前は開発中のものです。01/12/29 17:09ID:???
>>182
結局ノビタ助けてるし・・・
0184名前は開発中のものです。01/12/29 17:31ID:???
却ってわけわからんぞ
0185名前は開発中のものです。01/12/29 18:02ID:???
8.1SDKのインストールについてなんですけど
なんか途中でデバッグタイプかリテールタイプを選ぶ
ダイアログ出ますよね。皆さんはどちらでインストール
しました?当方デバッグタイプにしたんですけど
あとから変更ってできないんでしょうか。
0186名前は開発中のものです。01/12/29 18:21ID:okODaq8y
>>185
コントロールパネルで
「Use Retail Version of DirectX」にチェック付けろ

OutputDebugstring出力が欲しくなったら
「Use Debug Version of DirectX」な。
0187名前は開発中のものです。01/12/29 19:09ID:???
>>185
当方開発者なので当然デバッグ。DirectXからのデバッグ情報もらえるからね。
リテールにしたかったら、再インストすればよいと思う。
0188 01/12/29 19:12ID:U0PiU0J7
retail指定しても 速度が非SDKのランタイムと違うよね〜
 ちょっと不便
0189名前は開発中のものです。01/12/29 19:18ID:???
>>86,87,88
ありがとうございます。
コントロールパネルに設定用のアプリが
あったんですね。知らなかった・・・
019018901/12/29 19:21ID:???
すいません。
>>100+して下さい・・・
0191名前は開発中のものです。01/12/29 20:16ID:OgekUnsK
>>187
Retail/Debugで作ったゲームが
違うモードだと動かんなんてケースもあるので要注意ですぞ。
0192あぼーんNGNG
あぼーん
0193名前は開発中のものです。01/12/29 22:24ID:???
荒らしたいならご自分でどうぞ
0194名前は開発中のものです。01/12/29 23:01ID:???
マクロスなどの360度視点ゲームのレーダーとかゲージって
3D変換で表示してるのでしょうか?
0195名前は開発中のものです。01/12/30 02:47ID:b8e+Yl72
ちょっと聞いていいですか?

今までVBでDirectX7使ってたんだけど、わけあってVCでDirectX8を使うことになりました。
今は工学社の「DiretX8実践プログラミング」っていう本を読んでるんだけど
ぜんぜんわかりません。(わからないこともないけど時間はかなりかかりそう)

必要なのは2Dの知識だけなのですが、DirectX8で2Dのいい本がありませんでしょうか。
それともおとなしくDirectX7使ったほうがいい?

Ver8からなんか急に難しくなった気がする…
0196名前は開発中のものです。01/12/30 02:49ID:???
>>195
>わけあってVCでDirectX8を使うことになりました

理由と時間によるだろうけど、わからないのだったらDirectX7でいいんじゃない。
0197 01/12/30 02:57ID:EODl7lh1
dx8から2dは扱いにくくなってる つーか
3dの平面ポリゴンとして扱わないといけないから、手を出さないのも有りかも
MS製の補完するヘルパー関数ついてるけど、ね
8.1はwin95動かないしね
0198_01/12/30 03:05ID:EmDOc62y
>>195
俺と同じ境遇だw
こっちは、取り敢えず何とかなりそう。
shader使える環境なんで、楽だったかな。
0199名前は開発中のものです。01/12/30 03:58ID:???
ありがとうございます。
無理してVer8をやるよりかは今はとりあえずVer7を使ったほうがよさそうですね。
でも、少しずつ8の方も勉強してみます。

Direct Graphicsの初期化の方法はわかったので、あとはとりあえず
TextureオブジェクトとSpriteの扱い方がわかれば2Dはできそうですね。
ま、折角だからそのうち3Dにも手をだしてみます。
0200199=19501/12/30 04:04ID:???
冷静になって考えてみたら実際そんなに難しくないかな?
っていうかこの本が3Dの一部として2Dも書いてるからやることが多いように
見えるだけで…

細かくかいてあるのでこの本が難しかったのかも。
明日もうちょっと初心者向けの本を探してきます。
0201名前は開発中のものです。01/12/30 04:51ID:???
土井氏の「DiretX8実践プログラミング」は
3Dプログラミングの入門書としては不便かもね。

旧バージョンで(3D含めて)そこそこやってた人には
APIの新機能の使い方を紹介してくれる手軽な本かな。
0202名前は開発中のものです。01/12/30 04:53ID:???
>>200
いきなり3Dと2Dまとめてやるのは挫折の元になるので、急がないのなら
DirectX7>DirectX7のD3DX>DirectX8って順にやればわかりやすいと思う。
0203名前は開発中のものです。01/12/30 08:47ID:???
3Dやりはじめるのに、いきなりDirectX8はムズイ?
DirectX7から?

それともOpenGL?
0204名前は開発中のものです。01/12/30 09:19ID:???
>>203
DirectX8からで良いんじゃないかな?。DirectX7は初期化がめんどくさい。
あと、DirectXってのは単なる技術でしかないから、3Dに関する知識などは
別途学習する必要がある。
OpenGLは使ったことないから、知らないや。
■ このスレッドは過去ログ倉庫に格納されています