トップページ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)

コピペスマソ
0002102/10/07 01:01ID:???
http://game.2ch.net/test/read.cgi/gamedev/1027351925/ (Part 5)

確認画面ないのかよ(;_;)
0003名前は開発中のものです。02/10/07 01:07ID:???
Z華麗
0004名前は開発中のものです。02/10/07 01:07ID:???
2ゲット
0005名前は開発中のものです。02/10/07 01:09ID:???
おつかれー
0006名前は開発中のものです。02/10/07 01:10ID:???
初心者用相談室へのリンクも張っとけよ。
どこかわからん。
0007102/10/07 01:19ID:???
【初心者歓迎】スレを立てる前にココで質問を【その3】
http://game.2ch.net/test/read.cgi/gamedev/1032814540/l50

物凄い勢いで誰かが質問に答えるスレ@ゲーム製作技術
http://game.2ch.net/test/read.cgi/gamedev/1032098770/l50

ゲームプログラミング相談室
http://game.2ch.net/test/read.cgi/gamedev/1005040025/l50

出し惜しみせずに3Dの技術を誰かが答えます Part4
http://game.2ch.net/test/read.cgi/gamedev/1021171809/l50

ゲームのための物理(力学)
http://game.2ch.net/test/read.cgi/gamedev/1018255106/l50

こんなもんですかね
0008名前は開発中のものです。02/10/07 01:32ID:???
ところでちょっと聞いてみたいんだけど、アヌビスのムービーを見てると
キャラはゼノサーガみたいなポリゴンより2Dのほうが良いと思わない?
いやポリゴンでアニメっぽい人形劇作っても報われんような気がして。
0009102/10/07 01:35ID:???
MSのDirectX関連ページ

DirectX Home Page
http://www.microsoft.com/japan/windows/directx/default.asp

MSDN>DirectX
http://www.microsoft.com/japan/msdn/directx/default.asp

個人サイトはあんまり知らない・・・

DirectX Info Lib (デバイス情報のデータベース。すばらしい!)
http://www.netsphere.jp/dxinfo/

BBX(掲示板)
http://isweb8.infoseek.co.jp/computer/bbx/

spin
http://spin.s2c.ne.jp/

宇治社中改(3D基礎講座)
http://www.cc.rim.or.jp/~devilman/
0010篭初心者02/10/07 02:50ID:???
↑禿しく参項になりますたm(_ _)m
0011名前は開発中のものです。02/10/07 20:54ID:???
うむ、初心者をうまく誘導できたようでよろしい。
0012名前は開発中のものです。02/10/07 23:52ID:???
DirectX8(Direct3D + DirectInput + DirectSound)で学祭用のゲームを
作ったんだが、今回無念だったことはDirectAudioのDirectMusicを諦めたこと。
ヘタレな俺にとってはアレが一番難解だった。
 
DirectMusicのラッパーライブラリがホスィ・・・。DirectX9に期待(;´Д`)ハァハァ
0013名前は開発中のものです。02/10/08 00:37ID:???
>>12
うーん、3点。
0014困っています・・・02/10/08 02:37ID:???
DirectXやり始めて3ヶ月ですが、質問があります。
今、ファミリーサーキットのような、2Dタイプ見下ろし型レースゲームを作っています。
そこで疑問に思った点があります。夜のシーンで車がライトを照らすシーンを作りたいのですが、
どのようにすればよいか分かりません・・・。
加算合成だと、元の絵よりまぶしくなってしまいます・・・。
自分がやりたいのは、薄暗いシーンで特定の部分にスポットを当て、しかもその部分が元の絵の明るさを
超えないようにしたいのです(複数の車が同じ場所にライトを当てた場合なども)
どうかご伝授お願いします!!
0015 02/10/08 03:10ID:???
>>14
明るい部分を明るくするのでなく
暗い部分を暗くすればいい
0016名前は開発中のものです。02/10/08 08:13ID:???
元より明るくなることは不自然ではないが
0017名前は開発中のものです。02/10/08 08:15ID:???
stencil bufferのサンプルをみり
0018名前は開発中のものです。02/10/08 09:20ID:???
>14
フォグ使え
0019名前は開発中のものです。02/10/08 12:14ID:y4cJqFJs
nvasmのマクロって使えてます? v1.42です。
ドキュメントのTestマクロをそのまま打ち込んでも、
エラーがでるんですけど・・・
0020名前は開発中のものです。02/10/08 12:53ID:???
マクロは問題なく使えます。
エラーの内容をよく読みましょう。
0021名前は開発中のものです。02/10/08 14:37ID:???
SFCゼルダで暗闇のダンジョン内でキャンドルたらした時のアレかい?
それならピクセルごとにα値を持たせたイメージを使えばOKじゃん。
並みのビデオカードじゃうごかんだろうけどサ(藁
0022名前は開発中のものです。02/10/08 17:15ID:???
Riva128程度でも十分にイケるぞ。
0023名前は開発中のものです。02/10/08 19:52ID:???
ラグナロックオンラインなどの3Dカード必須ゲーの登場のおかげで
3D機能を使うことにはもはや何の躊躇も要らなくなったしな。
0024名前は開発中のものです。02/10/08 20:32ID:???
ノートPCも3D搭載が当たり前になったしな
0025名前は開発中のものです。02/10/08 20:58ID:???
マンセー
0026名前は開発中のものです。02/10/08 21:00ID:???
じゃあもうYaneurao&SDKは洋梨ですか
0027名前は開発中のものです。02/10/08 21:12ID:???
>>26
+αの部分(つまりDirect3D周り)だけ
自分で付け加えればいいだけだと思われ。
0028名前は開発中のものです。02/10/08 21:28ID:???
Yaneurao自体もう洋梨
0029名前は開発中のものです。02/10/08 21:38ID:???
DirectGraphicsの初期化に関する質問なんですが
IDirect3D8::CreateDeviceを行う直前の
バックバッファの縦横、サーフェイスフォーマット等が既知の状態で
本当にその設定でCreateDeviceできるか調べる事ってできますか?

調べたところEnumAdapterModeでとりあえず対応している解像度とか調べて
それに照らし合わせてみるしか方法が無いようなのですが
上記の方法か、実際にCreateDeviceしてみるしかないんでしょうか?

要求としては、例えば10x500とか無茶な解像度でCreateDeviceしようとしてたら
事前に察知して警告したいんです
0030名前は開発中のものです。02/10/08 21:58ID:???
>>29
ディスプレイモードのwidth,heightを自由に入力させてるのか。
EnumAdapterModesで列挙されたディスプレイモードの中から
ユーザに選択させればいいと思うが。
 
あとはIDirect3D8::CheckDeviceType()
CreateDeviceの戻り値をチェックするのと意味は同じ。
0031名前は開発中のものです。02/10/08 22:21ID:???
>>30
iniファイルに設定を保存しているので
好奇心旺盛な方がいじくっちゃった場合を想定してます

一番の関心事は「ビデオカードが対応している解像度であるか」なんですが
それはやっぱりEnumAdapterModesを検索するしかないみたいですね

どうもありがとう
0032名前は開発中のものです。02/10/09 02:51ID:0hZguT0J
DirectInput8を使用したプロセスの終了時にこんなデバッグメッセージが出ます。
>スレッド 0xFFE2FAC9 終了、終了コード -1 (0xFFFFFFFF)。
>DINPUT8: unloaded before all objects released. (cRef:1)

SDKサンプルのjoystickでも出ます。
joystickデバイス、DInputデバイス共にリリースしてrefカウントも0が返るのですが
Acquire()せずにリリースすると正常終了する模様。誰かわかりませんか?
0033名前は開発中のものです。02/10/09 11:27ID:dZsv+OW7
綺麗な水面の描写に関して何かいい本ありませんか?
0034名前は開発中のものです。02/10/09 12:30ID:???
「何かいい本」ですか。
他人の成果を横取りしてコード盗用でもなさるのですか?

そもそも水面関連は頻出の話題です。
http://game.2ch.net/test/read.cgi/gamedev/1007549292/l50
http://game.2ch.net/test/read.cgi/gamedev/1005459713/l50
なぜこのような問題が繰り返されるのか。
それは「疑問を持った人が自分で解決しようとしない」、
「解決できた人がいたとしても誰にも教えない」、
「自分が他人の知識を奪うことが重要で、ノウハウの積み上げをするつもりが無い」
というところに問題があります。

黄身は自分でどれだけ努力をしましたか?
そしてその努力を伝え、ノウハウを積み上げる努力をしましたか?
してないんでしょうね。
まったくなにも。
そしてまた一ヶ月もすると誰かが
「水面の作り方を(以下略)」という話題を持ち込むのでしょうね。
0035名前は開発中のものです。02/10/09 12:50ID:???
長くてごめんなさい
視点移動なのですが

HRESULT CMyD3DApplication::FrameMove()
{
・・・
 D3DXMATRIX matView;
 D3DXMatrixLookAtLH( &matView, &D3DXVECTOR3( 0, 0, -2*m_fObjectRadius ),
                &D3DXVECTOR3( 0, 0, 0 ),
                &D3DXVECTOR3( 0, 1, 0 ) );
 D3DXMatrixMultiply(&matView,&matView,m_ArcBall.GetTranslationMatrix());
 D3DXMatrixMultiply(&matView,&matView,m_ArcBall.GetRotationMatrix());
 D3DXMatrixMultiply(&matView,&matView,
            m_ArcBall.GetTranslationDeltaMatrix());
 m_pd3dDevice->SetTransform( D3DTS_VIEW, &matView );
・・・
}




0036名前は開発中のものです。02/10/09 12:52ID:???
LRESULT CD3DArcBall::HandleMouseMessages(HWND hWnd,UINT uMsg,
              WPARAM wParam,LPARAM lParam)
{
・・・
 case WM_RBUTTONDOWN:
  iCurMouseXR = iMouseX;
  iCurMouseYR = iMouseY;
  s_bRB=TRUE;
  return TRUE;
 case WM_LBUTTONDOWN:
  iCurMouseX = iMouseX;
  iCurMouseY = iMouseY;
  return TRUE;
0037名前は開発中のものです。02/10/09 12:52ID:???
 case WM_MOUSEMOVE:
  //回転
  if( MK_RBUTTON&wParam )
  {
   //移動行列に今回移動した分を保存
   if(s_bRB&&!D3DXMatrixIsIdentity(&m_matTranslationDelta))
   {
    D3DXMatrixMultiply(&m_matTranslationDelta,&m_matTranslationDelta, &m_matRotation);
    D3DXMatrixMultiply(&m_matTranslation,&m_matTranslation, &m_matTranslationDelta);
    D3DXMatrixIdentity(&m_matTranslationDelta);
    s_bRB=FALSE;
   }
   FLOAT fDeltaX=(iCurMouseXR-iMouseX)*RAITO;
   FLOAT fDeltaY=(iCurMouseYR-iMouseY)*RAITO;
   m_vYPR.x+=D3DXToRadian(fDeltaX);
   m_vYPR.y+=D3DXToRadian(fDeltaY);
   D3DXMatrixRotationYawPitchRoll(&m_matRotation,m_vYPR.x,m_vYPR.y,m_vYPR.z);
   iCurMouseXR = iMouseX;
   iCurMouseYR = iMouseY;
  }
0038名前は開発中のものです。02/10/09 12:54ID:???
  //移動
  else if(MK_LBUTTON&wParam)
  {
   FLOAT fDeltaX=(iCurMouseX-iMouseX)*RAITO;
   FLOAT fDeltaY=(iCurMouseY-iMouseY)*RAITO;

   D3DXMATRIX matT;
   D3DXMatrixTranslation(&matT,0.0f,0.0f,8*fDeltaY);
   D3DXMatrixMultiply(&m_matTranslationDelta,&m_matTranslationDelta,&matT);

   iCurMouseX = iMouseX;
   iCurMouseY = iMouseY;
  }
  return TRUE;
・・・
}
これだと移動した後に回転をすると視点が飛びます
>移動行列に今回移動した分を保存
の部分が間違ってる気がするのですがどうすれば改善されますか?
0039名前は開発中のものです。02/10/09 13:03ID:???
>>34
まあ落ち着け(w
0040名前は開発中のものです。02/10/09 15:13ID:???
みんなストレス溜まってるなあ
0041名前は開発中のものです。02/10/09 16:06ID:DaJCh7ix
UINT_PTRってどこで宣言されてるんですか?
undefind symbol 'UINT_PTR'
と出てコンパイルできません。
0042名前は開発中のものです。02/10/09 16:08ID:???

     /\⌒ヽペタン
   /  /⌒)ノ ペタン
  ∧_∧ \ (( ∧_∧
 (; ´Д`))' ))(・∀・ ;) <おまいら、もちつけ
 /  ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
0043名前は開発中のものです。02/10/09 16:13ID:???
この板で数少ないまともなスレなんだからマターリしようZE
0044名前は開発中のものです。02/10/09 16:13ID:H4uBHT3u
http://yahooo.s2.x-beat.com/
0045名前は開発中のものです。02/10/09 16:20ID:s4kqpcbZ
今からDirectXを勉強するなら当然ver9ですよね?
今までのDirectXと全く違う仕組みなのでビデオカード業界が各社発売しているとかで・・・
0046名前は開発中のものです。02/10/09 16:48ID:???
なんかカチンときた。
0047名前は開発中のものです。02/10/09 17:27ID:???
なんかチカンがきた。
0048名前は開発中のものです。02/10/09 17:45ID:???
>>41
http://game.2ch.net/test/read.cgi/gamedev/1027351925/702-707
0049名前は開発中のものです。02/10/09 19:05ID:???
>>45
君なんか激しく勘違いしてないか?
0050名前は開発中のものです。02/10/09 19:42ID:???
>>45
Direct 3D9∈Direct X9∋Direct X8∋Direct X7....
0051名前は開発中のものです。02/10/09 21:06ID:DaJCh7ix
>>48
ありがとうございます。もうひとつ質問させてください。UINT_PTRは解決できたの
ですが、
d3dx8math.h undefind symbol '_11'
d3dx8math.h undefind symbol '_13'
d3dx8math.h undefind symbol '_14'
と出ていまだに、コンパイルできてません。
これらについても教えてください。
0052 02/10/09 21:25ID:???
>>45
グラフィックカードの構造が大幅に変わったからといってAPI仕様も大幅に変わるとは限らないです。
DirectX9ではシェーダー部分の機能拡張は大きいですが
基本的な部分の使い方はほとんど変わらないです。
DirectX9はまだ正式リリースもしてないし、使用方法の情報についても少ないので
「今」始めるならDirectX8がいいと思います。
DirectX9をインストールしたマシンでも当然DirecX8のプログラムは動きますし、
後からDirectX9特有の機能を使いたくなった時に移行しても手間はあまりないと思います。

とか言ってしまいましたが、オレもDirectX9βに実際触ったわけではないので
なんかまちがってたら識者の方修正キボン
0053名前は開発中のものです。02/10/09 21:33ID:???
>>52
まあそうあせらずに・・・
こないだβを触ったので漏らしてあげよう。

インターフェースの見た目はあんまりDirectX8とかわらん。
8用のコード(directx部分だけで数千行)を9用に書き直したが、
4時間もかからなかったよ。
7→8もそうだったけど、コンパチ度は意外に高いと思う。

9の機能(シェーダー2.0だけじゃないぞ)を生かそうと思ったら
いろいろ実験が必要だろうねえ。やる時間がほしい・・・
0054名前は開発中のものです。02/10/09 21:37ID:???
それよりもユーザーにはやっとDirectX8が普及してきた状況なので
DirectX9で作っても誰も遊んでくれない罠

まぁ3年越しのプロジェクトとかならわからんけど
0055名前は開発中のものです。02/10/09 23:37ID:/K9cQ5sf
DirectXGraphicsでもHDCを取得できる関数があるんでしょうか?
あったら教えてもらえたらうれしいです
初心者まるだしの質問ですいません
00565102/10/09 23:42ID:???
>>51
問題点がわかりました。
VC++じゃないとコンパイルできないのですね。bccでがんばってましたよ。
答えてくださったかた、ありがとうございました。
0057名前は開発中のものです。02/10/09 23:43ID:???
>>55
X8にはない。X9にはある。
0058名前は開発中のものです。02/10/09 23:44ID:???
>>57
あるの?!
0059名前は開発中のものです。02/10/09 23:45ID:???
>>32
俺もずっとまえから同じ。
dx9待つのがよかろ
0060名前は開発中のものです。02/10/09 23:46ID:???
X9にはあるというはなしだよ>>58
0061名前は開発中のものです。02/10/09 23:54ID:???
>>60
さんきゅ。
今の DirectDraw を使ったライブラリの保守は止めて
DirectX9 SDK の配布まで待とう。

しかし大きな仕様変更があったら嫌だな。
またあのヘルプやら妙なサンプルやらを読む日々が続くのか…。
0062名前は開発中のものです。02/10/09 23:58ID:???
>>58
この辺のpptに関連情報があったような気がする。
http://www.microsoft.com/japan/msdn/directx/techarts.asp
http://www.microsoft.com/corpevents/gdc2002/
0063名前は開発中のものです。02/10/10 01:14ID:8ADA7E3+
DX9はC#に対応しているから何よりそこに期待。
0064名前は開発中のものです。02/10/10 01:53ID:???
C#でDirect3Dか〜。うーん夢のようだなハァハァ
0065名前は開発中のものです。02/10/10 02:41ID:???
これでDirectDrawが綺麗サッパリ、消えてくれるわけだな
0066名前は開発中のものです。02/10/10 02:42ID:???
>>65
はやく寝ろよ
0067名前は開発中のものです。02/10/10 07:47ID:???
>>53
参考になりますた。9がまちどおしいです。
0068名前は開発中のものです。02/10/10 20:24ID:pMa8asNt
32bitカラーに対応していないビデオカードを使用している場合のことですが
CreateDeviceの引数のBackBufferFormatに
D3DFMT_R5G6B5を設定して初期化した場合
D3DFMT_X8R8G8B8やD3DFMT_A8R8G8B8フォーマットのテクスチャを正常に扱うことが出来ますか?
0069名前は開発中のものです。02/10/10 20:53ID:???
全てはビデオカードに依存する
あらゆることに何の保証も無い
0070名前は開発中のものです。02/10/10 21:11ID:???
DirectX8を使って、DirectDrawがどれだけクソだったのかを知った。
0071名前は開発中のものです。02/10/10 21:54ID:LV4wwsC0
>>68
例えば、俺が確認した範囲では
nVidia Geforce4Tiでは使えた。しかしMatrox G400では駄目だった。
 
結局、DirectXを使うなら何をするにも必ずDeviceCapsをチェック。
環境毎に使えるものを選択していく以外に方法はないのさー。
0072名前は開発中のものです。02/10/10 23:15ID:???
>>70
>DirectX8を使って、DirectDrawがどれだけクソだったのかを知った
何の機能を見てクソだといっているのかはよくわからないが、
GDIオブジェクトを取得できないDirect X8もけっこうクソだとおもうよ
将来君は「DirectX9を使って、DirectX8がどれだけクソだったのかを知った」
とか言うんだろうね。まあいいけどさ。
時代にあわせたAPIだったんだよ。うん。
0073名前は開発中のものです。02/10/11 00:24ID:???
GDIが直接使えなくても回避方法はいくらでもある
大した手間でもないしその程度で糞呼ばわりでは底が知れる
0074名前は開発中のものです。02/10/11 01:09ID:???
>>回避方法はいくらでもある

どんな方法?

0075名前は開発中のものです。02/10/11 01:38ID:???
GDI使えるとUIがつまらなくなる
0076名前は開発中のものです。02/10/11 02:34ID:???
初心者な漏れ的発想
DX5-7
Drawしか使えねーよ、3Dわけわかんねーよ、初期化ってなんだよ意味わかんねーよ。
つかWIN32APIだけで画像転送できるじゃねーか、それでいいや。
DX8
半透明と加算、拡大縮小回転が楽に出来る関数あるじゃねーか、頑張ってみるか(このときネットに繋がったのでネット漁りで何とかDX8導入できた)
便利じゃん、楽じゃん、簡単に派手になるじゃん。げっ、文字の描画おせー。WIN32APIのTEXTOUTつかえねーのかな?
3D案外らくじゃん、物体出すだけで戸惑ってたのに一応フィールドを360歩くジャンプ攻撃、の簡易アクションゲーまでできるようになった。

漏れはDX8が無ければc++使う気になりませんでした。
ていうか、クラス継承とNEWDELETEくらいしか使ってねーけど。
糞って言う前にもっと使って楽しみたいね。漏れは。糞って言ったら過去否定みたいでションボリ
0077名前は開発中のものです。02/10/11 03:15ID:8aFpC2Gc
DirectX8で質問です。
ビルボードを複数描画する場合にテクスチャフィルタを使うとエッジの部分が
ぼやけてしまい、奥から描画しないとエッジの部分がきちんと描画できません。
エッジをぼかさないようにテクスチャにだけフィルタをかける方法はないのでしょうか?
0078名前は開発中のものです。02/10/11 03:56ID:???
>>77
1 でかい値のAlphaRefで(0xf8とか)AlphaTest。微妙なフィルタを使わない
2 奥から描画する。
3 放置。

どれも、市販ゲームで使われてる選択支。

■ このスレッドは過去ログ倉庫に格納されています