Direct 3D
■ このスレッドは過去ログ倉庫に格納されています
0001.
01/11/09 17:06ID:wrfy6OtCとりあえずDX8以降は初期化が簡単になったり関数が変わったり
結構大幅に変わりましたがその辺も踏まえてお願いします。
0670名前は開発中のものです。
04/10/13 06:07:05ID:fyUkMMUHバカかお前は。銭金に決まってるだろ。
0671名前は開発中のものです。
04/10/13 06:46:46ID:aNunOKNy来月から再開でしょ。
0672名前は開発中のものです。
04/10/14 23:46:31ID:oEBIW2wn0673名前は開発中のものです。
04/10/18 02:02:32ID:g5wSND4n0674名前は開発中のものです。
04/10/18 16:40:41ID:VGfCVvCxサーフェス全体を、RGBは変化させず、α成分のみ0で
塗りつぶしたいのですが、何か上手い方法って無いでしょうか?
現在は、もう1つサーフェスを用意して、画面をクリアして、
そこに元画像をコピーしてます。
0675名前は開発中のものです。
04/10/18 18:06:14ID:KdUfN5eY0676674
04/10/18 20:00:44ID:VGfCVvCxD3DRS_COLORWRITEENABLE_ALPHAビットをリセットして
サーフェスに矩形を描画することにより、α成分を
0で塗りつぶせました。ありがとうございました。
0677名前は開発中のものです。
04/11/14 14:08:22ID:v4FEHN7v注視点のうまい処理法がワカラナイ
0678名前は開発中のものです。
04/11/14 16:56:35ID:EHnZA0OT0679名前は開発中のものです。
04/11/14 16:56:54ID:SapNnW4yボールの半径(r)と移動量(x,z)から
マトリックを作りたいのですが分かりません。
誰か教えてくれませんか?
0680名前は開発中のものです。
04/11/14 18:39:23ID:3PVkE8mlD3DXMATRIX matWorld,matTrans,matRot,matScale;
D3DXMatrixIdentity( &matWorld );
D3DXVECTOR3 vec3Trans( x, y, 0.0f );
D3DXVECTOR3 vec3Scale( 1.0f,1.0f,1.0f );
D3DXVECTOR3 vec3Rot( 0.0f, 0.0f, 0.0f );
D3DXMatrixScaling( &matScale,vec3Scale.x,vec3Scale.y,vec3Scale.z );
D3DXMatrixRotationYawPitchRoll( &matRot,vec3Rot.y,vec3Rot.x,vec3Rot.z );
D3DXMatrixTranslation( &matTrans,vec3Trans.x,vec3Trans.y,vec3Trans.x );
matWorld = matScale * matRot * matTrans;
ボールの半径ってのがわかんね
0681名前は開発中のものです。
04/11/14 18:57:02ID:6Qcx2TGz0682名前は開発中のものです。
04/11/14 19:22:39ID:X5jIu0Wl0683名前は開発中のものです。
04/11/14 20:56:24ID:hCc7YYs/半径から円周を出して、それと移動量から回転を出すのでは?
0684679
04/11/14 22:11:40ID:SapNnW4y>683
はい。
>680
ワールド上での各軸の回転量は分かったのですが、
D3DXMatrixRotationYawPitchRollなどの
オイラー角による回転処理では上手く姿勢を制御できなくて
困っています。
例
X軸90度、Z軸90度の順で計算した場合。
X軸90度がワールド上でみるとY軸90度回転になってしまう。
0685名前は開発中のものです。
04/11/14 22:23:48ID:hCc7YYs/まずは軸そのものを回転させることを覚えること。
0686679
04/11/15 08:14:16ID:9iJoBOqnここのHPが参考になりました。
http://hp.vector.co.jp/authors/VA013430/
さらに質問なのですが、ボールが地面(高さ0のXZ平面)に接している、
座標をボールの座標系(ローカル座標系)で知りたいのです。
ワールド座標系なら、ボール位置(ballX,ballY,ballZ)と地面なので
ballX,0,ballZと簡単なのですが、ローカル座標での位置がわからない。
平行移動とスケールは掛けていない、ボールの回転のみの
D3DXMATRIX ballMatとballの位置(ballX,ballY,ballZ)、ballY=ボールの半径
から求めるにはどうしたら良いでしょうか?
0687名前は開発中のものです。
04/11/18 04:46:14ID:O/aA7zi9ワールドにするときと逆にかけてやれば求まるんじゃないの?
つーことじゃなくて?
0688名前は開発中のものです。
04/11/19 00:43:00ID:qqm541c3ベクトルV = (ボールと地面の接点) - (ボールの中心位置)
行列M = ballMatの移動成分を消した行列
行列MI = Mの逆行列
接点のローカルでの位置へのベクトルをVLとして
(ベクトルV_tmpは作業用)
V_tmp = MI * V
VL = 正規化(V_tmp) * 半径
これででるんじゃないのか?
0689名前は開発中のものです。
04/11/19 02:32:29ID:GWqqf4sG単に逆行列掛ければいいじゃん。
0690名前は開発中のものです。
04/11/20 04:13:49ID:Zf2UOU2ND3DXCreateFontで定義した後、
DrawTextを用いれば良いのでしょうか?
0691690
04/11/20 04:14:26ID:Zf2UOU2Nスルーしてください
0692名前は開発中のものです。
05/01/04 20:28:36ID:be4GSkLDコマ送りどころじゃない。3秒に一回画面が変わるくらい。
ゲフォ2MX+Pen4 1.5Ghzなんだけどグラボが糞すぎるのかなぁ?
0693名前は開発中のものです。
05/01/04 20:30:58ID:TqdwmBQ/0694名前は開発中のものです。
05/01/04 20:36:36ID:02I9yCUU0695名前は開発中のものです。
05/01/04 20:44:47ID:r9h8bhSx0696名前は開発中のものです。
05/01/07 23:35:55ID:MsUaYNJpノート対応も考えてると単純に最新機能バリバリってわけにもいかないんだよ。
同人のオナニーゲームならいいんだろうけどね。
0697名前は開発中のものです。
05/01/08 00:43:13ID:N6OoXonVだったらPixel Shaderは使わない。(または使う版と使わない版を作る)
Vertex Shaderはsoftware vertex processingにする。
0698名前は開発中のものです。
05/01/08 01:07:28ID:2Cq+r6HXそんくらいやってほしい。
0699名前は開発中のものです。
05/03/13 15:08:48ID:idmmnJMg2MXでDX9のサンプル動かそうという考えがわからん
0700名前は開発中のものです。
05/03/13 17:11:07ID:RmZEegr/そんな感じが平均ってことだよ。
くそ高いグラボ買う余裕あったら、CS買い足して、
PCでは動く範囲のゲームを買うのが普通だと思う。
0701名前は開発中のものです。
05/03/13 18:38:56ID:ttgzE6C1曲がりなりにもDirectXSDK入れて開発側に回ろうとしている人間が
ヘボいビデオカード使ってギャーギャー騒ぐことに何の価値があるのか。
金の問題だけなら、たったの数千円でシェーダ3.0環境すら手に入るし
そもそも開発環境とCS(コンシューマゲームの略か?)との因果関係が全く繋がらない。
一言で言えば>>700頭大丈夫?
0702名前は開発中のものです。
05/03/13 19:54:21ID:RmZEegr/なんでそうなんの?
オマエみたいなやつがいるから、
カジュアルプログラマーが減るんだよ。
0703名前は開発中のものです。
05/03/13 19:59:43ID:Nw916qbK0704名前は開発中のものです。
05/03/13 20:08:00ID:RmZEegr/0705名前は開発中のものです。
2005/03/29(火) 15:48:21ID:h1LjyVByちらほらと現れているんだが・・・
君達も「セクシーオプス部」に入らないか?
ttp://fps.last-heaven.com/cgi-bin/bbs3/bbs.cgi
さぁ、時計の針は元に戻すことはできない。だが自らの手で進めることはできるぞ。
ついでにage
0706名前は開発中のものです。
2005/04/02(土) 17:37:58ID:z0euE+RD0707名前は開発中のものです。
2005/04/15(金) 20:47:26ID:VDAcC9BQ低付加ブラー。
0708名前は開発中のものです。
2005/04/15(金) 23:07:23ID:K/7mzgKaこんな風にテクスチャを貼り付けるにはどうしたらいいの?
0709名前は開発中のものです。
2005/04/15(金) 23:40:10ID:f8cgGetvテクスチャ?
ただの平行投影でこうなると思うよ。
0710名前は開発中のものです。
2005/04/15(金) 23:57:02ID:K/7mzgKaTHX。悩んでみるよ
0711名前は開発中のものです。
2005/04/20(水) 02:15:22ID:uTPKZKx5rhwを指定して描画するのとスプライトでの表示どちらが処理早いですか?
スプライトで描画するなら回転とかが楽でいいと思ってるんですが
どうでしょうか?
0712名前は開発中のものです。
2005/04/20(水) 03:24:51ID:ZaV+y+yTやってみたほうが早いんじゃ・・・?
0713名前は開発中のものです。
2005/04/20(水) 17:13:50ID:nqjFf9LlスプライトがID3DXSpriteのことを言ってるならアレは遅い。
あれはDraw1回につきDrawPrimitiveを1度ずつ呼んでいるはず。
ヘルプを見れば分かるんだが実はこんだけサイクル数がかかる。
DrawIndexedPrimitive 1200 - 1400
DrawPrimitive 1050 - 1150
こいつらを呼ぶ回数を減らせば減らすほど(普通は)速くなる。
あとD3DUSAGE_DYNAMICなVertexBufferも良いのだが
頂点バッファを用意したりロックしたり、デバイス消失のイベントをハンドルしなければならず、手間がかかる。
しかもSetStreamSourceだとかSetIndicesとかにまた数千サイクルかかる。
システムメモリに頂点溜め込んで一気にDrawIndexedPrimitiveUPが高速だし楽。
あとはこの辺を参考。
http://www.twin-tail.jp/contents/vsdx8/d3d/020/index.htm
0714名前は開発中のものです。
2005/04/21(木) 01:49:14ID:3svv31Myいつの時代の組み方ですか?
シェーダ使ったりできないし、汎用性とかまったくないじゃん。
あくまで2D専用って感じ?
それにそんなにまとめてホントに早いのかぁ?
うさんくせぇなぁ。
Zバッファの前から描画とか絡んでくると単純にまとめりゃいいってモンでもねぇんじゃねぇか?
(それともそれってDirectXが勝手に手前から描画してくれるとかあるの?)
0715名前は開発中のものです。
2005/04/21(木) 01:52:56ID:DC0sESiuNVIDIAのGDCのスライドとか見れ。
0716名前は開発中のものです。
2005/04/21(木) 02:05:14ID:3svv31Myてゆうか性能の限界ぎりぎりまで出すわけじゃないんだから
最近は動けばいいんだよ。
軽い必要はまったくないよ。
快適な環境でやりたきゃいいボード買え。
ノートPCでやってる客にも売りたきゃそもそも3Dゲーム作るな。
だいたいそんな傾向なんだから、俺が重視するのは汎用性オンリー。
DrawPrimitiveの回数をプログラム側で減らすなんて無駄。
やるならデザイナにモデルまとめさせて終わり。
あと、俺はフィルレート(前から描画)を重視したほうがよっぽどはやくなると思うけどな。
その辺との速度の比較はGDCのスライドじゃやってないでしょ?(やってる?)
0717名前は開発中のものです。
2005/04/21(木) 02:06:37ID:3TCkNM2r使えるが。
0718名前は開発中のものです。
2005/04/21(木) 02:14:26ID:3svv31MyDrawPrimitive一発でシェーダ複数使用ってできたの?
なんかプログラム複雑じゃねぇ?
てっきり
@シェーダセット!(行列とかその他もろもろ設定)
ADrawPrimitive
Bシェーダ解除!
だと思ってたけど。
まとめても一括でいけるもんなんだ・・・。
そらしらんかった。
でも、その場合ってまとめた分の頂点情報もどっからどこまでがどのシェーダでって情報も
いれなきゃいけないんだよね。位置座標、UV、バンプ、法線、色、とかどう設定すんだべか。
0719名前は開発中のものです。
2005/04/21(木) 02:27:25ID:3TCkNM2r同時にシェーダを複数使用することは出来ないよ。
ある程度の種類をまとめてDrawPrimitiveとかで纏めて描画するというだけ。
例えば敵の弾が200個だとか300個だとか出てきたら
DrawPrimitiveを1つずつ呼び出してたら塵も積もれば何とやらって奴ですよ。
普通スプライトのシェーダなんかどの弾もテクスチャ貼り付けるだけなんだから切り替える必要もないし。
こういうのは適所適材だと思うんだがな。
確かにZソートとかは効率が良いのだが…
スプライトの場合は普通テクスチャのαブレンドの関係で
順序よく描画しないと見た目が変になるからねぇ。
0720名前は開発中のものです。
2005/04/21(木) 03:21:53ID:NlkBwh5B0721名前は開発中のものです。
2005/04/21(木) 04:09:22ID:kfjpiSjxGPUとCPUの性能差がある環境ならDrawPrimitiveのくそっぷりが良くわかるよ。
0722名前は開発中のものです。
2005/04/21(木) 04:24:33ID:eTngQ0SA>>711
なんか最近こういう誤解みたいなのが多いけど、D3DXってのは
Direct3Dを使って実装された上位ライブラリで、そこで提供されている
スプライトとかの機能は全部普通のDirect3Dの機能を使って実装
されているから、ID3DXSpriteとかも中でDrawPrimitiveを呼んでいるだけだよ。
だから、DrawPrimitiveを適切に使っていれば、ID3DXSpriteより
遅くなることは絶対に無い。
0723名前は開発中のものです。
2005/04/21(木) 05:28:29ID:ZLrcnKcwFlushで一気に描画みたいな感じになってるけど、>>713の様な手法に変えたのかな?
0724名前は開発中のものです。
2005/04/21(木) 13:47:16ID:DC0sESiu0725名前は開発中のものです。
2005/04/21(木) 19:17:22ID:7TDOP59j0726名前は開発中のものです。
2005/04/21(木) 19:54:12ID:ZgTyqCoE0727名前は開発中のものです。
2005/04/22(金) 01:08:50ID:YqbwOmiM0728名前は開発中のものです。
2005/04/22(金) 02:12:51ID:ARah4tGODQNという意味の馬鹿なら困るわけで
0729名前は開発中のものです。
2005/04/22(金) 18:40:47ID:8ED9pWH4OSが最適化されたら、シェーダなんてのはなくなるよ。
みんな思ってるだろうけど、いまのシェーダは過渡的だし、
はっきりいってかなり不格好な実装だからね。
0730名前は開発中のものです。
2005/04/22(金) 18:42:07ID:8ED9pWH4厳密にはメモリ空間か?
0731名前は開発中のものです。
2005/04/22(金) 19:06:06ID:O5EH+LRu0732名前は開発中のものです。
2005/04/22(金) 19:24:53ID:UV35yiVz0733名前は開発中のものです。
2005/04/22(金) 23:59:46ID:87eHM9Ozこのスレに隔離できればなお良し。他に漏れて無駄に荒れるのがワーストケース
0734名前は開発中のものです。
2005/04/23(土) 00:28:22ID:ntQ8pk/i0735名前は開発中のものです。
2005/04/23(土) 08:03:51ID:3/WCVL7Q描画してるんですが回転をさせるにはどうすればいいですか?
テクスチャ座標をいじるんでしょうか?それとも画面上の位置を指定して
いるほうの座標?どちらですかね?
0736名前は開発中のものです。
2005/04/23(土) 08:09:22ID:UkNi8XjC/ミミミヾヾヽ、_
∠ヾヾヾヾヾヾjj┴彡ニヽ
/ , -ー‐'"´´´ ヾ.三ヽ
,' / ヾ三ヽ
j | / }ミ i
| | / /ミ !
} | r、 l ゙iミ __」
|]ムヽ、_ __∠二、__,ィ|/ ィ }
|  ̄`ミl==r'´ / |lぅ lj
「!ヽ、_____j ヽ、_ -' レ'r'/ ちょっと面白かったよ!アンダーソン君!
`! j ヽ j_ノ
', ヽァ_ '┘ ,i
ヽ ___'...__ i ハ__
ヽ ゙二二 ` ,' // 八
ヽ /'´ / ヽ
|ヽ、__, '´ / / \
0737名前は開発中のものです。
2005/04/23(土) 23:46:18ID:IDBdQOtf両方試してみるのが今後のためになると思う
0738名前は開発中のものです。
2005/04/24(日) 11:46:46ID:8qI4623kディスプレイを回転すればいいと思うよ
0739名前は開発中のものです。
2005/04/24(日) 12:21:24ID:7qnyspJJむしろ、自分が回ればすべてOK。
0740名前は開発中のものです。
2005/04/28(木) 17:02:58ID:kPgpP9f50741名前は開発中のものです。
2005/04/28(木) 19:56:08ID:8tDojadv0742名前は開発中のものです。
2005/04/28(木) 21:18:46ID:NDkFRPfa0743名前は開発中のものです。
2005/04/30(土) 15:54:22ID:T0NPnyeQ2D(DirectDrawとか)だったら、複数のコマを用意したアニメーション
のようにすればいいと思うし、
3Dで作ってるなら、4頂点を回転させた方が簡単にできて便利。
好きにすればいいと思う。
0744名前は開発中のものです。
2005/05/06(金) 08:07:21ID:G1nDPq2U0745名前は開発中のものです。
2005/05/06(金) 09:32:23ID:dNQ+cS0S要するにシャドウバッファとかでズラすことかいな?
そういうのはシェーダ担当な気がしないでもないのだが
0746名前は開発中のものです。
2005/05/06(金) 19:22:03ID:1iusvKVp0747名前は開発中のものです。
2005/05/06(金) 20:21:33ID:dNQ+cS0Sシェーダで座標変換した後でz値に適当な値を加えりゃいいだけでは?
ただ極端に値を変えると浮いた感じになるから
そこは深度バッファの精度次第になりそう。
0748名前は開発中のものです。
2005/05/06(金) 21:28:27ID:wYX9qHMx適切なオフセット値計算して射影行列に設定するってサンプルなら
GameProgrammingGems1とかに載ってた
0749名前は開発中のものです。
2005/05/08(日) 05:22:34ID:UzkGygsFちょっと面白かったよ!アンダーソン君!
0750名前は開発中のものです。
2005/05/11(水) 09:52:08ID:aZk20wULなにこれ?はやってるの?
0751名前は開発中のものです。
2005/05/11(水) 10:21:14ID:sT61sFtN0752名前は開発中のものです。
2005/05/12(木) 00:04:40ID:jj93DCJg0753名前は開発中のものです。
2005/05/12(木) 00:51:02ID:IwT5EJWT0754名前は開発中のものです。
2005/05/13(金) 18:39:56ID:6TC4SLWG透視射影の場合、マウスでクリックした場所の3次元空間への方向は
カメラの位置ベクトルとクリック先の3次元空間点の差分で求まりますが、
正射影の場合どうやってマウスの方向を求めるのでしょうか?
0755名前は開発中のものです。
2005/05/21(土) 00:07:16ID:z/gEVygN0756名前は開発中のものです。
2005/05/26(木) 01:30:24ID:eUP2N7f1・main.obj : error LNK2019: 未解決の外部シンボル _D3DXCreateTextureFromFileExA@56 が関数 "long __cdecl InitD3d(struct HWND__ *)" (?InitD3d@@YAJPAUHWND__@@@Z) で参照されました。
・main.obj : error LNK2019: 未解決の外部シンボル _Direct3DCreate9@4 が関数 "long __cdecl InitD3d(struct HWND__ *)" (?InitD3d@@YAJPAUHWND__@@@Z) で参照されました。
こういうリンカエラーってどうやって解決したら良いの?
0757名前は開発中のものです。
2005/05/26(木) 01:57:49ID:tlxf709Nライブラリをリンクしてないだけだろ?
0758名前は開発中のものです。
2005/05/26(木) 19:18:37ID:eUP2N7f1プロパティから設定するの忘れてた。
ありがとう
0759名前は開発中のものです。
2005/06/02(木) 23:38:17ID:taMZnyW/0760名前は開発中のものです。
2005/06/04(土) 11:36:31ID:5zu0k2nb0761名前は開発中のものです。
2005/06/04(土) 12:16:27ID:s3E6qlk9予定では2005AUGUSTになってるが遅れるのかも
0762名前は開発中のものです。
2005/06/04(土) 14:58:20ID:5zu0k2nb二ヶ月ごとに出すんじゃなくて、今度はAUGUSTなのか
0763名前は開発中のものです。
2005/06/04(土) 15:50:14ID:vn3r9MGU0764名前は開発中のものです。
2005/06/04(土) 16:05:35ID:5zu0k2nb自己紹介乙
0765名前は開発中のものです。
2005/06/04(土) 19:19:36ID:b277QKnLつまり、1ピクセル当りに以下の処理をしたいわけ。
OUT.R =OUT.G = OUT.B =(IN.R + IN.B +IN.G ) /3;
0766名前は開発中のものです。
2005/06/04(土) 20:01:46ID:8WR3BEcottp://www.itmedia.co.jp/anchordesk/articles/0404/02/news069.html
ちなみに(IN.R + IN.B +IN.G ) /3では正しくグレースケールにならないよ
0767名前は開発中のものです。
2005/06/04(土) 20:45:57ID:b277QKnL0768名前は開発中のものです。
2005/06/04(土) 20:56:47ID:Jxi5RktWうほっ、凄い参考になるなあ
職人技っぽくてステキ
0769名前は開発中のものです。
2005/06/15(水) 23:48:47ID:VibO27At■ このスレッドは過去ログ倉庫に格納されています