【C++】 DirectX初心者質問スレ Part34 【C】at TECH
【C++】 DirectX初心者質問スレ Part34 【C】 - 暇つぶし2ch874:デフォルトの名無しさん
11/05/11 18:11:44.17
>>873
そんな面倒なことしなくてもカメラの位置、注視点を保存しとけば
いんじゃないの?
やりたいことがいまいち伝わってないから、そう思うのかもしれないけど

875:デフォルトの名無しさん
11/05/11 18:16:09.69
>>874
カメラは位置(Eye)や注視点(Focus)などを保存していて、
マウスの入力操作ではそれをいじってビュー行列をつくっているんですが、
それとは別にワールド行列からもカメラを制御できるようにしたいのです。

876:デフォルトの名無しさん
11/05/11 18:49:54.67
「ワールド行列からもカメラを制御」ってイマイチ意味が分からないんだが
俺が知識不足なだけ?

877:デフォルトの名無しさん
11/05/11 19:03:07.69
ググッてもわからないので質問させて下さい。
LG D2342P-PNのモニターを購入して3Dのゲームをしているのですが
DirectX9のゲームをDirectX11でプレイできないのでしょうか?
今DirectX11を使っていて一応3Dでゲームは出来ますがDirectX9
にして下さい。と警告が出て途中で落ちます。
そしてDirectX9をインストールしよとしても
インストールするとできません。ご教授よろしくお願いします。


878:デフォルトの名無しさん
11/05/11 19:05:28.08
>>877
死ねばいいよ

879:デフォルトの名無しさん
11/05/11 19:18:29.69
>>878
お前みたいなバカに聞いてない死ねやカス!

880:デフォルトの名無しさん
11/05/11 19:19:27.53
>>878
小学生かwww

881:デフォルトの名無しさん
11/05/11 19:20:08.43
>>876
カメラの位置と回転を、モデルを制御するのと同じように、
SRTのワールド変換行列で制御するってことなんですけど。
俺の言い方がまずいのでしょうか。

882:デフォルトの名無しさん
11/05/11 19:29:08.86
>>877
1ヶ月前に我慢できずに3Dモニタ買ったんだけど
それHDMI1.4a対応かよ
糞が
死ねばいいよ

つーかスレ違い

883:デフォルトの名無しさん
11/05/11 19:29:46.76
>>881
IDirect3DDevice9::SetTransform(D3DTS_VIEW, )
で行列突っ込めば行列で制御できるんじゃないの?

884:デフォルトの名無しさん
11/05/11 19:44:42.60
>>871
D3DPT_TRIANGLELISTでインデックス無しが一番いい。

885:デフォルトの名無しさん
11/05/11 19:49:28.94
>>877
ここはDirectX「プログラミング」のスレだからスレチな。
あんまり頭悪いと回りに迷惑かけるから気をつけろよw

886:デフォルトの名無しさん
11/05/11 20:19:48.90

>>883
?? 何故IDirect3DDevice9が?
カメラクラスがあります。カメラクラスは注視点などパラメータをもち
マウス入力でパラメータを変更し毎フレームビュー行列をを生成します。
しかし、マウス入力でなくワールド変換行列で直接カメラの位置と回転を
制御したいときがあります。その後もマウス入力で継続して制御するには
ワールド変換行列から生成したビュー行列をパラメータに落とし込まなければ
なりません。どうすれば?
ってことなんですけど、全然通じないのは俺がおかしいのでしょうか?

887:デフォルトの名無しさん
11/05/11 20:39:26.75
う~ん。どう説明すればいいのでしょうか。説明ベタは駄目ですね・・・。
本題は、ビュー行列をEye,Focus,Upに戻せないか?ということなので、
「そういうことはできない」「こういう方法ででえきる、あるいは行列の
成分のどこどこと対応している」というふうにお答え頂ければ幸いです。

888:876
11/05/11 20:42:28.75
SetTransformは関係ないだろう

やっとやりたいことがわかったわ
でも位置と回転を覚えておいてそれを行列操作すればいんでね?

ビュー行列は
移動と回転の情報は普通のワールド変換行列と同じだから
情報は取り出せると思うが。

889:デフォルトの名無しさん
11/05/11 20:43:07.57
ViewMatrixを作るためにFrom , At , Upが必要なわけだけど、それがあとで必要になるなら
作成したときに保存しておけばいいじゃない。

890:デフォルトの名無しさん
11/05/11 20:48:08.81
どうすればも何も、平行移動成分の逆がカメラ位置になって、
回転成分で(0, 0, 1.0)を逆方向に回転して得られる方向ベクトルを
カメラ位置に加算して注視点とする。
上方向については(0, 1.0, 0)を回転させる、とかじゃいかんの?

891:デフォルトの名無しさん
11/05/11 20:48:15.55
>>887
D3DXMatrixLookAtLH(MATRIX *pOut, VECTOR3 *pEye, VECTOR3 *pAt, VECTOR3 *pUp)

やってること
zaxis = normal(At - Eye)
xaxis = normal(cross(Up, zaxis))
yaxis = cross(zaxis, xaxis)

行列の中身
xaxis.x yaxis.x zaxis.x 0
xaxis.y yaxis.y zaxis.y 0
xaxis.z yaxis.z zaxis.z 0
-dot(xaxis, eye) -dot(yaxis, eye) -dot(zaxis, eye) 1


892:デフォルトの名無しさん
11/05/11 20:50:51.60
>>890-891
ありがとうございます。解決できそうな感じです。

他の方々もありがとうございました。

893:デフォルトの名無しさん
11/05/12 00:25:06.88
D3DXMatrix関連は、MSDNとかで調べると中身教えまくりだし
ある程度単純な処理はインラインなので.hや.inlで中身砲台

894:デフォルトの名無しさん
11/05/12 01:16:11.45
中身見るならXNAMathの方がいいよ。SSEだし。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch