トップページgamedev
987コメント315KB

鬱だ氏のう DirectX (Part 5)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものですた。02/07/23 00:32ID:DsnWt/i.
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)

コピペスマソ
0154naya02/08/03 21:28ID:???
自分が高校生の時もそのような感じでした。
しかも、数学Cは受験時には選択制だったり、このジャンルが出題されないため、数学Vの方を重点的に勉強してしまい、ほとんど勉強しませんね。

また、最近は数学を受験科目に選択しなくても理系学科に入れる試験制度が
ある大学が増えてきたようですね。
0155名前は開発中のものです。02/08/03 22:28ID:???
--教育関係の話題はスレ違いにつきそろそろ終了--
0156名前は開発中のものです。02/08/04 01:58ID:5a7Xd0hg
ID3DXMeshから頂点とインデックスの情報を取り出すにはどうすればいいのですか?
GetVertexBuffer()で頂点バッファのポインタが取得できるみたいなんですが、
その頂点を格納しているIDirect3DVertexBuffer8がいまいちわからないのです。
フレキシブルな頂点フォーマットというのが8で導入されたみたいなんですが、
その頂点フォーマットのタイプとサイズはどこで得られるんだか、わけがわかんないのです。
チュートリアルでこのあたりまで解説してくれるとありがたいんだけどなあ>MSさん

んー、というより本当はD3DX使いたくないんですけどね。
Xファイル読み込むにはこれが一番お手軽なもので・・・
どこかにXファイル簡単に読んでくれるクラス転がってないですかねえ。
0157名前は開発中のものです。02/08/04 02:02ID:???
GetFVF
0158名前は開発中のものです。02/08/04 02:06ID:5a7Xd0hg
>>157
どうもありがとう・・・余分なものを一切書かないとこに貴方のセンスを感じる。

んで、IDirect3DVertexBuffer8::GetPrivateData()で得られるポインタに
データの本体が入っている、と。
でもこれは単なる配列なので、頂点フォーマットの構造体が無いとデータ取り出せませんよね?
GetFVF()で得られたフォーマットから頂点フォーマットの構造を得るには
どうすりゃいいんでしょうか。
0159名前は開発中のものです。02/08/04 02:19ID:???
>>156
IDirect3DVertexBuffer8::GetDesc

初心者程度の知識しかないくせに、なめた口を利いてんなよ。
「ヘルプ読め厨房!」がお似合いだ。
知識がないのは誰でも最初はそうだが、お前は必要な情報を探す気もろくにないだろ。
ふだんは2chで個人叩きと荒らしばかりやってるだろ。
0160名前は開発中のものです。02/08/04 02:19ID:???
IndexBufferって知ってる?
0161名前は開発中のものです。02/08/04 02:22ID:5a7Xd0hg
やっぱこんな時間じゃすぐ答え返ってこないよなあ。

誰かこういうの作って!!
・1つのクラスが1つのXファイルを扱う
・格納される情報は、頂点、インデックス、マテリアル、テクスチャ(のファイルの名前)
・アニメーションは、パターンに番号が付いていて、1とか2とか指定すると
  "変換済みの"頂点を返してくれる(自分で行列の演算とかしなくていい)
0162名前は開発中のものです。02/08/04 02:35ID:???
僕はゲームの専門学校に逝ってます。
今は、就職活動中ですが、周りの皆が良く言うのは
”この業種での業界の求人が少ない”って話です。
僕的には???です。その辺の会社のHPに
”3DPG急募”って沢山在ります。

でも161読んで、何か解ったような気がします。
…それをPGが言うな!自分で作れ!
今時のゲー専生徒でも、自分で作ってるわ!(クラスじゃ無いけど)
0163名前は開発中のものです。02/08/04 03:27ID:5a7Xd0hg
みんなして俺をバカにしやがって!!
調べるより聞く方が早いから聞いてんだろうがヴォケ!
それが許されないなら掲示板は何の為にあるんだ言ってみろ!
ゲー専生徒でも自分で作ってるだ?てめーらは学校の実習とかでやってんだろうが。
こっちはプログラムなんか夏休みぐれーしかできねえんだよ!
その夏休みの間にDirectXマスターしようとしてるんだ。
てめーら俺に協力してくれたっていいじゃねえかよ。なんでそんな風に言うんだよ。
何にもやる気なくなっちまうよ。
016416202/08/04 03:36ID:???
学校でXfileの解析(読み込み)、自前制御なんか教えてくれませんよ。
どっちも、元から関数用意されていますので。
そもそもDirectXの授業なんて、殆ど無いに等しいです。
自分で必要だったら、自分でやってるだけです。
実習とバイトの合間を縫って。
0165名前は開発中のものです。02/08/04 03:45ID:???
>>163
もう少し簡潔に質問してくれ。
それとどれとどれが163の発言が分からないからどれに返答していいか分からん。
0166名前は開発中のものです。02/08/04 03:47ID:y/qD5Xb2
>>163
>みんなして俺をバカにしやがって!!
ワロタ
0167名前は開発中のものです。02/08/04 03:51ID:y/qD5Xb2
>>161

>"変換済みの"頂点を返してくれる(自分で行列の演算とかしなくていい)
どういう事?
頂点のワールド行列て事?
モーフィングとかやりたいの?
0168名前は開発中のものです。02/08/04 04:05ID:???
>>163
そういう風に言われると教えたくなくなる…というか係り合いたくなくなるが…
少なくともヘルプ読んでくれよ。
DirectX AppWizardが吐き出すCD3DFileクラスをちょっといじればそれくらいできるぞ。
0169名前は開発中のものです。02/08/04 04:08ID:???
>>163
>調べるより聞く方が早いから聞いてんだろうがヴォケ!
激しくワラタ
多分、自分で調べたほうが早いよ。
俺たちはアナタの辞書じゃない。

おまえこのスレの1だろ
ttp://game.2ch.net/test/read.cgi/gamedev/1028396250/l50
0170名前は開発中のものです。02/08/04 04:17ID:???
>>163
テンプレにできそうな予感
0171名前は開発中のものです。02/08/04 04:42ID:???
この程度なら掲示板で聞くより調べた方が早いと思う。
これだけしっかりしたドキュメントが用意されているんだし。
ID3DXMeshのメンバを一通り調べるのに30分もかからんだろ。
GetFVFの使い方が分からないならサンプルのフォルダでGetFVFで検索すれば
すぐに見つかる。
0172名前は開発中のものです。02/08/04 04:51ID:???
そうか夏休みだったんだな
0173あぼーんNGNG
あぼーん
0174名前は開発中のものです。02/08/04 05:57ID:???
調べ方がわからなくて聞いている罠
0175名前は開発中のものです。02/08/04 06:56ID:???
夏休みにもなるとどこからともなくスゴい人がやってくるね。
いやぁ、世界は広いねぇ。
0176名前は開発中のものです。02/08/04 12:12ID:???
おいおい、さすがにネタだろう…
まぁスレが賑わうのはいいことじゃ(・∀・)
0177名前は開発中のものです。02/08/04 16:31ID:???
専門卒、大卒どっちが使えるのかってのは気になるところだがね。
0178名前は開発中のものです。02/08/04 16:39ID:???
使えるヤシは環境にかかわらず独学で使えるヤシになった訳で。
0179名前は開発中のものです。02/08/04 16:44ID:???
使える使えない以前に、大卒でないと書類審査ではねられる罠。
「うちは学歴にこだわらずちゃんとみてます!」なんて建前だよ。
いいかげん気づけよ、未来がある(といいな)厨房ども。
同じできる人なら大卒から取るさ。
0180名前は開発中のものです。02/08/04 16:47ID:???
大卒は教えればできるようになるからね
0181名前は開発中のものです。02/08/04 18:39ID:???
結局ね、偏差値70越えたら知識なんてあることが前提だし、
ペーパー試験で差になって現れるのは知識とか知性じゃなく、
「他者の意図を読んで想定された解答を出せるか」なのよ。
そういうのって馬鹿にされがちだけど、実際極めて重要なわけで。

また卒業のために論文書いたりプレゼンテーションをすることになるわけだけど、
その経験は、曲がりなりにも
「他人に自分の考えを理解してもらうための説明ができる」一助になるわけだし。

大卒である方が有利、っていうのは「技術・知識」一辺倒ではなく
そういう部分も含めての話だと思いますよ。

偏差値70切ってる方については憶測しか出来ませんが…。
0182名前は開発中のものです。02/08/04 19:02ID:???
>181
はげ同。
0183名前は開発中のものです。02/08/04 19:51ID:???
偏差値70以上 ≒ 上位2.3%(正規分布と仮定)
残り97.7%のヤシは使えません。
0184名前は開発中のものです。02/08/04 20:18ID:???
学歴の話してる奴は、ゲ製の数少ない
まともな話ができるスレをつぶす気なんだな?
0185名前は開発中のものです。02/08/04 20:27ID:???
>>184
はげ同。
とりあえず場の空気を読むことを学んで欲しい、若者たちよ。
「その話はもういいよ」という無言の声が聞こえないか?
0186名前は開発中のものです。02/08/04 20:29ID:???
>>184
はげ同、これは巧妙な罠ね

偏差値70以上の国立大(文系だけど)卒で、今だプーたろうですが何か?(´Д⊂
0187 02/08/04 20:42ID:???
>>179-181
激しく同意するが、気がついてみればここ何のスレだよ。
0188名前は開発中のものです。02/08/04 21:02ID:???
>186
文系は偏差値が何であってもクソということは定説です。およびじゃない。
0189あぼーんNGNG
あぼーん
0190名前は開発中のものです。02/08/04 21:49ID:???
DirectX のスレだったのか
0191名前は開発中のものです。02/08/04 22:19ID:???
入学式、「日本ゲーム業界を支えているのはゲーム専門学校の生徒です!」と高らかに
宣言したのはうちの校長でした・・・・・・

欧米のゲームプログラマーはほとんど大卒だったのを知ったのはその1年後でした。
0192名前は開発中のものです。02/08/04 22:43ID:???
>>191
もうやめろって馬鹿
0193名前は開発中のものです。02/08/05 00:03ID:???
>>191
空気読め阿呆
0194名前は開発中のものです。02/08/05 00:29ID:???
>>183 ( ´_ゝ`)マァ チミツ
>>188 ( ´,_ゝ`)プッ
>>191 ( ´_ゝ`)フーン
0195名前は開発中のものです。02/08/05 02:57ID:???

 (゚∀゚ )   アヒャ!
0196名前は開発中のものです。02/08/05 04:28ID:???
このスレも終わったな・・・
2ちゃんねる式の掲示板で、DirectXのみに的をしぼったのを誰か用意してはくれまいか。
0197名前は開発中のものです。02/08/05 06:46ID:???

 (゚∀゚ ) アヒャ アヒャヒャ!
0198名前は開発中のものです。02/08/05 10:44ID:???
>>196
BBXとか、他にもイロイロあるじゃん。
0199名前は開発中のものです。02/08/05 13:32ID:???
ともかく、この伝統ある良スレを荒らすのはやめてくれ。マジで。
020012702/08/05 18:52ID:???
レスありがとう。

>>129
ステンシルって使った事ないんだけど、マスクするエリアがたくさんあっても重くならない?
まぁ実験してみればいいんだけど、時間がない…(T_T)

>>130
このD3DPRESENT_PARAMETERSでの方法って、
・SwapEffectにD3DSWAPEFFECT_COPY
・FullScreen_PresentationIntervalにD3DPRESENT_INTERVAL_IMMEDIATE
を設定するってやつ?これやってみても駄目だったんだけど、何か足りないのかな…。

ちなみに実験環境は「RIVATNT2/DX8.1/Win98」「GeForce3/DX8.1/Win2k」です。
0201名前は開発中のものです。02/08/05 21:38ID:???
>>200
一応説明しておくけど、D3DPRESENT_PARAMETERSで設定する方法ではGDI使用中は
Presentは呼んじゃ駄目だよ。ようするに画面は更新できないって事。
それとステンシルは使えないよ。ステンシルでマスクできるのはバックバッファ。
ダイアログやコントロールをマスクしないといけないのはフロントバッファ。
0202名前は開発中のものです。02/08/05 22:33ID:WmYu1GTw
Win2k, DirectX8.1, VC++6.0, GeForce2MX 32MB にて…

1.DX AppWizardでアプリを新規作成(急須のヤツ)する
2.変更ナシでビルドする
3.そのまま実行する
4.ALT+ENTERでフルスクリーンモードにする
5.ALT+ENTERでウィンドウモードにする
6.ESCで終了
7.エラーメッセージのダイアログが出てVCごと落ちる

ヽ(`Д´)ノなぜじゃああああああああああああああああああ
0203名前は開発中のものです。02/08/05 22:58ID:???
>>202
同じ構成でも俺の環境だと落ちなかったが。
ドライバ最新にしてみたら?
0204名無しサソ02/08/06 01:11ID:???
>202
 Detonatorを変えてやってみることをお勧め。気休めだけど、
最新のよりもWHQL認定ドライバを使うと良いかも。当方Ti4200
のWin98、Detonator30.82(最新β)を使ってるけど、このドライバ
では、D3Dを使ったプログラムのデバッグモードに入れない。
途端に落ちる。
0205名前は開発中のものです。02/08/06 02:53ID:PAyNJocw
すいません質問です
メインループで

HRESULT hr;
LPDIRECT3DTEXTURE8 texture;
hr = D3DXCreateTextureFromFileEx(lpD3DDEV,"gazou.bmp",0,0,0,0,D3DFMT_A8R8G8B8,D3DPOOL_MANAGED,D3DX_FILTER_LINEAR,D3DX_FILTER_LINEAR,D3DCOLOR_XRGB(0,255,0),NULL,NULL,&texture);
if(hr != D3D_OK){
  return false;
}
texture->Release();
texture = NULL;

と、実行させたのですが
タスクマネージャを見ていると、メモリの使用量がどんどん増えていってしまう
texture->Release();
texture = NULL;
を入れているのでメモリは増えないと思ったの出すが、何ででしょうか?
0206名前は開発中のものです。02/08/06 03:24ID:???
while(1){
 OutputDebugString("最適化ばかりしててコミケ落とさないでください!\r\n");
 GameMain();
 Test_205();
}
0207名前は開発中のものです。02/08/06 03:55ID:???
>>205
マジでそこが原因なの?
コメントアウトしてみた?

ついでに蛇足だけど、SAFE_RELEASE(dxutil.h)や
if( texture != NULL )
{
    texture->Release();
    texture = NULL;
}
したほうがよさげ。
020820502/08/06 04:44ID:A065mayA
>>207
問題のところをコメントアウトにして実行させるとメモリが増えるようなことは起きませんでした。

ためしに、別に小さいプログラムを作って同じ事をさせても同じ現象が起きなかったので
なにか、別のところが間接的に影響を与えているのかな、もう少し調べてみます。
020920502/08/06 05:09ID:???
解決しました。
↓こいつが原因でした、何であーなのかわからんが、やっと寝れる。

/*
* デバッグ ヒープのフラグを設定して、ヒープのリンク リストに解放
* したブロックを保持します。これにより、解放したメモリの不注意な
* 使用を検出できます。
*/
int tmpDbgFlag;
tmpDbgFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
tmpDbgFlag |= _CRTDBG_DELAY_FREE_MEM_DF;
tmpDbgFlag |= _CRTDBG_LEAK_CHECK_DF;
_CrtSetDbgFlag(tmpDbgFlag);
0210名前は開発中のものです。02/08/06 05:25ID:???
>メインループで
メインループで確保と解放を繰り返してんのか!?Σ( ̄▽ ̄;)
021120202/08/06 06:26ID:???
おはようございます。

>>203-204
そう思ってドライバ更新したにもかかわらず>>202の状況なわけですよ。
ウィンドウモードなら何の問題もないので当面フルスクリーンナシでいくかぁ…

#フルスクリーンで遊ぶユーザーが多いと聞いたが…
0212名前は開発中のものです。02/08/06 06:29ID:gQhH5TM6
http://js-web.cside.com/
0213名前は開発中のものです。02/08/06 08:21ID:mY.DofG6
http://www.7swords.com/~czar/
DirectXには直接関係ないけど、ここお気に入り〜
0214名前は開発中のものです。02/08/06 09:47ID:???
>>209
_CRTDBG_DELAY_FREE_MEM_DFのフラグがあると、メモリ領域は解放フラグをつける
だけで、実際には解放しません。この場合、解放するのはプログラム終了時。
メモリ不足の状態を再現するのに使えるらしいです。
MSDNにもちゃんと書いてあるので読もうね。

ちなみに、_CRTDBG_LEAK_CHECK_DFはプログラム終了時にリークがないかチェックします。
0215◆KeJ3pYYQ02/08/06 09:51ID:HhMbK2lE
メタセコイアで、半球を二つ組み合わせた、くす玉みたいなオブジェクトを作って、
それをxfile書き出しして表示させてるんですが、ぴったり二つくっつけてもまん丸
に見えません(少し縦に細く見えて、つなぎ目が目立ちます)。
最初から球状のオブジェクトなら、ちゃんと丸く見えます。
半球状の物を二つくっつけて、ちゃんと球状のオブジェクトとして見せるにはどうすれば
ヨイのですか
021612702/08/06 09:54ID:???
>>201
ぐぁ。という事は、Dx8でフルスクリーンで画面更新しつつ
GDIを使うのは不可能ってことですか。
どうしても必要なら、DX7でやるかDX9を待つしかないのね…(;_;)
またはそれぞれ自前で実装するってのもあるか。
0217名前は開発中のものです。02/08/06 11:52ID:???
>215
境界の法線をなんとかしる
メタセコにその機能がなければどうしようもないんじゃない?
もしくは法泉のつじつまが合うように工夫しる<だめかも
0218名前は開発中のものです。02/08/06 11:54ID:???
うちのIMEは何度もコメントで「法線」つかってるのに「法泉」かぁぁぁ
0219◆KeJ3pYYQ02/08/06 14:16ID:HhMbK2lE
>>218
>メタセコにその機能がなければどうしようもないんじゃない?

なんて事を言うんですか!じゃあどうしろと言うのですか!!!

ところで、xfileをロードした後にプログラムで球を二つに割るというのはどうでしょう
0220名前は開発中のものです。02/08/06 15:15ID:???
まあそれも手だわな
022120502/08/06 15:47ID:???
>>214
なるほど、原因の理由がわかりました
ありがとうございます。
0222名前は開発中のものです。02/08/06 18:52ID:???
>>219
割れてない状態のXファイルと割れた状態のXファイルを2つ用意するとか。
0223名前は開発中のものです。02/08/06 19:00ID:???
半球ぐらいなら最初からプログラムで生成してもいいんじゃないかの
0224ひよこ名無しさん02/08/06 20:04ID:???
>>219
>なんて事を言うんですか!じゃあどうしろと言うのですか!!!
激しく厨房臭い
0225◆KeJ3pYYQ02/08/06 20:44ID:w4Cz3L1Q
>>224
すんません、そこは失笑するところなんです

あとポリゴンを細かーくするとかっすかね・・・
0226名前は開発中のものです。02/08/07 02:58ID:???
テキスト形式で吐き出して、自分で頂点一つ一つ修正しろ。
0227名前は開発中のものです。02/08/07 04:32ID:???
なんで三角関数使って動的に生成しないのん?
0228◆KeJ3pYYQ02/08/07 09:59ID:???
>>227
そういう例外的なことが出来るほどプログラムが抽象化されてないんです
0229名前は開発中のものです。02/08/07 11:39ID:???
ステンシルバッファで切るとか・・・
まあどっちにしても変則的になるが
0230名無しサソ02/08/07 13:00ID:???
 Xfileはそのまま二つ読み込んで、中心点を使って法線を張り直せばいいのでは・・・?
中心点と円の表面の点を通るベクトルを法線にすれば、継ぎ目は見えないのでは?多分。
0231名前は開発中のものです。02/08/07 13:38ID:???
俺はアマちゃんだが、法線ベクトルがよく分からない。
法線はポリゴンの三頂点の内積とは限らんの?
法線をxfileに持たせるとか持たせないとか。その辺がよくわかんないズラ
0232名前は開発中のものです。02/08/07 13:49ID:???
ここでの法線は頂点法線
DirectXのヘルプにも載っていること
尼ちゃんも風呂も関係ない
0233名前は開発中のものです。02/08/07 14:19ID:???
なんのことはない、「英語を読めないと2流以下になる」という
当たり前の結論が当たり前に出ただけに留まりましたな。
0234名前は開発中のものです。02/08/07 14:42ID:???
頂点法線て何スか
0235名前は開発中のものです。02/08/07 15:13ID:???
つうか内積はスカラだろ・・・外積と書きたかったんだろうが、、
取りあえず高校から勉強しなおせ。話はそれからだ。
0236名前は開発中のものです。02/08/07 15:19ID:???
つまり、知らないと
0237名前は開発中のものです。02/08/07 15:44ID:???
だらだら質問してんじゃねえ。少しは自分で調べろ
0238名前は開発中のものです。02/08/07 15:50ID:???
サクッと教えてよ
0239名前は開発中のものです。02/08/07 15:57ID:???
死んでも嫌
0240名前は開発中のものです。02/08/07 16:09ID:???
ヽ(`д´)ノ
0241あぼーんNGNG
あぼーん
0242名前は開発中のものです。02/08/07 16:46ID:???
高校の幾何レベルの知識がない奴に恵む気にはなれんな。
いい機会だから先生に聞いて見ろ。見直されるぞ(w
0243あぼーんNGNG
あぼーん
0244名前は開発中のものです。02/08/07 16:53ID:???
知ったか厨と終了厨が来た
0245名前は開発中のものです。02/08/07 17:08ID:???
食物連鎖の関係だね。
(食う)>(食われる)で表記すると、

  終了厨 > 知ったか厨 > 教えて厨
0246名前は開発中のものです。02/08/07 17:31ID:???
教えて厨は知ったか厨に食われるのかYO
0247名前は開発中のものです。02/08/07 18:03ID:???
終了厨が連鎖の頂点かYO
0248名前は開発中のものです。02/08/07 20:27ID:???
知ったか厨ってのは高校幾何レベルの説明を御丁寧に説明していい気になる
奴のことかと思った。
0249名前は開発中のものです。02/08/07 20:34ID:???
>>228
自分のプログラムじゃないの?
だったら自分で半球の.x fileを書き出すプログラムを書けば済むかと。
0250名前は開発中のものです。02/08/07 20:39ID:???
つーか、メタセコとかってどういう基準で法線計算してんの?適当?
0251名前は開発中のものです。02/08/07 20:54ID:???
アホか。物体を分けてる時点で頂点が共有されてないんだから
当然法線も違ってくる

切断面に透明ポリゴン置いたら回避できねぇかな?
(DirectXで表示するなら、また別の問題があるけど)
0252名前は開発中のものです。02/08/07 21:06ID:???
>>251
だから、その頂点が共有されてない場合の法線の取りまわしについてだよ
0253名前は開発中のものです。02/08/07 21:32ID:???
意味がわからん。
メタセコの仕様に文句あるなら自前で計算するしか無いじゃん
帰れよ
■ このスレッドは過去ログ倉庫に格納されています