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

Direct 3D

■ このスレッドは過去ログ倉庫に格納されています
0001.01/11/09 17:06ID:wrfy6OtC
Direct Xはあるみたいですが、こちらはD3D専門という事で。
とりあえずDX8以降は初期化が簡単になったり関数が変わったり
結構大幅に変わりましたがその辺も踏まえてお願いします。
044844504/02/21 22:49ID:DrvAnV60
あ、すいません、できました(汗
上げてすいません
044944504/02/21 22:51ID:DrvAnV60
>>447
3Dアクションゲームだったんで、そのキャラの手前にエフェクト表示とかしたかったんですよ。
0450名前は開発中のものです。04/02/27 21:28ID:CEfjX1WV
大学のHPに公開して、教授にオープンソースする


宿題・・・ですかね、期日も決まってるしなんか変
0451名前は開発中のものです。04/02/28 15:16ID:UeeMPs1b
シェーダについて質問があります。DirectXのBumpEarthサンプルのように、
ピクセル単位の凹凸と映り込みの表現を、シェーダとキューブマップを使って再現
したいのですが、バンプ等に使用するノーマルマップを参照してキューブマップを
ピクセル単位で貼り付けるなんてことは、シェーダで可能なんでしょうか?
0452名前は開発中のものです。04/03/01 05:59ID:/hzutH0D
グループで卒業論文にあたるプロジェクトをやってるとか。
0453名前は開発中のものです。04/03/06 09:36ID:SFWQB4Uj
モデルにスケール100倍をかけて描画したらライトの
影響を受けなくなりました。ライトの強さを100倍にしたら
普通に受けるようになりました。

なぜ?
0454名前は開発中のものです。04/03/06 11:07ID:gyOTZTVe
>>453 法線ベクトルを正規化しなかったからじゃない?
0455名前は開発中のものです。04/03/06 15:41ID:XiMT98gx
>>453
実はレンダリングステータスにこんなものがある

D3DRS_NORMALIZENORMALS

ためしにTRUEにしてみるよろ。
0456名前は開発中のものです。04/03/08 14:47ID:QnrLNmbR
>>453
スケーリング行列の場合はベクトルの長さは保たれません。(当たり前)
法線ベクトルを正規化して頂点ストリームに渡しても、変換したら長さが1以外になります。
455にもあるD3DRS_NORMALIZENORMALSを使って法線変換後に正規化させましょう。
0457名前は開発中のものです。04/03/21 15:36ID:LgK8+mJY
大変初歩的な質問ですが

D3DXCreateTextureFromFileAで取得したテクスチャの縦横ピクセルサイズは
どこで取得すればよろしいでしょうか?
(フォーマットがわかればなおよしA8R8G8B8<ビットフォーマット)

調べたのですが、納得がいく方法が見つかりません。

現状は横1ピクセルのデータ−を仮で読み込んで、ロックしそのピッチ幅を取得
それを基準にして、他の画像は横幅を割り算して取得しています。

目的は大きいテクスチャの一部分を、動的に他のテクスチャに複写し
ポリゴンに貼り付ける為です。


もっともゲームで使うなら最初からサイズは解っているので、
決め打ちでいいのですが、そこは突っ込まないでください^^




0458名前は開発中のものです。04/03/21 16:56ID:BxdkMd0d
>>457
テクスチャからサーフェースを、そのサーフェースからD3DSURFACE_DESCを。
ここにサイズやらフォーマットやらが書かれている。
045945704/03/21 17:58ID:LgK8+mJY
>>458 レス有難う。こちらも調べて幾つか解ったことがあったので自己れすします

D3DXCreateTextureFromFileAではなくD3DXCreateTextureFromFileEXの
ColorKey パラメーターの説明
透明となる値。カラーキーを無効にする場合は 0 を指定する。
ソース イメージのフォーマットとは関係なく、これは常に 32 ビットの ARGB
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
カラーである。アルファが有意であり、通常はカラーキーを不透明にする場合は
FF を指定する。したがって、不透明な黒の場合、値は &HFF000000 となる。

実験しましたら確かにこのフォーマットで作られていました。EXもAもたぶん同じ^^

更に質問
3Dモデルに結び付けられていない。1枚絵(ポリゴンに貼り付けるだけ)で使うテクスチャをどのように管理されていますか?

私は以下のように考えているのですが、他の方はどのような方法をとられてますか?

巨大なテクスチャファイル(いろんなパーツが入っている)
テクスチャ配列(クラス) それぞれのテクスチャクラスにサイズと位置を記憶
使用時*テクスチャ番号(引数) 

これによってテクスチャクラスは自分が必要な
データ−を巨大テクスチャより切り取り動的に切り替えることができる。

小さなパーツで構成される画面を作る時に適している。
テクスチャ間のコピーのときに任意の処理ができる(例:枠をつけたり)
テクスチャクラスに振る舞いを登録できるような設計にできる為、
使用する側はそのままの表示ロジックを維持しながら、データ−を供給するクラス側で
データを入れ替えることが可能。
(例えば時間に応じて変化するテクスチャなど)
0460名前は開発中のものです。04/03/22 01:06ID:tNFLCTBp
>>459
ttp://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=39&vew=30
0461初心者04/03/23 14:04ID:Jczyt83k
初歩的な質問で申し訳ないのですが
読み方はダイレクトサンディでよろしいのでしょうか?
0462名前は開発中のものです。04/03/23 21:23ID:Yrm+HBGz
>>461
違うよ サムディ 信じる心いつまでも おーーーーサムディ♪
0463名前は開発中のものです。04/03/23 22:42ID:5PwlM6K3
>>461
ダイレクトエッキスです
0464名前は開発中のものです。04/03/24 00:22ID:YZ3i2F6G
ディレクトセックス
0465名前は開発中のものです。04/03/24 08:33ID:jOSSC0EV
>>461
3Dを「サンディ」と呼ぶのは
出版業界から嫌われているサンディ○○ぐらいだろ
0466名前は開発中のものです。04/03/24 14:29ID:IJNb+c5r
>>465
任天堂が64のCMでサンディって言ってたじゃん。
任天堂が言うんだから、サンディが正しいに違いない。
0467名前は開発中のものです。04/03/25 00:09ID:kQT5/IqP
http://www.tosp.co.jp/i.asp?i=shogunsan

http://www.geocities.co.jp/AnimeComic-White/2682/

先生!サンディについて調べました
0468名前は開発中のものです。04/03/25 12:07ID:F7pYy+Ij
bio100%のサンディー恋塚
0469名前は開発中のものです。04/03/30 23:59ID:fcRSAwJm
皆、バーテックスバッファをどういう構成で使ってます?
MSのFAQを読む限りでは、なるべくSetStreamをしないほうがいいって書いて
あるんだけど、単一のVBに全てのメッシュ頂点を置くより、メッシュ単位で
VBを持たせて、各Meshを描画するたびにSetStreamでVBを切り替えたほうが
圧倒的に速かった。これはVRAM容量と頂点数に依存すると思われるけれども、
mesh毎にVBをもつ方法だとFVFをモデル単位で最適化できるし
利点の方が多そうなんだけど、実の所どうなんでしょうか?
もう一つは、FVF単位で複数のVBを持つというのもあるかと思いますが。

あと、SetStreamでVBを切り替えるたびに、System RAM→VRAM間の
データ転送が起きるんでしょうか?
0470名前は開発中のものです。04/03/31 03:36ID:wPHsbNEc
どのスレで聞いたらいいかよく分からんのでここで聞かせてもらいます。
3Dで雷みたいなエフェクトをビルボードでアニメーションさせて表示して
るんですがビルボード以外でなるだけ軽くて使えそうな方法って無いんでしょうか?
教えてください

0471名前は開発中のものです。04/03/31 07:08ID:uLEtiF6X
空の描画みたいな完全に2Dでいいモノなら、FVF_XYZRHW でスクリーン座標系で描く。
0472名前は開発中のものです。04/04/04 01:41ID:hMv86NdG
http://pc5.2ch.net/test/read.cgi/tech/1011762546/438
どうなんだろ
0473名前は開発中のものです。04/04/07 12:07ID:Z8uh3z3S
DirectX9を学ぼうと思ってるのですが、いきなりじゃ難しいでしょうか?
DirectX7とかを学んでからの方が良いでしょうか?
0474名前は開発中のものです。04/04/07 12:36ID:zQ7BBAvd
>>473
初めて学ぶのであれば、どちらも大差ない。
0475名前は開発中のものです。04/04/07 13:48ID:Z8uh3z3S
>>474
レスありがとうございます。
じゃあDirectX9をやってみようかな…

それと、やっぱDirectX9はサンプルで勉強するもんなんですか?
こんなスレがあるくらいですし→http://pc5.2ch.net/test/read.cgi/gamedev/1032657642/
今BasicHLSLってのを見てるんですが、結構難しく思えるんですが…
0476名前は開発中のものです。04/04/07 13:56ID:kANErwe5
>>475
悩む必要はなくDirectX9をやるのが当然です。
それより、いきなりシェーダーですか?
初学者は、たのむから固定パイプラインで基礎から勉強してください。
下手な解説読んだり本買うよりまずここ。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/DirectX9_c/directx/intro/dx9intro.asp
0477名前は開発中のものです。04/04/07 14:12ID:Z8uh3z3S
>>476
レスありがとうございます
シェーダーとか良く分からないんですが、
Basicって書いてあるから一番簡単なのかなと思って見てみたんですが全然分からなかったです。
固定パイプラインとやらも良く分かりませんが、そこ読んで勉強してみます
047847604/04/07 18:44ID:kANErwe5
>>477
固定機能パイプラインに対して、プログラマブル・パイプライン。
これがバーテックス/ピクセル・シェーダー。
まぁ、今はわからんでよろしい。とにかくそれはfixed pipeline で
テクスチャー〜環境マップ〜バンプマップまで、自在に描けるように
なってからのアドバンスド・コース。先に進んでみればシェーダー自体は
なんにも難しい事はありません。


047947604/04/07 18:47ID:kANErwe5
おっと、ちなみにHLSLとは、
High Level Shader Language
そのBasicとは、単に「HLSLの基礎」という意味だと思われる。
このHigh Levelとは、元々のアセンブリ・シェーダー言語と相対的に、
高級(高抽象度)言語であるというだけの話。

0480名前は開発中のものです。04/04/07 20:00ID:Z8uh3z3S
>>476さん
いろいろありがとうございます。
覚える事が沢山あって大変そうですが頑張ります。
048147604/04/07 23:08ID:kANErwe5
どういたしまして。MFC同様、最初は圧倒されるけど、所詮凡人の作ったAPI。
こつこつとやっていけば、たいした事はありません。

それより、OpenGLという選択肢もありますが?
http://www.opengl.org
0482名前は開発中のものです。04/04/08 00:10ID:hciw5qmt
>>481
自分が調べた限りでは、OpenGLの方が使いやすかったりするっぽいですが、
将来性を考えるとDirectXの方が良いような気がします。

↑的違いだったらすいません。あまり調べてないので。
0483名前は開発中のものです。04/04/08 11:43ID:k7lLjW3m
隊長!DirectSoundでリスナーって二つ使えますでしょうか!?
なんか二つ作っても片方からしか聞こえません!!
0484名前は開発中のものです。04/04/08 11:55ID:VDhri/a/
リスナーは聞き手なので一つだけ。
0485名前は開発中のものです。04/05/27 17:33ID:dVPVJqfU
画面上にある矩形をマウスでドラックさせるのを作ってるけど
手計算で算出した矩形の射影座標を元に計算させる方法以外で
もっとスマートな方法あります?
同じ計算を描画ライブラリがやってるだろうからそれを利用できれば
2度手間にならないと思うんだけど。

開発環境 8..1 D3D VC6.0
0486名前は開発中のものです。04/06/01 16:35ID:0lkL1ujz
説明不足で何をしたいのかよく分からんが、最初から矩形をスクリーン座標で
描画したら駄目なのか?
0487 04/06/14 17:42ID:WFl8Z6je
Savage4でDirect3Dのメッシュやテクスチャが崩れるんですが、
これは放置してて大丈夫ですか?
0488名前は開発中のものです。04/06/14 21:24ID:DXSiFvmK
>>487は放置してて大丈夫です。
0489名前は開発中のものです。04/06/14 21:36ID:81gUeaEA
>>487
Savage4は欠陥品なので完全無視でALL OK。
0490名前は開発中のものです。04/06/15 21:10ID:SDa90yDU
皆さん、【dx90update_managed.exe】って使いましたか?
自分はMSDNのサイトから落として実行したのですが、以後、自作プログラムが
おかしくなりました。
以下が処理の順番です。
@.2Dスプライト(ウィンドウとか)の動きに頂点シェーダを使用したいので、
X,Y,Z,Color,U,Vのフォーマットで頂点バッファを作成
A.LockしてXYZには-1〜+1の値
UVには0〜テクスチャのWHを設定
B.制御用の行列をSetVertexShaderConstantする
C.SetVertexShader
SetStreamSource
DrawPrimitive
 を呼ぶ。

8.1で作ってますが【dx90update_managed.exe】を実行する前は1〜4で大丈夫でした。
ですが実行後は、AのUVを0〜1にしないと表示が上手くいきませんでした。
同じ経験した人っていますか?
0491名前は開発中のものです。04/06/15 21:13ID:eg0dM5JV
どうせ自分のバグだよ
0492名前は開発中のものです。04/06/15 22:11ID:vBX3lzB0
>>490
どうおかしくなるの?
どうなってほしいの?
肝心な情報がすっぽり抜けてるよw
あーむかつくw
0493名前は開発中のものです。04/06/16 00:56ID:WhwThShq
>>490
もう氏んでしまえよ
0494名前は開発中のものです。04/06/16 01:35ID:E0t6wJPT
Savage4は放置でいいと思う。
あのボード(というかドライバ?)は手におえない。
DirectX使ったプログラムを配布する人は、
Savage4の奇妙さを体験しておくべきだと思う。
0495名前は開発中のものです。04/06/16 02:31ID:nZ9pPWc1
どんなことになるの
スクリーンショットとか見せて
0496名前は開発中のものです。04/06/16 09:27ID:5xXMamqD
Savage4
・オーバーレイするとハングアップする。
・透過色ありサーフェースの描画が乱れる。
・Zバッファを正しく参照しないことがある。
・アルファブレンドで重ねるとZバッファに異常が出ることがある。
・32ビットカラーのみ機能制限がある。
・DirectX8以降で誤動作しやすい。
0497名前は開発中のものです。04/06/16 10:06ID:xKl8nzXy
回避方法とかあんの?
0498名前は開発中のものです。04/06/29 21:02ID:PqhpO3TI
>>497
新ビデオボードに入れ替える。
0499名前は開発中のものです。04/07/01 11:19ID:V3ULX8sG
>>497
回避方法はある。
さけぶんだ。大きな声で。「ぬるぽ!」って。
叫ぶ回数は1回だ。
2回以上叫ぶと効果がない。注意しろよ。
0500名前は開発中のものです。04/07/05 19:23ID:jDyf4pp5
ぬるぽ!
0501名前は開発中のものです。04/07/05 19:27ID:jDyf4pp5
>>499
なおったよ。
ありがとう。
0502名前は開発中のものです。04/07/07 20:58ID:ar3+CrBe
ぬるぽ!
0503名前は開発中のものです。04/07/07 20:59ID:ar3+CrBe
>>499
なおらないぞ。
(゚Д゚)ゴルァ
0504名前は開発中のものです。04/07/12 07:25ID:EBdetT+D
>>503
オマエは ! を全角で叫んだからダメなんだ。
半角で叫べ!
0505名前は開発中のものです。04/07/14 22:31ID:f/SdApvM
ぬるぽ!
0506名前は開発中のものです。04/07/15 21:30ID:qKmUe2h3
ぬるぽ
0507名前は開発中のものです。04/07/16 23:35ID:PaFB2ALi
ぬるぽ! ぬるぽ! ぬるぽ!
0508名前は開発中のものです。04/07/18 19:09ID:0ZPPFwpX
ぬるぽ
0509名前は開発中のものです。04/07/20 13:23ID:eC5Pqwrk
    ∧_∧ ◆        
   ( ´・ω・)/◆ ガッガッ!!!   
  c(,_u__つ   Σ( ゚∀゚) >>505>>506
        \■
        ■ ガッ!ガッ!
          Σ( ゚∀゚) >>507>>508
0510名前は開発中のものです。04/07/23 02:23ID:d/ONKr7r
大きいぬるぽと、小さいぬるぽ。
あなたは、どちr
0511名前は開発中のものです。04/07/24 19:32ID:P1GEgvZG
レスのない可哀想な>>510の為にage
0512名前は開発中のものです。04/07/25 20:37ID:umbpNFnG
レスのない可哀想な>>511の為にage
0513名前は開発中のものです。04/07/26 20:34ID:RTagjcW0
レスのない可哀想な>>512の為にage
0514名前は開発中のものです。04/07/27 05:33ID:+kiBCzN6
>>510
ガッ ガッ
0515名前は開発中のものです。04/07/28 12:48ID:XhHnaZC6
かわいそうだから>>510の尻の穴に ガッ
0516名前は開発中のものです。04/07/31 19:18ID:nGdeWbuw
レスのない可哀想な>>515の為にage
0517名前は開発中のものです。04/08/02 23:28ID:jHaMhjeT
レスのない可哀想な>>516の為にage
てか、>>516はageてないじゃん。
0518名前は開発中のものです。04/08/03 11:13ID:b+weJY54
かわいそうだから>>516-517の尻の穴に ぬるぽっ
0519名前は開発中のものです。04/08/13 12:39ID:YcFHAU6U
10日放置された可哀想な>>518の為にage
0520名前は開発中のものです。04/08/13 13:24ID:pUzAsloY
Direct3Dの次バージョンは、
大脳にインストールすると、透視できるようになるって本当れすか?
0521名前は開発中のものです。04/08/15 23:06ID:51XiLT/l
本当れす
0522名前は開発中のものです。04/08/16 12:13ID:LhW0fUrv
レスのつかない可哀想な>>521の為にage
0523名前は開発中のものです。04/08/16 17:26ID:QWeiiHXx
Direct3Dの次バージョンは、
相対性理論をサポートしたDirect4Dって聞いたんですけど本当れすか?
0524名前は開発中のものです。04/08/16 22:01ID:vEUP9K0U
あれ? 次バージョンは液体が使えるって聞いたぞ
0525名前は開発中のものです。04/08/16 23:37ID:o5d17tpP
レスがついた>>523の為に乾杯
052652304/08/17 13:00ID:6FDqNPYe
レスツイタ━━━━||Φ|(|゚|∀|゚|)|Φ||━━━━!!!!
0527名前は開発中のものです。04/08/17 19:01ID:4zoJaIbh
なんで閉じ込めてられてんねんキミ。
0528名前は開発中のものです。04/08/18 00:53ID:IssSuWG7
DirectX 9.0d には藤原紀香が付いてきます。どうぞお構いなく。
0529名前は開発中のものです。04/08/18 09:08ID:gKvCATyJ
福原愛ちゃんのママが付いてくるなら
考えてやってもいい。
0530名前は開発中のものです。04/08/20 11:02ID:6u/RzTHh
それじゃ、愛ちゃんをもらおうか。
0531名前は開発中のものです。04/08/22 15:51ID:6VMofEwm
しかたない。
パパをもらうとしよう。
0532名前は開発中のものです。04/08/24 00:01ID:pT7fUlXV
えーと。
私は、何をもらえるのでしょうか?
0533名前は開発中のものです。04/08/24 11:23ID:hdyd3kuK
藤原紀香のママだな。
0534名前は開発中のものです。04/08/27 23:57ID:IvjAjLag
わかりました。
では、いただきます。
0535名前は開発中のものです。04/08/28 20:11ID:ZmpOMqOF
先生!
ボクは誰をもらえますか?
0536名前は開発中のものです。04/08/29 16:48ID:ptS3VStC
パパイヤ鈴木のパパだな。
0537名前は開発中のものです。04/08/31 00:05ID:qnsJDKel
マジですか?
マジでパパイヤ鈴木のパパですか?
チェンジ出来ませんか?
0538名前は開発中のものです。04/08/31 22:08ID:BYxzdD4T
仕方ない、細木数子のママにしといてやる。
0539名前は開発中のものです。04/09/03 02:41ID:DX4480aG
俺はパパイヤ鈴木で我慢しよう。
0540名前は開発中のものです。04/09/03 21:55ID:WqdUNBwA
複数のモーションデータ付きXファイルをつくろうとして、
テキスト形式のXファイルの、モーションデータの部分を
メモ帳つかってコピーしてんだけど、これが結構メンドクサイ。
なんか楽に作る方法ってないですか?
0541名前は開発中のものです。04/09/03 22:03ID:EuFC3A0v
>>540
同じディレクトリにあって、ファイル名のある法則にしたがって
複数のXファイルのアニメーション部分だけコピーしてまとめるプログラムを組む。
とか
必ず、1つのモーションデータとして作ってもらうってのはどうよ?
つまりキーフレーム0〜29までは歩きモーション、30〜59まではジャンプモーション
って具合に作ってもらう。

とかいかがでしょうか?
0542名前は開発中のものです。04/09/04 14:55ID:dwmAir/c
>>541
ものすごいやっつけ作業で作ったMFCプログラムならあるけど
指定した4種までのアニメ付きXファイル(LWで出力したもの)のモーション
データの個所を、指定したXファイルの下にフレーム名を修正して追加すんの。
使えなくても泣かないならUPするよ?
054354104/09/04 22:07ID:TzAUQGCx
>>542
んなもん俺は自分で作れるよw

ところでなんで「4種まで」なんだ?
MFCの意味もようわからんし。
やっつけにしてもコンソールプログラムにしておいて、ファイルを放り込むだけでまとめてくれるとか
フォルダ以下のXファイルを(ファイル名の命名規則によって)一括変換してくれるとかの方が使い勝手いいだろ。
0544名前は開発中のものです。04/09/05 01:51ID:0s4Gjsu9
>>543
パパイヤ鈴木だな。
054554104/09/05 09:31ID:cl2xtHrW
>>544はニセモノ。

>>543
うぅ残念。アニメーションは50くらいあるんすよ。
できたらプロジェクトファイルで貰えませんか?
0546名前は開発中のものです。04/09/05 09:48ID:cl2xtHrW
>>542
それだと楽そうですが、今度は、読み込んだ1つの
アニメーションセットを、指定したフレームごと
分割して、トラックに格納しなおすプログラム作るのが
難しいような気がすんですが、簡単にできるなら
そっちのほうがいいかも?
0547名前は開発中のものです。04/09/06 23:48ID:DKw3vlDI
少し、疲れたようだ。
■ このスレッドは過去ログ倉庫に格納されています