[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 01/02 08:13 / Filesize : 170 KB / Number-of Response : 607
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【C++】 DirectX初心者質問スレ Part15 【C】



1 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 16:56:40 ]
※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。

【C++】 DirectX初心者質問スレ Part14 【C】
pc11.2ch.net/test/read.cgi/tech/1189257706/

237 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 20:10:41 ]
>>233
最終的にスクリーンに描画するときに
各ピクセルに色を塗ると同時にそこにある物体が
カメラからどれくらいの距離にあるかをZバッファに記録しておく
そうすると
別の物体を同じピクセルに描画しようとしたときに
Zバッファの値を参照して
以前の値よりカメラに近ければ
新たな色を塗りZバッファの値も書き直す
以前より奥にあるものなら色をぬらない、という処理が可能になる

これをしないと後から描画したものでどんどん色を上書してしまうので
奥にあるはずのものが手前にあるものの上に描画されてしまう
したがって描画するときに奥にあるものから描画するというようなソート処理が必要になる

238 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 20:38:08 ]
>>234
それはビューの設定とは無関係
カメラの位置を変えたって、そんな変化は起こさないだろ
オブジェクト側を調整しろ

239 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 20:45:34 ]
>>237さん 回答ありがとうございます
つまり
 ______
|近 遠 近 …


Z値が書き込まれていって、それを参照するわけですね。
これは2次元平面に射影された状態ですよね

ある物体○△□が 奥行き方向に1列に並んでたとき
物体ごとにデプスバッファに

○ 書き込む    遠い
△ 書き込まない  ↓
□ 書き込まない 近い

としたら、最終的に一番近いのは□ですが、○が描画される、ということになるのですよね?


240 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 22:27:37 ]
>>232

線のみから求めてるわけじゃないじゃん
結局手動で山と穴の区別をつけたデータが必要だろ?

241 名前:223 mailto:sage [2007/12/28(金) 22:31:06 ]
>>223です
皆さんありがとうございます
231さんが仰るように「線だけ書かれたデータをそのまま読み込んで処理」というものを想定していました
穴を含む形状については今は考えず、概形が出来上がった後に改めて考えることにします
頂点テクスチャフェッチなど初めてきく言葉が沢山あるので、まずは片端から調べてみます
ありがとうございました

242 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 22:41:03 ]
>>239
違う

基本的に描画関数を呼んだ順に描画されるので
○△□の順番で描画した場合は問題ないが
□△○や△□○の順で描画した場合
一番遠いところにあるはずの○が一番上に描画されてしまう
それを防ぐために先に近いものが描画されていたら
それより遠いものを描画しないためのもの

243 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 22:56:49 ]
>>242さん
何度もありがとうございます。その点は理解できました。

描画の時にデプスバッファに書き込む物体と
書き込まない物体が混在したときにどうなるのでしょうか。
そこがわからなくて。

最終的にデプスバッファに書き込んでいる物体がちゃんとならんで
デプスバッファに書き込まない物体は描画順ということになるのですよね


244 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 22:58:38 ]
>>213
>>217
ありがとうございます
そのオプションをつけてウィンドウスタイルなどをいじってみたら、
開発環境のXPマシンだと、一応は表示されるようにはなりました

ですが、フルスクリーン→ウィンドウへと切り替えた場合に
ウィンドウ化しなかったり、古い98マシンで試してみた所
メニューを表示した瞬間に画面が激しくちらつくようになってしまったり
ダイアログは表示されなかったりと、挙動が酷くおかしいようです

とりあえずもう少しだけ教えていただいたサンプル等と見比べて
頑張ってみようと思います

最近のエロゲーとか、ホントこれどうやってるんでしょう?
やっぱり、DirectXで描画したなんちゃってメニュー&ダイアログなんですかねぇ

245 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:07:58 ]
そもそも標準のメニューを使っているようなエロゲーはDirect3Dなど使っていない。



246 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:23:28 ]
いや最近のエロゲは結構DirectX使ってるよ
とりあえず今入ってるはぴねすってエロゲーはDirectXで動作してるし
フルスクリーンメニューもちゃんと出てる

247 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:28:55 ]
もはや3Dも2DもDirectGraphicsで統合されてるし

248 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:32:23 ]
メニューやダイアログを表示中に
ゲーム画面が変化しているやつは見た事無いから、
そこに解決の糸口があるんじゃないかな。

249 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:47:57 ]
メニューループにはいったら普通に他は止まるだろ

250 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 23:50:33 ]
まさかとは思うが、メニューがある場所に、自分で別の物を描画しておきながら、
ちらつくとか表示されないとか馬鹿なことをぬかしているわけじゃないよな?

251 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 00:13:29 ]
>>250
ちらつく、というのはWin98環境の方だけで、XPでは画面上に
しっかりと表示されているので、それはないかと思います

>>248
いくつかフルスクリーンメニューのあるゲームを起動してみたところ
どうもメニューが出た時に画面が下にずれているものが多いようです

なんとなく思うのは、これはDirectXでのフルスクリーンモードではなくて
実際にはウィンドウモードなのではないかと。
画面いっぱいのクライアント領域をもつメニュー付きの通常ウィンドウを作って、
必要に応じてウィンドウを縦方向にずらしてメニュー表示しているのでは?

それが可能だとすると、環境によって挙動があやしげなSetDialogModeに
たよるよりも安定しそうな気もします
SetDialogModeはおいといて、まずこの方法でできるかどうか試してみようかと思います

252 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 00:53:25 ]
システムに依存することは止めたらどうかね?

253 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 01:02:19 ]
となるとダイレクトXなんて使えたもんじゃありませんな

254 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 01:04:43 ]
システムに依存しないWindowsプログラムってどんなんだよ

255 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:56:38 ]
問: 次の条件を満たすプログラムを作成せよ。(30点)

1) システムに依存しない
2) Windows上で動作する




256 名前:デフォルトの名無しさん [2007/12/29(土) 14:06:22 ]
Javaを使うお

257 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 14:53:21 ]
Javaか

258 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 16:42:42 ]
DirectXのサイトって数が多い分今の自分に合ってるの探すのがきつい・・・
せめてSDKの日付とかあって欲しい。
あの,Direct3Dのプログラミング始めたいんですが何をそろえればいいですか?
バージョンは9.0でやろうとしているんですが、パッケージによって違いとかあるんですか?

もう1週間くらいネットを這いずってるんですが良く分かりません・・・お願いします。

259 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 16:47:00 ]
Javaだな

260 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 16:51:05 ]
>>258
ネットが活用できないのなら本屋に行け。

261 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 17:04:48 ]
さすがJavaだな

262 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 17:06:21 ]
実際Javaって使い物になるの?
携帯ゲームなら有りかもしれないけどさ

263 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 17:11:38 ]
何を作るかによる。
目的を定めずに手段だけを論じるのは愚か者の極み。

264 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 18:16:38 ]
>>263
そういうのはいいから。

265 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 18:24:36 ]
スレ違いの質問に対して答えをいただけただけでもありがたいと思え



266 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 18:37:54 ]
>>258
もう書かれているがマジレスすると、AmazonでDirectXで検索して、
初心者向けで売れてる本を一冊でも買ったほうがいいと思う。

別に本が優れてるとかじゃなく、ネットの活用が上手くなくて、SDKについても何も分からないんであれば
本に頼るしかないだろう。

267 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:00:02 ]
>>266
ご指南ありがとうございます。
どうか最後にこれだけ教えてもらえないでしょうか?
Microsoft DirectX SDK (November 2007)だけあればできますか?

268 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:12:20 ]
Visual Studioが必要です。

269 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:13:35 ]
パソコンも必要です

270 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:27:50 ]
気力も

271 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:28:26 ]
あとはJavaだな

272 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 19:35:57 ]
>>267
Windows上でここに書き込んでいるんだとすれば、ソフトウェアとして最低限必要なのは開発環境とSDKだけ

273 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:08:24 ]
Macなのですが、無理ですか?

274 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:12:36 ]
Intel Mac なら Windows をインスコすればいい。

275 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:13:12 ]
>>273
Javaならok



276 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:15:34 ]
何この流れ
釣りは無視しろよ

277 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:16:09 ]
Javaの人気に嫉妬

278 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 20:17:10 ]
>>256がJavaを使うなんて言ったばっかりに・・・

279 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 21:17:34 ]
>>272
まじであざーした!
がんばってみます。

280 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 00:05:22 ]
xファイルから得たポリゴンの任意の点の座標を変更する、ってのはどうやったらできる?

281 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 00:09:44 ]
データが入っている場所の頂点データをいじれよ。

282 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 00:33:38 ]
>>280
メッシュというと複雑そうにみえるが、中身は頂点バッファやインデックスバッファその他もろもろが集まってるだけ
なんでまずはロックなど頂点バッファの基本的な操作さえ覚えてしまえば後は流れ的にJavaが全て解決してくれる

283 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:14:12 ]
JABAすげー

284 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:17:13 ]
Japan Amateur Baseball Associationか

285 名前:152 mailto:sage [2007/12/30(日) 01:39:13 ]
こんばんは、>>152です。
画面いっぱいのウィンドウの方はできないこともなさそうな感じではありましたが
大きい→小さい画面への変更で、デスクトップアイコンや他アプリの位置等がずれるため
やめることにしました

その後もう一度SetDialogBoxModeのやり方でウィンドウのフラグをあれこれいじってみたら
フルスクリーン→ウィンドウでも上手くいくようになりました

うちにある家族用の別メーカーのXPマシンでも正常動作したようなので、
まあ、今時Win98で動かなくてもしょうがないかなぁと自分を納得させる事にしました

ささっていたビデオカードも、 GeForce4 MX440 SE というかなり昔のボードで
ドライバの配布すら終了している代物でしたので
このボードのドライバがDirectX9.0cに完全対応していなかったのかも知れません

質問に答えてくれた方々、どうもありがとうございました。



286 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 01:45:57 ]
XP以上のみサポートでぶっちゃけ問題ないよ。

287 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 02:10:30 ]
シェーダで3次元テクスチャを二つ載せようとしたのですが
なぜか片方しか表示されません。

3次元テクスチャ1つと1次元テクスチャ1つは問題なかったのですが
なぜ…

やり方教えてください

288 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 14:51:57 ]
DXライブラリみたいにビデオメモリに
直接アクセスするのってどうやるんでしょうか?

289 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 15:01:00 ]
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/DirectX9_c/directx/graphics/programmingguide/tutorialsandsamplesandtoolsandtips/samples/clipvolume.asp

すいません、これを試してみたいのですが
どこからDLしていいのかわかりません。
といいますか、どのSDKなのかわかりません

これの実行ファイルかソースうpってもらえませんか?


290 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 15:46:13 ]
>>289
DirectXのSDKをインストールすると入ってるよ

291 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 16:24:52 ]
>>290
前にインスコしたSDKには入ってなかったのです。
Microsoft Platform SDK for Windows Server 2003 R2

また400MBも落とすのに○時間も掛かるのはシンドイっす

292 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 16:50:44 ]
  _, ._
(;゚ Д゚)

293 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 17:08:18 ]
PlatformSDKは、まぁ、ボケなんだろうけど
サンプルはSDKのバージョンによって中身がかわってるからな
少なくともAugust2007には入ってなかった
でも手元にあった9.0bSDKのCDには入ってたので
デベロッパセンターに行って
Updata〜とついてないSDKを落とせばたぶんついてくるんじゃね?

294 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 17:43:16 ]
>>291
軽量版があるからこっち使え
java.sun.com/j2se/1.4.2/download.html

295 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 19:25:24 ]
JAVAネタ、いい加減にしつこい



296 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:00:51 ]
>>292-293
ボケたつもりはなくて、、、これがSDKだと思ってました。。。

>>294
ありがとうございます。見てみます

297 名前:デフォルトの名無しさん mailto:sage [2007/12/30(日) 21:01:26 ]
…JAVAですか。
確認する前に書き込んでしまいました

298 名前:デフォルトの名無しさん [2007/12/31(月) 08:36:54 ]
自機・フィールド共にXファイルから読み込んで、3Dゲームを作っています。
自機と地面や壁との衝突判定をさせたいんですが、Xファイルから自動的に描画されているので、自分でも壁の座標が分からないです。
壁や地面の座標はどうやって求めればいいんでしょうか?

299 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 09:00:36 ]
そもそも自動で描画されるなどあり得ない。

300 名前:298 [2007/12/31(月) 09:56:49 ]
すみません。自動的というのは、頂点の座標を自分で把握していなくても描画ができるという意味です。
SDK Tutorial6のソースをほとんどそのまま利用しています。
計算式はぐぐれば出てくるんですが、計算するための座標がどこなのかが分かりません。

301 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 10:01:01 ]
まさかチュートリアルの1から5を飛ばして6やってるって
オチじゃあるまいな?

302 名前:298 [2007/12/31(月) 10:10:29 ]

4,5飛ばしてました。
今から見てきます。

303 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 14:35:16 ]
たまにエスパーが現れるから困る

304 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:32:44 ]
OpenGLのglFrustum()という関数をDirectXで実装しようとしています。

glFrustum()については以下のURLに解説がありました。
kaoken.no-ip.com/brew/index.php?im_id=glFrustum

このURLで出ているGL_PROJECTION というのは、おそらくDirectXでいうD3DTS_PROJECTION だと思っているのですが、
このD3DTS_PROJECTION の使い方がよくわかりません。

305 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 15:58:19 ]
CheckDeviceMultiSampleType() でビデオカードがマルチサンプルに対応しているか調べたのですが、
自分のものだと対応していないことが分かりました。
ビデオカードのメーカーのページにはこれに対応しているかどうかの記述がないようですが、対応している
ビデオカードはどのようにして見つければよいでしょうか?



306 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 17:24:28 ]
引数間違っている可能性が高いような。
非対応見つけるほうが大変でね?

307 名前:305 mailto:sage [2007/12/31(月) 17:41:23 ]
>>306
え!?
自分のカードはGeForce 8600GTで、関数の引数は以下のようにしました。

m_pD3D->CheckDeviceMultiSampleType(
           D3DADAPTER_DEFAULT,
           D3DDEVTYPE_HAL , D3DFMT_R8G8B8,
           FALSE,
           D3DMULTISAMPLE_2_SAMPLES,
           NULL ) ) )

戻り値は
D3DERR_NOTAVAILABLE
でした。

最初の引数を
pCaps->AdapterOrdinal
としても同じでした。

308 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:07:52 ]
てか8600GTは
D3DFMT_R8G8B8フォーマットをサポートしてるのかい?
最近のだと
D3DFMT_X8R8G8B8とか
D3DFMT_A8R8G8B8とか


309 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:50:25 ]
>>307
D3DFMT_R8G8B8 なんて、バックバッファはおろか、テクスチャのフォーマットとしても
対応してるアダプタなんて現時点では存在しないぞ
素直に D3DFMT_X8R8G8B8 でやれ

310 名前:305 mailto:sage [2007/12/31(月) 20:57:54 ]
>>308>>309
ありがとうございます。
D3DFMT_A8R8G8B8で対応してました。

実際の効果を見てみたのですが、通常のレンダーターゲットに描くときはしっかりと効いていました。
しかし、どうもアプリ内で用意したテクスチャをレンダーターゲットにすると、そこでは効かないようです。
なぜなら、レンダリングしたテクスチャを板ポリに貼り付けて通常のレンダーターゲットの全面に表示
すると、ジャギーが強く残っているからです。
(テクスチャ解像度はレンダリング対象の1/4と低いものの、AAがかかった痕跡が見られません)

テクスチャをレンダーターゲットにしたときもAAが効くようにするにはどうすれば良いでしょうか??

311 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 23:58:20 ]
今DirectDrawとDirect3Dの機能をそれぞれクラス化してるんですけど、
このクラスのインスタンスを作るとき何をstaticにして何をインスタンス作ったら
いいですか?Direct3D複数作ったらなんかやばいんでしょうか?

312 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:09:40 ]
>>311
質問の仕方が悪すぎる。あんたのクラスの設計も具体的にやりたいことも
わからないのに答えられる問いではないよ。

とりあえず「Direct3D複数」がIDirect3D*とIDirect3DDevice*のこと言ってんなら
複数作成するのは稀だから、まだ余計なこと考えなくていいよ。

313 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:09:48 ]
貴様のオナニーの仕方なんぞどうでもいい

314 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 02:28:26 ]
ttp://www.cmagazine.jp/books/effect/index.html
この本を買ったのですが、Part2の波のデモが動きません。
プロジェクトをコンパイルしようと思ったら、.net 2002なのでできませんでした。
グラボはGeForce 8600GTです。

上のサイトから、そのサンプルをダウンロードできるので、みなさんは動くか試してもらえますか?

315 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 02:40:29 ]
何も表示されないのかウィンドウすら表示されないのかエラーで起動しないのか。

「どう」動かないのかを書きましょう。



316 名前:314 mailto:sage [2008/01/01(火) 03:20:09 ]
>>315
すみません。
デモのプログラムは起動するのですが、波のサンプルの場面で、波が発生せず、真平らな板ポリ
状態になっています。
波は随時勝手に発生するプログラムのはずなのですが・・・

317 名前:311 mailto:sage [2008/01/01(火) 09:53:29 ]
>>312
すいません。そしてありがとうございます
寝ぼけてて文章まとまってなかったんですが、
ふつうDirectDrawをウィンドウモードで使う場合はLPDIRECTDRAW+LPDIRECTDEVICEを1つ作って
サーフェイスを必要なだけ作ってプライマリに転送で十分ですよね?
ただウィンドウを複数作るならウィンドウ1つにつきLPDIRECTDRAW+LPDIRECTDEVICE1つ用意
ということでよろしいでしょうか?

318 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 10:26:32 ]
あけましておめでとうございます。
こちらはManaged DirectXについての質問もOKでしょうか?
Managed DirectXスレが11月で止まってしまっているので…。

319 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 10:27:03 ]
>>316
確かにそのままだと動かないね

7900GTでは普通に動いてて
そっちで自分用に書き直したプログラムは
8600GTでも普通に動いているのだが・・・
どこ直したのか覚えてないや

320 名前:314 mailto:sage [2008/01/01(火) 14:14:29 ]
>>319
けっこう環境に左右されるみたいですね。
自前で組んでみようとしましたが挫折しました。

ありがとうございました。

321 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 16:33:49 ]
>>304お願いします

322 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 17:13:13 ]
>>321

OpenGL
// 行列モードに射影行列を選択
glMatrixMode(GL_PROJECTION);
// 射影行列を生成
glFrustum(,,,,

DirectX(固定機能パイプライン使用)
//射影行列を生成
D3DXMATRIX matProj ;
D3DXMatrixPerspectiveFovLH(&matproj,,,,,
//デバイスに射影行列を渡す
device->SetTransform(D3DTS_PROJECTION, &matProj);

頂点シェーダを使って行列変換をするなら
D3DTS_PROJECTIONは使わない
直接生成した行列をエフェクトに渡すなりすればいい


323 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 17:18:30 ]
あ、すまない
glFrustumなら
D3DXMatrixPerspectiveOffCenterLH
のほうが近いか

324 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 17:20:25 ]
そして、さらに連投すまそ
OpneGLは右手座標系だったね
D3DXMatrixPerspectiveOffCenterRH
ってことで

325 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 17:45:33 ]
丁寧にありがとうございます。
つまづいたらまた質問させてください。



326 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 23:29:11 ]
c#でMDIなフォームに対して、親フォーム、子フォーム、各コントロールを
DirectXで描画しようとしてよく分からなくなっています。
SwapChainとかいうのを描画対象の分だけ作るというところまでは
調べたのですが、具体的にどういう風に書けば良いのかが分からず、解説サイトを
探しているのですが、ヒットしない状況です。
c#で、そこら辺を解説してあるサイトがありましたら、教えていただけますでしょうか。
よろしくお願いします。

327 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 09:04:55 ]
すいません。
今、DirectX 9.0SDKを使っているのですが、
DirectX関連の書籍を購入したら、付属のCDに、DirectX SDK (Fedruary2007)が入ってました。
このバージョンをインストールした場合、9.0SDKを使ってた時に作った物が
動かなくなる可能性はあるでしょうか?
Fedruary2007の方は、DirectX9に対応しているSDKのようなのですが、
何か心配なので教えてください。
両方共、殆ど同じ仕様なら良いのですが・・・

328 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 09:22:47 ]
>>327
ほとんど同じではあるが
まったく一緒ではないんで動かなくなる可能性はある
メッシュやエフェクト関連で
互換性の無い変更があったので・・・・

まぁ、でもいつまでも旧バージョンに
しがみついていられるわけでもないので
いい機会だからさくっと修正してみるのも良いかもしれない
たいした変更ではないしね

329 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 09:33:37 ]
>>328
そうですか。
ありがとうございます。
メッシュ機能も使ってるので、ちょっと恐いですが、
ほとんど同じなら、動かなくならない事を祈って新しい方に変更してみます。

330 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 16:14:48 ]
DirectX9.0cで、モニタの解像度を切り替えられるようにしたいのですが、
プログラムが実行されるPCでの利用可能な解像度を取得するには
どのようにすればいいのでしょうか

331 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 16:57:25 ]
>>330

// 適当
int retW[32] ;
int retH[32] ;

// 引数は自分の調べたいアダプタとフォーマットで
int num = (IDirect3D9)->GetAdapterModeCount(D3DADAPTER_DEFAULT, D3DFMT_X8R8G8B8 ) ;

for ( int i = 0 ; i < num ; i++ ){
D3DDISPLAYMODE dm ;
DXUTGetD3DObject()->EnumAdapterModes ( D3DADAPTER_DEFAULT, D3DFMT_X8R8G8B8, i, &dm ) ;
retW[i] = dm.Width ;
retH[i] = dm.Height ;
}



332 名前:330 mailto:sage [2008/01/02(水) 16:59:51 ]
DXUTGetD3DObject()は忘れてくれ
そこは自分の作ったIDirect3D9インターフェースで

333 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 18:35:06 ]
線分を描画する際、線分の太さを変更したいのですが可能でしょうか?

334 名前:333 mailto:sage [2008/01/02(水) 19:05:16 ]
自己破産しマスタ

335 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:27:13 ]
>>331
ありがとうございます。うまくいきました



336 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 23:31:34 ]
3Dを回転させるのにクォータニオンを使おうと考え色々と調べたのですが思うように回転してくれません。
D3DXQuaternionRotationAxisを使う時に回転の軸を設定する必要があるようなのですが、この軸の設定がいまいち分からず・・・。
どうかこの回転の軸の設定をどうすればいいのか教えてください、お願いします。

337 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 23:51:54 ]
>>336
Matrixでyawrollpitchから生成して、matrix to quoternionで変換したら?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<170KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef