1 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 21:03:32 ] ※回答する人も、質問する人も必ず読んでください これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。 【C++】 DirectX初心者質問スレ Part21 【C】 pc11.2ch.net/test/read.cgi/tech/1229078397/
2 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 01:42:24 ] ttp://www1.axfc.net/uploader/File/so/18984.zip ポリゴンを表示したのですが、 実際に画像を読み込んだサイズで表示できません。 (画像が256x256なら表示も256x256) どこの設定が悪いのでしょうか? それと上下左右のキーで1ピクセル単位で動かそうと しているのですが、こちらも上手くいきません。 どういう風にすれば良いのでしょうか?
3 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 02:31:15 ] 頂点フォーマットはD3DFVF_XYZRHWってことでいいのかい?
4 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 07:51:47 ] ttp://www1.axfc.net/uploader/File/so/18996.zip >>3 頂点フォーマットはD3DFVF_XYZではダメなのでしょうか? z の指定がおかしい事に気づき、1ピクセル単位で動かすのは可能になりました。 ただ未だに実際のサイズでの表示が上手くいきません。 現状では256x256の場合は231x231で表示されてしまっています。
5 名前:デフォルトの名無しさん [2009/02/28(土) 11:44:28 ] directx9.0bがインストールされているPCって何年前くらいのですか? 学校のパソコンが全部9.0bなのでD3DX関数を使ったアプリを起動すると d3dx_xx.dllがありませんと出ます
6 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 11:50:05 ] >>4 ポリゴンの位置座標をワールド空間で扱うなら、サイズもワールド空間に変換しないとだめね。 (スクリーン上での幅が、ワールドではいくつになるか計算。) 元々のポリゴンの幅が2.0(-1.0〜1.0)だから、(ワールド幅 / 2.0)倍ね。 D3DXMATRIXA16 matMod; D3DXVECTOR3 p1, p2; CalcScreenToWorld(&p1, 0, 0, 0, 640, 480, &matView, &matProj); CalcScreenToWorld(&p2, 256, 256, 0, 640, 480, &matView, &matProj); float worldWidth = p2.x - p1.x; float worldHeight = -(p2.y - p1.y); D3DXMatrixScaling(&matMod, worldWidth / 2.0f, worldHeight / 2.0f, 1.0f); matScale = matMod * matScale; 単に等倍表示しただけなら、正射影にすれば、CalcScreenToWorld とかいらなくなるわよ。 D3DXMatrixOrthoOffCenterLH( &matProj, 0, vp.Width, vp.Height, 0, 5.0f, 100.0f ); D3DFVF_XYZRHW でもできるけど、SetTransform とか使えないモードだから注意ね。
7 名前:デフォルトの名無しさん [2009/02/28(土) 11:54:19 ] d3dx9_37.dll に入っている代表的な関数は何がありますか?
8 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:23:38 ] 関係ない D3DX関数を使っていると November2007でコンパイルしている場合d3dx9_37.dllが必要 August2007でコンパイルしている場合 それより後にでているd3dx9_37.dllがあったとしてもダメでd3dx9_35.dllが必要
9 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 12:43:31 ] D3DXがスタティックライブラリだった最後のバージョンってOctober2004くらいだっけ? どうしても気になるならそっち使えばいいんじゃね
10 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 13:16:10 ] >>6 拡大率の方にも必要だったのですね、この方法で出来ました。 ありがとうございます。 拡大回転もやりたいので正射影ではダメなんです。 それでもう一点気づいたのですが、 CalcScreenToWorld使ってるとX軸やY軸の回転で、 見えない所が出てしまうんですね…。 スクリーン座標や拡大率を保ったまま回転させて、 画像の全範囲を表示する方法はあるのでしょうか?
11 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 13:16:59 ] >>9 December2004もスタティックでいけました。
12 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 13:55:21 ] >>10 ポリゴンが欠けるのは、回転した部分がニア平面より手前に来るからね。 CalcScreenToWorld の引数 fZ を それぞれ 0.5f にすればとりあえず直るわよ。
13 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 14:25:00 ] >>12 なるほど、0か1かでしか考えてなかったのがダメだったのですね。 本当に何から何まで本当にありがとうございます。 おかげさまで思い通りの挙動をさせる事が出来ました。
14 名前:デフォルトの名無しさん [2009/02/28(土) 16:17:58 ] Y軸回転のみするモデルに穴があり、そこだけヒットを無くし 穴から落ちるような処理を作りたいのですが 当然、穴も回転するのですが 回転後の穴の座標を取得するにはどうすれば良いのでしょうか?
15 名前:デフォルトの名無しさん [2009/02/28(土) 16:20:15 ] すみません、Hitの方法は
16 名前:デフォルトの名無しさん [2009/02/28(土) 16:22:56 ] また間違えて書きこんでしまった……。すいません。 Hitの方法は、Y軸回転のみするモデルはAABBであたり判定を行い 穴の部分は球でのあたり判定を行うつもりです。 2重の当たり判定を行い、穴から落ちるような処理を作ろうとしています。
17 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 17:37:10 ] 球の中心座標をモデルのローカル座標に直して モデルと同じ回転行列を掛けるだけじゃ?
18 名前:13 mailto:sage [2009/02/28(土) 22:20:37 ] 度々すみません。 回転や拡大の中心座標を変えたいのですが、 ポリゴンの場合どの部分がそれに当たるのでしょうか?
19 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:29:32 ] >>16 は解決したわけ?
20 名前:13 mailto:sage [2009/02/28(土) 22:40:39 ] >>19 一応念の為、>>16 は私ではないです。
21 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:30:05 ] 0が中心位置
22 名前:デフォルトの名無しさん [2009/03/01(日) 09:52:34 ] >>19 返事が遅れました。申し訳ありません。 >モデルのローカル座標に直して という意味がわかりません……。 しかし回転、移動の変換行列をかけてみたら解決できました。 ありがとうございます! もうひとつ質問なのですが、 この場合って、モデルのローカル座標の実際の数値を調べて、 中心位置を出さなければなりませんが、 他にスマートな方法はあるのでしょうか? あたり判定用のモデルを読み込むとかですかね?
23 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 10:10:35 ] データの中身をみないで結果が割り出せるとは、どんな魔法のことだ?
24 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 11:53:16 ] モデルを作った人間ならどこが中心かなんか分かるだろう もしくは、この位置に穴を開けてくれとプログラマーがデザイナーに頼むもの
25 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 14:53:06 ] 二つあるマトリクスから、その二つの回転角度を得るのってどういう計算すれば取る事出来ますか? スケールはないものと考えます。 宜しくお願い致します。
26 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 14:57:16 ] 二つのベクトルが成す角度の求め方なら昔高校でやったような気がするけど思い出せない……
27 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:56:10 ] >>25 // 行列が2つあるとしたら D3DXMATRIX m, n; D3DXMatrixRotationY(&m, D3DXToRadian(20)); D3DXMatrixRotationY(&n, D3DXToRadian(50)); // m から n への回転行列 ( inv(m)*n ) を作って、 D3DXMATRIX im, imn; D3DXMatrixInverse(&im, NULL, &m); imn = im * n; // それをクォータニオンに変換して D3DXQUATERNION q; D3DXQuaternionRotationMatrix(&q, &imn); // 回転角を求めれば終わり。 D3DXVECTOR3 axis; float angle; D3DXQuaternionToAxisAngle(&q, &axis, &angle); angle = D3DXToDegree(angle); // ほぼ30ね。
28 名前:27 mailto:sage [2009/03/01(日) 17:27:43 ] というか、m,nをそれぞれクォータニオンにした方が速いわね。 D3DXMATRIX m, n; D3DXMatrixRotationY(&m, D3DXToRadian(20)); D3DXMatrixRotationY(&n, D3DXToRadian(50)); D3DXQUATERNION qm, qim, qn; D3DXQuaternionRotationMatrix(&qm, &m); D3DXQuaternionRotationMatrix(&qn, &n); D3DXQuaternionInverse(&qim, &qm); D3DXQuaternionMultiply(&q, &qim, &qn); D3DXVECTOR3 axis; float angle; D3DXQuaternionToAxisAngle(&q, &axis, &angle); angle = D3DXToDegree(angle);
29 名前:25 mailto:sage [2009/03/01(日) 21:24:13 ] >>27 有難う御座います。
30 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:56:49 ] DirectMusicでBGMを流すと同時に効果音を鳴らすってできますか? 今やっているのですがどうも片方しかできなくて。。。
31 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:03:18 ] HRESULT CDXMusic::PlayMusic(DWORD index) { // 演奏中であれば戻る if(m_performance->IsPlaying(m_segment[index], NULL) == S_OK) { return E_FAIL; } m_performance->PlaySegmentEx(m_segment[index], NULL, NULL, 0, 0, NULL, NULL, NULL); return S_OK; } 楽曲を3つ読み込ませて再生させているのですが 1を再生中に2を再生すると1が消えてしまいます 原因エスパーしてもらえませんか;;
32 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:16:13 ] 何故まずヘルプを読まない? 使い方を確認しない?
33 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:42:15 ] すみませんヘルプ読みました 要するにDirectMusicは プライマリ セグメントは、一度に 1 つだけ演奏できる。再生のためにプライマリ セグメントを挿入するときは、演奏中のセグメントが終わった後でそのセグメントを演奏するように指定したり、現在のプライマリ セグメントを置き換えたりすることができる。 一方、セカンダリ セグメントは現在のプライマリ セグメント上で演奏され、任意の数のセカンダリ セグメントを同時に演奏できる。 DirectSoundはDirectMusicみたいにしなくても普通に同時に再生できるってことでしょうか? (入力フォーカスが移動する際に、アプリケーションはバッファの再生と停止を繰り返す必要はない。)
34 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 06:50:45 ] >>33 DirectSoundは波形を直截保持しているからDierectMusicのように面倒なことをしなくても 同時に再生できるよ。
35 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 11:17:18 ] HLSLでシェーダを書いているのですが、このポリゴンを「加算合成」するのか「半透明描画するのか」はシェーダ側では決められないのでしょうか? ついで >>9 >>11 スタティックな頃には、Xファイル周りで致命的なバグがあるのでやめたほうがいいです でかいXファイルを読むとメモリー破壊されます(DirectX付属のサンプルソースですら)
36 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 12:04:45 ] >>35 頂点単位で?それともテクニック単位で?
37 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:26:09 ] >>36 お返事ありがとうございます。 どちらでも構いません。 できれば双方教えていただいてよいでしょうか?
38 名前:デフォルトの名無しさん [2009/03/03(火) 08:50:33 ] s
39 名前:デフォルトの名無しさん [2009/03/03(火) 09:03:47 ] DirectMusicでoggファイルを複数同時再生する所まで成功しました テストでDirectMusicクラス(oggをwaveに変換してDirectMusicで再生)を 統括しているクラスをコンストラクタ・デストラクタを繰り返していたのですが、 20回に1度くらいの割合でデストラクタ時に落ちてしまいます デバックしたのですが appleloader.bbsnow.net/pic_loader/nomal/html/1_12.html のような結果が出て調べたのですがお手上げです・・・ ソース上げたのでよろしければ見ていただけませんか www7.uploader.jp/dl/inoguma/inoguma_uljp00003.zip.html GameLib.h _Lib_DXMusic.cpp GameTitle.cpp に書いてあると思います よろしくお願いします
40 名前:35 mailto:sage [2009/03/03(火) 11:57:44 ] 昨日から>>35 の件について探し回っているのですが、それっぽいものが一向に見つかりません。 どなたかわかる方いらっしゃいましたら、アドバイスお願いいたします
41 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 12:52:25 ] テクニック内でレンダリングステートを変更して 半透明用テクニック、加算合成用テクニックを作るとかじゃだめなの?
42 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 13:20:39 ] >>41 お返事ありがとうございます。 HLSLのテクニック定義の部分でレンダリングステートが変更できるのですか? その方法が、まさに知りたかったものだと思われます。 technique Test { pass P0 { VertexShader = (vsTexture); PixelShader = (psTexture); } pass P1 { VertexShader = (vsNoTexture); PixelShader = (psNoTexture); } } 現状こんな書き方なのですが、レンダリングステートを書き換える記述法(が書いてあるMSDNのページとかでもいいです)を教えていただけないでしょうか。 よろしくお願いします
43 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 13:23:26 ] 失礼しました。>>42 です。 テクニック内でやればいいんじゃないか?というのをヒントにしてMSDNを 探し回ったところ、即座に msdn.microsoft.com/ja-jp/library/cc373171.aspx# こういうページを発見することができました。 ありがとうございました。
44 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 14:06:19 ] msdn.microsoft.com/ja-jp/library/cc372280.aspx 自分もその辺やろうとしてたんで探してみたけど、これとか?
45 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 15:41:42 ] >>44 素晴らしい、それでそれです。 一覧表がないなーと思いながら、C#版とかで「どうやらC#版の設定プロパティと名前が一緒らしいな」とか推測しながらいじってましたw これで、描画周りが完全にプログラムから切り離せました。 嬉しい。
46 名前:デフォルトの名無しさん [2009/03/03(火) 16:24:45 ] (MDXとXNAは過疎化が酷いのでこちらで質問させてください。) MDXを勉強中のプログラマ(C++/C#)です。今は土日の趣味でやってます。 MDXは情報が少ないため、UnmanagedかXNAに移行を考えていまが以下の点で悩んでいます。 Unmanage C++がめんどい XNA フレームワーク導入めんどい 出来ればMDX2.0リリースか、XNAがOS標準搭載にならないかと・・・ Xbox用途以外ではUnmanagedに進むのが妥当なのでしょうか? 同じような経験された方、最終的にどうされましたか?
47 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 16:28:09 ] いや、Unmanagedの話ばっかりしてるここで聞かれてもw 別によっぽどカリカリにチューンしたゲームを作りたいってことでもなきゃ、XNAでいいんじゃない? ただ、それを不特定多数に売ったり、配ったりするつもりなら、XNAの実行環境のインスコを促すのは敷居がかなり高いとだけ。
48 名前:46 [2009/03/03(火) 16:37:06 ] >>47 早々のレスどうもです。 やっぱりXNAは敷居高いですよね。OSというかDirectXに標準搭載されれば敷居が低いのですが・・・ どうもありがとうございます。自分もUnmanaged方針に変えます。
49 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 20:56:10 ] 両方やればいいんだよ 楽しいぞ
50 名前:46 [2009/03/03(火) 21:39:14 ] >>49 いや〜個人的にはそうなんですよね。C++/CLIでUnmanaged。 ただ、将来的に業務用ツール用にDirectX検討しているんですが、 フレームワーク導入は敷居が・・・(.net or vistaですら厳しい!DirectXって何って感じです。) 元Javaな人にはC#しか・・・ なんでもないです。愚痴ってすいません。
51 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 23:19:32 ] 俺もツール作っててインタフェースはDirectXだけど、C#+MDXでやってる。 MDX自体は情報少ないけど、DirectX/C++からの脳内翻訳が効くし、 メモリリーク云々を考えるとマネージは外せないという結論に至った。 どうしても情報が無くて困った時はグーグルのコードサーチを使うといいよ。 web検索で2件とかしかでてこないような情報でもそれを使用したソースが ズバリでてくる。ただライセンスには注意な。
52 名前:46 [2009/03/03(火) 23:30:31 ] >>51 レスサンクスです。 私も苦労の末(?)Unmaged脳内変換が出来るようになりました。 たいていは同じような書き方なのでなんとか。ほんと無駄な技術。 メモリリーク面倒ですよね。やっぱりC#楽ですよね・・・ ありがとうございます。けど10&11を見据えてUnmanagedがんがります。
53 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 00:52:59 ] そういえば.NETのコードは逆コンパイルできるから気を付けないといけない ネットで見つけてきたコードは高確率で訴訟用に公開してる。このへんは誰でも気づくんだけど 注意しなきゃいけないのは元コードを自演転用で無料公開してる場合があるということ
54 名前:デフォルトの名無しさん [2009/03/04(水) 07:56:15 ] >>52 メモリリークなんて起きるときは大抵どっかがおかしい おかしいのに無理に進むと余計におかしくなる 別にメモリリークを解決してくれてるわけじゃなくて 単に落ちないだけだろ
55 名前:デフォルトの名無しさん [2009/03/04(水) 08:11:47 ] c#はusingで破棄してくれから便利。
56 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 09:17:40 ] >>52 ちょっとDirectXと離れるかもしれんが shared_ptr CComPtr を使った上でメモリーリークするのか? この2つを使えば、メモリーリークなんて(循環参照くらいしか)ないだろう。 もし何かミスって出したとしても、DirectXまわりはデバッガがリーク量を丁寧に出してくれるし 通常のメモリーについても marupeke296.com/TIPS_No7_SearchMemoryLeak.html これで超簡単表示 C++はメモリー管理が〜とかいう人のほとんどは、shared_ptrとかそういうほぼ標準ともいわれているライブラリ群を知らないだけに思える
57 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 09:28:19 ] >>56 ほぼ標準と標準の間には大きな隔たりがあるんだぜ。 まずboostのインストールをしなきゃならん。
58 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 09:40:03 ] boostのインスコって、いまや公式いってEXEファイルDLしてきて、ダブルクリックすれば設定含めて全部終わるんだぜ それが嫌だとしても、shared_ptrもCComPtrもテンプレートだから、単体ヘッダファイルを持ってきてincludeすればおしまい もちろん標準とほぼ標準には雲泥の差があるが、リークが嫌なら5分くらいの手間はかけようよw
59 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 10:06:08 ] リークする貧相なプログラム技術を放置したままのほうがよっぽど危ない。 shared_ptrも万能ではないしまずはリークの検出修正が出来るように腕の磨くべき。 主観的にはboostみたいな非標準のものは出来る人間が楽をするために使うべきだと思う。
60 名前:デフォルトの名無しさん [2009/03/04(水) 11:28:15 ] >> 39 oggをwaveに変換してセカンダリバッファにデータに渡したあと 一時的なデータを保持していた変数をSAFE_DELETE()してないからメモリがスタックしてるんじゃないか?
61 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:48:56 ] >>59 みたいな人間が、C++使いとして恥ずかしいです…。 そんな「C++を使いたいなら、まずは基礎力をもっとつけろやwwww」みたいな排他的な姿勢はアホくさい。 C++自体、メモリーリークするわ、GCないわ、スレッドが言語標準じゃないわと「今どきの言語」に比べたら貧弱。 継承されるクラスのデストラクタにはvirtualをつけるのがお約束!なんていうくだらない「お約束」も大量にある。 それを「使う人間の基礎力が〜」とかに転嫁してどーする
62 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:52:15 ] ここ質スレなのにすぐスレ違いの自己主張を始めるやつが現れるよな
63 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:58:48 ] 初心者スレで、初心者に「お前のプログラム技術が貧弱だからだ」とか言っちゃうんだもんな それともDirectXのみ初心者で、プログラム技術自体は高い人間しか質問しちゃいけないのかっていう
64 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:10:35 ] だったらお前のスタンスで好きに回答しろ。 ただし別のスタンスで回答する奴もいる。 いちいち噛み付いて迷惑するのは質問者なんだよ。
65 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:11:36 ] 言語なんか個人の自由 技量が無いなら使い手側に何のメリット無い、より高水準な言語を使っていればいい
66 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:27:34 ] Direct3Dにスプライトなど無い
67 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:39:17 ] つまらん! お前の話はつまらん!!
68 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:54:51 ] カーソルの移動量を調べたいんだけど APIの機能でカーソルの位置を調べて前のフレームとの差を取る方法だとカーソルが画面の端に来た時に移動しなくなって困るので DirectInputを使おうと思ってるんですが、これAPIでは解決できませんか?
69 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 14:13:01 ] カーソルの絶対座標はどうでもいいのか? 1フレームごとにSetCursorPosで画面の真ん中に移動させれば大体の用は果たすと思うが。
70 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 14:27:34 ] >>69 ありがとうございます その方法でやってみます
71 名前:デフォルトの名無しさん [2009/03/04(水) 14:37:06 ] toruweb.web.fc2.com/dm/2.html このサイトにあるDirectMusicによるogg再生のプログラムで oggからwaveに変換した後セカンダリバッファに書き込むのですが MidiとWaveの再生 / 終了処理と同じ処理をし、確保したメモリを解放します。 /* #define SAFE_RELEASE(p) if(p){p->Release();p=NULL;} */ SAFE_DELETE( lpWaveData ); とあるのですが waveに変換してセカンダリバッファに書き込んだ後SAFE_DELETE()ではいけないのですか? 実際になってみたら落ちました
72 名前:デフォルトの名無しさん [2009/03/04(水) 14:38:14 ] 訂正:実際に書き込んだ後すぐにSAFE_DELETE()したら落ちました
73 名前:デフォルトの名無しさん [2009/03/04(水) 15:41:08 ] ぶっちゃけストリーミング再生実装しないと 容量多いファイル再生すると落ちるよ・・・ そんなんも知らないの?
74 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 16:10:40 ] ソース
75 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 16:20:42 ] GPUを使ってサウンドエンジンを作るってどうやるの?
76 名前:デフォルトの名無しさん [2009/03/04(水) 20:42:11 ] fxc.exeを使ってfxファイルをデバッグしてるんですが、コマンドプロンプトが使いにくいです。 このスレの方々はどうやってますか?
77 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:03:05 ] ttp://msdn.microsoft.com/ja-jp/library/dd188551.aspx このEffectEditに相当するツールが、最新のSDKには入っていない気がするのですが 別名になって存在するのでしょうか? それとも古いSDKからもってこないとダメでしょうか?
78 名前:46 [2009/03/04(水) 23:09:18 ] 46です。 皆さん色々アドバイスありがとうございます。 Boostとか非標準は会社での導入は難しいですね・・・規約を含めた運用変えるのに年単位でかかります。 個人ならOKでも、チームや部門では色々大変なのです。 9x,NT->2000,XP->2003sとかですでにてんやわんやなんで。 (ある程度の規模の会社はどこも同じとおもいますがw) もしかして純粋なソフトウェアハウスさんなら違うのかな? CComPtrは知らなかったので調べてみます。 激しくスレチになるでこれで失礼します! 今日は雪がまた降って大変でした。
79 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:35:08 ] DirectXを使ったゲームを作るのに初心者(BCBで簡単なアプリが作れる程度)にとって最適な開発環境って何ですか? VCとかVBとかBCBとか。
80 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:38:10 ] VC+イルリヒト
81 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:55:52 ] VC++ですか?>>80 値段的にもランクがあると思うんだけど、なんでも大丈夫かな? 高いのは購入できないので。
82 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:01:02 ] >>21 その 0 が頂点なのだと理解するのに時間がかかりました。 教えて下さりありがとうございます。 www1.axfc.net/uploader/File/so/19255.zip それでまた質問なのですが、 分割した画像をポリゴンで並べたら境目が出来てしまいました。 これを綺麗に表示するにはどうしたら良いのでしょうか?
83 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:23:30 ] >>81 Express editionでぐぐれ。 無料版がある。 つーかBCBは今となっては古いマイナー標準準拠度悪の三重苦なので、 DirectX抜きにしてもさっさとVCに乗り換えた方がいい。 ちなみに言語にこだわらないならたぶんC#とかの.NET系言語から呼び出す方が楽だと思う。
84 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:29:49 ] >>83 .NETって作ったアプリをインストールする環境にもフレームワークのインストールが必要ですよね? ランタイムは極力不要な状態にしたいんだけどC#も似たような感じかな? BCBはダメなのか。扱いやすいから気に入ってたんだけど残念。
85 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:34:21 ] >>82 テクスチャフィルタが掛けてあるから縁にアンチエイリアスがかかってる g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_POINT ); g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT ); g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT ); としてフィルターを切るか これだと拡大時に画像が荒くなるののでそれが嫌なら元画像にもよるけど テクスチャアドレッシングモードを g_pd3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP ); g_pd3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP ); とすれば消えるかもしれない プロジェクトが入ってないからコンパイルしてないので結果は自分で見てね
86 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:47:34 ] >>85 こんな方法があったとは…、まさにビンゴです。 テクスチャの端を使わなかったり色々やってみたのですが、 上手くいかなかったので本当に助かりました。
87 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 03:31:51 ] プロジェクトを入れないならソースの頭に #pragma comment( lib, "dxerr.lib" ) #pragma comment( lib, "dxguid.lib" ) #pragma comment( lib, "d3d9.lib" ) #if defined(DEBUG) || defined(_DEBUG) #pragma comment( lib, "d3dx9d.lib" ) #else #pragma comment( lib, "d3dx9.lib" ) #endif #pragma comment( lib, "winmm.lib" ) と入れとくと見てくれる率があがるかもしれない
88 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:14:30 ] DirectX9.0SDKの最新を使ってPixelShader1.1などを使おうとすると、 ps_1_x is no longer supported というエラーが出てしまいます。 DirectX9.0ではすでにps1.xがサポート外になっているのは知っているのですが、 作っているゲームは古いグラボでも動けるようにしたいものです。 この場合、 PixelShader = compile ps_2_0 と書いたHLSLファイルと PixelShader = compile ps_1_1 と書いたHLSLファイルを両方用意しておかなければならないのでしょうか?
89 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:46:44 ] 古いので動かしたいならシェーダーを使わないのが正解だろう。
90 名前:デフォルトの名無しさん [2009/03/06(金) 01:10:12 ] ID3D10EffectPass::GetDesc(pDesc) でE_FAILが返り、pDescに何も代入されずに返ってきます。 この場合どういう原因が考えられるでしょうか?
91 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:17:48 ] >>88 D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY
92 名前:90 [2009/03/06(金) 01:49:17 ] D3DX10CreateEffectFromFile()でFXファイルを読み込んで、ID3D10Effectを作りました。ここではS_OKが 返ってます。その後D3D10_EFFECT_DESCを取得して中身をみてみると全てのメンバーが0でした。FXファイルを fxc.exeでコンパイルしてみると、mainエントリーがないといわれます。なので文法的には問題ないと おもっているのですが、、 こういう場合どうすればよいでしょうか?
93 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:52:12 ] なんか.xのアニメーションってやけにむずかしくね?
94 名前:90 [2009/03/06(金) 02:36:10 ] 一応解決したようです。 FXファイルのエンコーディングに原因があったようなのですが、よくわかりませんでした。 同じ内容のFXファイルを用意して、日本語のコメントを全部消してセーブして読み込ませたところ 問題なく動作しました。それまでは日本語のコメントが山ほど入っており、それをセーブする際には ユニコードでセーブするか?と聞かれてYESを選択してました。 これからはFXファイルに日本語コメントを使わないようにしようと思いますが、いったんFXファイルを ユニコードでセーブした後変更する方法が分からないのと、いまいちなにが問題なのか良く分からないので、 どなたか理由がわかる方いらっしゃったら教えてください。 ありがとうございました。
95 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 10:01:27 ] 日本語コメントなんて普通に使ってるが・・・
96 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 11:57:28 ] 全角空白じゃね?
97 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 14:16:20 ] >>91
98 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 14:18:41 ] 97の誤爆失礼しました。 >>91 ありがとうございました。 情報があまりになく、英語MSDNまで調べにいくことになりました。日本語MSDNにすらのってないですね。 これを考えると、常に「なるべく最新のPS、VSとしてコンパイルしたい」という気がしますね。 同じコードでも、ps11としてコンパイルするのと、ps20としてコンパイルするのでは吐かれたコードの効率が違いましたし。 そういうオプションもないかな?と思い探してみましたが、無いようです。 みなさんはVS20, PS20の決め打ちでHLSLを書いているのでしょうか?
99 名前:デフォルトの名無しさん [2009/03/07(土) 02:22:42 ] DirectX10のコードを書いているのですが、ウィンドウのクライアント領域を全く なくしてしまうと Device->ClearDepthStencilView() というコードが例外を出します。ID3D10DepthStencilViewをReleaseしようとしても だめなようです。ID3D10DepthStencilViewをReleaseする前にチェックしないとだめなことって どんなことがあるでしょうか?
100 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 02:28:10 ] ものすごく簡単な事だったらすいません。 家のパソコンはネットにつながっていないのですが、 買ってきたゲームがDirectX9以上が必要と書いてありました。 漫画喫茶で落としてインストールしようと思ったんですができません。 何か方法ありますか?
101 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 02:46:13 ] >>100 スレ違い 通常のインストーラはWebインストーラなので DirectX End-User Runtimes (November 2008)を漫画喫茶で落として来い もう二度と来るなよ
102 名前:デフォルトの名無しさん [2009/03/07(土) 02:46:36 ] 方法あります 本体をおとしてください
103 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 05:41:09 ] Xファイルのアニメーションについて詳しく書かれてるサイトある?
104 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 09:53:28 ] MSDNのサイトに書かれています
105 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 10:07:31 ] 理論だけならまるぺけが詳しい ただしソースは無い(あるけど記事に沿ったものはない) そこを読みながら 結局SDKのサンプルのSkinnedMeshを1ステップずつデバックしながら どこで何をやってるのか地道に理解するのが一番の早道
106 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 11:15:44 ] お手軽に動くソースを欲しがるから難しく感じるんだよ どの順番でどの変数に何が読み込まれているのかをじっくり追っていけば そんなに難しいもんじゃない
107 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 12:11:27 ] HLSLについてなんですが、固定シェーダ機能のアルファ設定を AlphaBlendEnable = TRUE; SrcBlend = SRCALPHA; DestBlend = INVSRCALPHA; このようにした場合、色成分はアルファ値に応じた混合がなされるのは分かるのですが、 混合結果後のアルファチャンネルの値はどのようになるのでしょうか? 現在のレンダリング結果に対し、過去のレンダリング結果の蓄積をアルファ合成し続ける フィードバックエフェクト(残像っぽくなるやつで過去のアルファ値は0.5f〜0.9f)をしていると、 もともとがアルファ値1.0fのピクセル同士の混合後のアルファ値が1.0fではなく、少し低くなって 0.8fかそこらへんに下がってしまい、若干暗い絵になってしまいます。
108 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 12:39:48 ] α値がどうなるかはSetTextureStageState()で設定したとおりになる。
109 名前:107 mailto:sage [2009/03/07(土) 13:11:59 ] >>108 アプリ側で設定してやるんですね。 ありがとうございました。
110 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 15:36:04 ] とあるゲーム作成の参考書どおりに設定を行ったところ 1>LINK : fatal error LNK1104: ファイル 'd3dx9.lib' を開くことができません。 といったエラーが表示されます サブシステムのパスは通しています ・インクルードファイル C:\Program Files\Microsoft DirectX SDK (April 2007)\Include C:\Program Files\Microsoft Platform SDK\Include ・ライブラリファイル C:\Program Files\Microsoft DirectX SDK (April 2007)\Lib C:\Program Files\Microsoft Platform SDK\Lib ちなみにApril 2007となっているのは雑誌と同様にしているからです
111 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 15:40:21 ] >>110 実際にそのフォルダ見てみればいいじゃない。 環境によるかもしれないが、その下にx86って無いか?
112 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 16:09:55 ] ちょっと質問です。 Microsoft DirectX SDK (November 2008)、DirectX9 を使って開発を行っています。 ところで、作ったアプリを動かすための必要環境を、「9.0c 以上」 ではなく 「9.0 以上」 まで下げたいのです。 どうすればこのアプリは、確実に 「必要環境: 9.0 以上」 と言えるようになるのでしょうか? たとえば、ピクセルシェーダ 3.0 を使ってしまうと 9.0c が必須になりそうなので 2.0 を使ったり、などはしています。 ですが、他の機能となると、どこまで使っていいのかが分かりません…。 SDK のバージョンを落とせばいいのかな?とも思ったのですが、どこまで落とせばいいのかも分からないし、 古すぎる SDK は簡単には手に入らないので、これも何か違っている気がします。 よろしくお願いします。
113 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 16:12:34 ] PS2.0でも9.0cが必須なんだが・・・。
114 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 16:58:27 ] ぶっちゃけ、古いSDKで開発するしかない 探せば簡単に見つかる
115 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 16:59:45 ] DirectX7お勧め。
116 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 17:21:49 ] 古い SDK しかないですか…それっぽいのが見つかったので試してみます。 ありがとうございました。
117 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 17:33:12 ] みんな、Microsoft DirectX SDK (November 2008)のNovember 2008の部分が違うものを 3つも4つもインストールしてるんだぜ・・・
118 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 17:34:55 ] それ以前にどのOSとSPが、DirectXの下限バージョンなのかきちんと調べたのか? ターゲットOSを明確にした上での選択なのか甚だ疑問。
119 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 17:44:06 ] つーかDirectX9世代なら気にせずwebインストーラー添付して「入れてね☆」とか出しとけばいい。 下のサポートを考慮するならDirectX7やDirectX8を考慮するべし。
120 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:02:25 ] DirectX9cならインストーラなど付けなくても、 WindowsXPのSP2以降と明記しておけばいいだけ。 それ以前なら既にセキュリティパッチが打ち止めになっていて、 SPすら入れない奴をそもそもサポートする必要性もない。
121 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:31:22 ] こんにちは、識者の方々、哀れな初心者をお助けください。 <聞きたいこと> 環境によって、表示される画像が1ドット多く表示される32ピクセル表示する命令なのに、33ピクセル表示される感じ。 なぜ、これがおこるのか? この現象の回避方法は? <詳細> Vistaで2Dゲームを作成しています。 512×512のビットマップのうち、座標(0,0)から32×32のサイズの部分が画面の背景で、その32×32のサイズを画面に繰り返し描画しています。 開発マシン(Vista:解像度1280×800)では正常に表示されますがテストマシン(XP:解像度1024×768)で表示すると1ピクセル余計に画像が表示されていてしまいます。 開発はDiretX9で、表示はID3DXSprite::Drawでおこなっています。 下みたいな感じ g_pSprite->Begin(); g_pSprite->Draw(pTexture, &rect, //表示範囲 &D3DXVECTOR2(scale_x,scale_y), //拡大率 NULL,g_rotation, //回転 &D3DXVECTOR2(F(x),F(y)), D3DCOLOR_XRGB(255,255,255) ); g_pSprite->End(); 変数とかは察してください(笑) もし、なにかお分かりの方がいらっしゃれば、ぜひ、ご教授願います。よろしくお願います m(..)m
122 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:43:42 ] まずそれ以前に、SDKのヘルプに乗っているチュートリアルはすべて終わらせたのか?
123 名前:112 mailto:sage [2009/03/08(日) 18:53:21 ] いろいろとご指摘ありがとうございます。 諸事情で DirectX9 は是非使いたいのです。 Windows2000 以降対応にしたいのですが、2000 には初期状態で 7.0 しか入っていないので、DirectX のインストーラは同梱させる予定です。 ただ、2000 には 9.0c はインストールできないと聞いたことがあるので、9.0 で動くようにしたかったのです。 このあたりの情報は検索してもなかなか見つからなくて…正直自信ないです。
124 名前:121 mailto:sage [2009/03/08(日) 19:02:06 ] >112 一応みました。 ぐぐったりもしましたが、原因が分からず 質問させていただきました
125 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 19:16:47 ] >>123 9.0cは2000どころかD3DXのバージョンによっては98SEとかでも動くんだが。
126 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:52:46 ] 2000でインストールできないってそれ割れOSなんじゃないの? 2kのは大分出回ったみたいだし
127 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:56:59 ] >>124 見るんじゃなく、一つ一つ動かして動作を確認しろ。 話はそれからだ。
128 名前:121 mailto:sage [2009/03/08(日) 22:07:38 ] >127 ひとつだけ、教えてください。 わたしが、示したコードはおかしなところがありますか? わたしはおかしくないつもりだったのですが、 わたしのコードがおかしいから、動作を確認しろと アドバイスをいただいているのかどうか、気になっています。
129 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 22:44:49 ] 1部じゃなくて全ソース晒して方がはやそう たぶん描画部分以外の問題の希ガス あとID3DXSpriteは内部でレンダリングステートや テクスチャーステージを勝手に変更してたりするから実際に見ないとたぶん分からん
130 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 00:50:29 ] >>111 ありがとう
131 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 01:21:33 ] >>128 スクリーンショットとって大きさ計ってみた?
132 名前:121 mailto:sage [2009/03/09(月) 10:12:40 ] みなさんアドレスありがとうございます。 >129 勝手にサイズを変えるんですか、なるほどです。 今出先でソース晒せないので家に帰ったら晒します >131 いいえ、計っていません。こちらも家に帰ってから計ってみます!
133 名前:121 mailto:sage [2009/03/09(月) 11:33:40 ] >>132 一言もサイズとは書いてないですね 勘違いしました すみません。
134 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 11:42:40 ] なんつーか、FILTERをLINEARにしてましたとかいうオチじゃなかろうな・・・?
135 名前:デフォルトの名無しさん [2009/03/09(月) 11:51:02 ] ブレンドステートってどういうときに使いますか? いまいち用途がわかりません。
136 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 11:52:59 ] αブレンドするときに使います。
137 名前:デフォルトの名無しさん [2009/03/09(月) 11:54:55 ] ありがとうございます。 αブレンドと言われても全然わからない自分は、まだまた勉強不足ということですね。
138 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 12:01:01 ] まだまだというより、これから勉強始めるところじゃないの?
139 名前:デフォルトの名無しさん [2009/03/09(月) 17:23:53 ] 2Dのゲームプログラムを組んでます。 画面全体を揺らすプログラムを組みたいんですが、そういうサンプル無いでしょうか。 このAPI使えるよとかでも構いません。 表示してるテクスチャをすべて同時に動かすぐらいしか思い付かなかったんですが、 皆さんどんな感じで実装してるんでしょうか。 ドラクエでダメージを受けると画面が揺れますが、あんなかんじの演出を考えてます。 よろしくお願いしますm(__)mペコ
140 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 17:29:39 ] >>139 ウィンドー全体を揺らしちゃえよ フルスクリーンでは無理だが
141 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 18:30:36 ] >>140 回答ありがとうございます。なるほど!参考になります。 フルスクリーンは、、、そうっすね。
142 名前:デフォルトの名無しさん [2009/03/09(月) 21:10:29 ] >>140 バックバッファの内容全体を揺らせばいいんじゃないの?フルスクリーンとかも関係ないじゃん。
143 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 21:16:24 ] 2D系でしょ 表示してるテクスチャをすべて同時に動かすでいいんじゃね?
144 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:23:06 ] いちばん簡単なのはテクスチャに描画してテクスチャを動かす方法だろ 他のエフェクトと兼用できるし
145 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:27:24 ] テクスチャーに描画するとき、サンプリングが利かなくなるからしょぼくなる
146 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:55:19 ] いや普通に利くだろ・・・
147 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 23:59:28 ] ドラクエでダメージ受けて画面揺れるのってステータスや文字表示部分だけだろ そういう処理やりたいなら全体をまとめて揺らすよりも、個別で表示位置変える方が融通効くんじゃないの? 逆に文字だけは揺らしたくないとかってケースもあると思うけど
148 名前:121 mailto:sage [2009/03/10(火) 00:12:18 ] とりあえず、先にスクリーンショットの報告です。 スクリーンショット撮ってサイズを測ってみました。 結果、サイズ自体はただしかったです。 つまり、正しく32ピクセル表示しているのに 画像のサイズが少し小さくなって、33ピクセル分 表示されている感じでした。 テクスチャをロードした時に、すこし小さくなっているのでしょうか・・??
149 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 00:15:53 ] フィルタリングの設定見直せ
150 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 00:16:54 ] >>148 >>82 ,85
151 名前:139 mailto:sage [2009/03/10(火) 00:40:06 ] みんあーありがと!いろいろ参考になったよ。 揺らしたことないからテクスチャに描画して動かす方法で感じ掴んでみるー。
152 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 01:20:40 ] >>148 ID3DXSpriteはBigenで現在設定してるレンダリングステートを保存して スプライト用に書き換えてから描画し Endで保存したステートを復元している たしか自動でフィルターもONになってたはず スプライト->Beginのパラメーターで変更しないように出来たはずだが ID3DXSpriteはあんまり使ったこと無いので嘘かも ソース上げてくれたらチェックするが
153 名前:121 mailto:sage [2009/03/10(火) 01:47:31 ] みなさま、アドバイスありがとうございます。 やはり、フィルターの設定だったようです。 g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_POINT ); g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT ); g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT ); を付け加えることで、正しく表示ができました。 正直、まだ、半分くらいしか理解できていないので これから、もっと精進して勉強していきます! ちなみにみなさんは、どうやって知識を蓄えて行かれたのですか? やっぱり地道にMSDNとかでしょうか? ずばっと答えて下さるみなさんにあこがれちゃいます
154 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 05:14:53 ] ぶっちゃけ、こればっかりは長く続けて経験値を上げていくしかない これだけ見ればOKみたいなサイトや書籍は存在しないので 基本は色んな場所から良いと取りすることになるんだけど なにが「良い」のかを判断できるようになるにはやっぱり経験が必要 結局はいろいろ失敗しつつも自分であれこれいじっていくしない
155 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 11:09:52 ] >>153 >>134
156 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 20:22:35 ] サンプルフレームワークで質問があります ウインドウモードで起動し、ウインドウサイズを拡大していくと、フォントやGUI部分は同じ大きさなのに モデルやスプライト等のサイズのみ大きくなっていくのですが、これはフレームバッファのサイズ自体が変化していくということでしょうか?
157 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 22:15:44 ] 座標変換済み頂点を使ってるものは画面サイズに関わらず変化しない 頂点変換掛けてるものは射影行列が同じな限り 画面に対しての比率は常に一定、つまり画面が大きくなれば大きくなる
158 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 22:39:56 ] スキンメッシュアニメーションの読み込みと表示のサンプルきぼん
159 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 22:48:07 ] あのサンプルは解像度も変わってるよ
160 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 22:55:48 ] いま現在の自分のDirectX技術のレポートと 想定しているシステムのスケルトンプログラムを提出してくれたら それにあった奴を書いてやるよ 使用目的も分からないとSDKのサンプルみたいな煩雑なコードになるから
161 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:01:15 ] >158 いいサンプルがSDKにはいってんべ
162 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:07:43 ] struct CUSTOMVERTEX { D3DXVECTOR3 position; // 頂点の 3D 位置。 D3DXVECTOR3 normal; // 頂点のサーフェイス法線。 }; の頂点のサーフェイス法線の意味がわかりません。 お願いします
163 名前:デフォルトの名無しさん mailto:asage [2009/03/11(水) 00:17:44 ] 複数ウィンドウ(親ウィンドウと子ウインドウ)のとき、 描画ループの順番はどうしたらよいでしょうか? while(true) { pParent->Clear(ARGB); pParent->Begin(); ... pParent->End(); pParent->Present(); pChild->Clear(ARGB); pChild->Begin(); ... pChild->End(); pChild->Present(); } 上記のようにするべきなのか、それとも pParent->Clear(); pChild->Clear(); pParent->Begin(); pChild->Begin(); このようにするべきでしょうか?
164 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:45:40 ] ぶっちゃけどっちでもいいと思う
165 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 00:47:34 ] >>157 >>159 フレームバッファサイズが変わってそれに合わせて頂点変換されてるものの表示サイズも変わるってことでしょうか? フレームバッファサイズを固定したままウィンドウサイズを変えることってできないでしょうか? 例えば、DXUTCreateDevice()で640x480のフレームバッファ、ウィンドウサイズを持つアプリを作り それをマウス操作でウィンドウサイズを拡大、このときにフレームバッファサイズを固定したまま引き伸ばして ウィンドウの形状の拡大させたいのです
166 名前:デフォルトの名無しさん [2009/03/11(水) 00:58:22 ] 伸ばした部分は黒枠でいいの?
167 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:46:03 ] サンプルフレームワークのBasicHLSLを使ったのですが、 640x480で起動直後はこのようになります nagamochi.info/src/up30411.jpg これのウィンドウサイズを拡大すると、こんな感じに nagamochi.info/src/up30412.jpg これをこのような形で拡大させたいのです nagamochi.info/src/up30413.jpg 拙い説明ですみません。
168 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:02:38 ] それはたぶん無理 DXUTの中身をいじれば出来るけどそれが出来たらこんな質問でないよね 荒業としてはUI部分だけ別のレンダリングターゲットに描画して後から合成とか
169 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:16:44 ] DXUT.cpp 3643行周辺でバックバッファ領域をクライアントサイズに変更してその後にデバイスをリセット BassicHLSLからコールバックで登録したOnResetDeviceが呼ばれて そこでGUI部分の表示位置、サイズを修正してる感じかでしょうか? ここのバックバッファサイズをクライアントサイズに変更する箇所を無くすと 画面自体はnagamochi.info/src/up30413.jpg になったのですが、 GUIコントロールの位置が表示されてる場所からずれてしまいました(ずれたのは表示位置の方なのですが)
170 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:36:39 ] ずれたのは OnResetDevice内でバックサーフェイスのサイズにあわせて SetLocationしなおしてるから そこを消せばOKなんじゃない?
171 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:54:36 ] DirectX9で ID3DXFont::DrawText すると、文字の下と右っかわに 変なわくみたいな線がとぎれとぎれに出ます? なぜ〜〜〜????
172 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 11:07:34 ] >>158 煽りでもなんでもなく、ほんとにサンプルに入ってるやつをぶっこぬくのが一番いい。 腐ってもマイクソといった感じの、すごいいいソースだった
173 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:32:16 ] 質問です Direct3D9のボリュームテクスチャに、GPUで直接レンダリングする方法が分かりません ボリュームから特定の軸で分割したサーフェイスが取得できると思っていたのですが マニュアルを見てもサーフェイスを取得する方法が分かりません Direct3D10でのやり方は分かるのですが、もしかしてDirect3D9では出来ないのでしょうか?
174 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:42:41 ] ヘルプに書いてある通り。
175 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:58:47 ] お前こっちまで来てんのかww ワロタwww
176 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:04:34 ] つまりヘルプを読めば解決
177 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:09:22 ] 困ってるんだ!頼む教えてくれ!
178 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:10:16 ] それが人にものを教えてもらうときの態度かね
179 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:11:25 ] 猿!草履を用意せい!
180 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:14:15 ] いい加減にしろよ粘着 pc11.2ch.net/test/read.cgi/gamedev/1234296058/
181 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:30:40 ] お昼の部の人気に嫉妬
182 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 13:57:06 ] >>173 ボリュームテクスチャをレンダーターゲットにしたいってこと?
183 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:44:39 ] はい
184 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 19:01:21 ] DirectXのチュートリアルでマウスの状態が I の状態になったり 砂時計になったりするとそのままだよね これを矢印の状態にするにはどうすればいいでしょうか?
185 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 19:30:30 ] DirectXと関係ない
186 名前:デフォルトの名無しさん [2009/03/11(水) 20:08:45 ] 最近良く見る床で反射(?)してる風の見た目を実現しようと思っています。 今はID3DXSpriteを使ってPNGファイルを表示させているんですが 同時に同じ画像を反転させて元の画像の下に表示させてさらにグラデーションをかけたいです。 イメージとしてはこんな感じ。(サンプルは文字になってますけど) www2.uploda.org/uporg2081830.png スプライトを反転させて元スプライトの下に表示まではできたんですけど グラデーションをかけることができません。 どうやったら実現できるか識者の方、知恵を貸してください。。。
187 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:10:39 ] Direct3Dにスプライトなど存z
188 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:17:11 ] DrawPrimitive使え
189 名前:186 [2009/03/11(水) 20:20:45 ] あ、言葉間違ってましたか?すいません。 基本が全然わかってないです。。。 > 187 スプライトっていうかID3DXSpriteインターフェイスを使って画像を表示させてます。 この表示させてる画像にグラデーションがかけて表示することができるのかなって質問です。 > 188 ID3DXSprite使っちゃできないってことですか?
190 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:27:18 ] できない 少しでも特殊なことしたいならID3DXSpriteはやめるべき
191 名前:デフォルトの名無しさん [2009/03/11(水) 20:32:13 ] >190 マジですか、ありがとうございます。
192 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 21:35:44 ] >>170 SetLocationしなおさないとそれはそれで位置がずれてしまいました DXUTgui.cpp内で参照されるマウスの位置にフレームバッファサイズとウィンドウサイズの比率分オフセット噛ますって方法で 強引な気はするのですが、対処できそうです、ありがとうございました。
193 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:49:29 ] カメラが理解できないんですが、オブジェクトと同じようにカメラの位置と方向を決めて移動させるようには出来ないんですか? オブジェクト全てにカメラの設定をしているように見えて理解できないんです 世界中の全てのものを見えてようが見えてなかろうが視点の設定をするのってものすごく無駄じゃないですか?
194 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:51:33 ] DirectXにカメラなど無い
195 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:51:52 ] それは自分で言ってる通り理解が間違ってる
196 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:21:13 ] たぶんビデオカメラみたいに撮影したものが 画面に表示されているイメージなんだろうけど 3Dの世界では ある位置にカメラがあると仮定したときに 全ての物体に対してそれがカメラに対してどの位置にあるかを計算して さらにそれを2Dのスクリーンに投影したときにどうみえるかを計算して 初めて画面に描画することができる ビデオみたいに光学で観測した結果を描画してるわけじゃない
197 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:30:24 ] まじですか オブジェクトをパッキングしてカメラを移動させるだけに作りかえるようなことは普通しないですか? もしやめたほうがいいならやめます オブジェクト毎に視界に入ってるかどうかをを判断させた後に入っているもののみビュー行列変換するであってますか?
198 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:33:25 ] それとも処理落ちが始まるまで全オブジェクトビュー変換するほうがいいんですか? いつ処理落ちがはじまるかわからないんですが、以外と早くきますか?
199 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:37:53 ] プログラム云々以前に、日本語を何とかするのが先決だ。
200 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:43:43 ] そもそもビュー変換が視界に入ってるかどうかの判定の第一歩なんだが 続く射影変換で視界の外にいるorその位置から見えないと判定されたピクセルは描画されない この描画が一番重い部分なのでいかに描画するピクセルを減らすかの計算をしていると思えば良い
201 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 00:01:51 ] ・カメラの位置と向きを決める ・すべての物体を、カメラ基準の座標系に変換する ・カメラの範囲から飛び出ているものはごっそり描画を省く(←ここだけ手動) ・描画を行う
202 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 00:08:20 ] >171 どゆこと?
203 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 00:23:51 ] >171 どゆこと?
204 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 00:40:10 ] ハードで計算できる部分を わざわざCPUで判定するなんて 物体が増えたときに負荷になるだけじゃん
205 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 01:15:12 ] そのハードに送るデータ量を減らすためにCPUで判定するんだろ データ送信が一番重いんだから
206 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 01:46:12 ] 普通は全ての物体を変換するだろ 視界内かどうかの判定なんか考えるな ロードするかしないかで分けろ
207 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 06:29:06 ] そうなの?
208 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 06:34:36 ] んにゃ
209 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 07:09:57 ] 地面のでこぼこにあわせて吸着するように物体を置くのはどうやるの? 物体のワールド座標Yに地面のワールド座標Yを影響させるのはわかるんだけど どう計算すれば出てくるの?
210 名前:デフォルトの名無しさん [2009/03/12(木) 07:26:35 ] 吸着とか意味わかんない 地面の高さを設定すれば単純にそこに出てくるだろ? 何が不満?
211 名前:デフォルトの名無しさん [2009/03/12(木) 07:34:06 ] そもそも地面のxzに対するy座標は取得できてんのかよ
212 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 07:45:54 ] 出来てない Xファイルをワールド配置したあとのワールド座標xzのyって ローカル座標をXファイルの原点をワールド座標に変換した値にプラスするの? ワールド座標XZ上にある点を全て列挙する関数はないの?
213 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 07:56:01 ] まずはモデルデータの読み込みを自前で作るところから始めた方がいい。 怠けて高レベル関数に頼っていたら何も出来ない。
214 名前:デフォルトの名無しさん [2009/03/12(木) 08:26:23 ] >出来てない ざまぁwwww
215 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 08:31:32 ] お前ら雪とか雨はどうしてる?
216 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 09:36:20 ] 傘を差します
217 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 09:43:00 ] オレは家から出ない
218 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 09:47:31 ] >>206 カメラが決して動かないならそれは正しい意見だ。
219 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 10:03:28 ] 雪とかは地面に近づいたら適当にアルファ値あげて消して、地面は雪シェーダで適当に白くして終わり
220 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 12:15:27 ] D3DXでも任意の点の上空からレイを飛ばして 衝突までの距離を出せば地面の高さがわかるんでない? 使ったこと無いから速度は知らんけど
221 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 12:49:31 ] 完全に地面のメッシュが独立してるなら D3DXIntersectでいけるかもね ただ、その方法だとトンネルとかあったらアウトだけど
222 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 14:53:40 ] 本の目次に書いてあるんですが、高すぎて買えないので教えてください GPUを使ったサウンドエンジンってどういうことですか?
223 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:17:55 ] 使いたい音源だけをデータに含ませて文字列だけでMIDIのように鳴らすのに使う リアルタイムで音階など全てを単音から作り上げたり、効果音とかを複雑に変形させたりしてる。 これのおかげで大作でも音容量10MBいかなくなった
224 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:19:32 ] だれか >>173 答えてやれよ・・・
225 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:42:13 ] スキンメッシュの日本語訳を開始したぜ
226 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:43:28 ] それはどういった向きの質問で?
227 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:42:29 ] HLSLについて解説している書籍やサイトを見るとSetRenderStateで出来ていることをわざわざ書いていたりしますが、 これからはSetRenderStateを使わずに出来る限りHLSLで処理させる流れなのでしょうか?
228 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:44:47 ] うん
229 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 22:23:49 ] いまさらだけどボリュームテクスチャにレンダリングって何がしたいんだろうな。
230 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 22:26:52 ] /) ///) /,.=゙''"/ / i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!! / / _,.-‐'~/⌒ ⌒\ / ,i ,二ニ⊃( ●). (●)\ / ノ il゙フ::::::⌒(__人__)⌒::::: \ ,イ「ト、 ,!,!| |r┬-| | / iトヾヽ_/ィ"\ `ー'´ /
231 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 22:30:28 ] まぁ、DirectX10から実装された機能を9で使えますか? なんて聞いても煽りレスしかつかんだろ こういうことをやりたいんだけど 9で実現するにはどうすればいいですか?と聞いてくれればいいんだが
232 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 22:51:01 ] いやマルチだからそこらじゅうに書きこしてる
233 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 23:24:46 ] スキンメッシュはDXUT.cppは外してもいいの?
234 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:21:11 ] スキンメッシュに関わらずUT使ってないならいらない
235 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 07:15:09 ] 初心者ですが、DXUTって現場で使われるんですか? 9の勉強中で、DXUTの膨大さに圧倒されてます・・・
236 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 07:56:43 ] 仕事ならDXUTなんて豆粒にしか見えないような膨大なライブラリを作ります。
237 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 09:03:37 ] うちの会社の規模ではWindowsなんてミジンコです。
238 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 09:06:59 ] >>236-237 レスどうもです。豆粒、Winミジンコなんて凄いですね・・・ 本場は1000万ステップ越えるのでしょうか・・・ 参考になりました!
239 名前:デフォルトの名無しさん [2009/03/13(金) 15:38:54 ] DXUTって何? 本体のライブラリ? マイクロソフトの描写ライブラリの分量を超えるプログラム作ってるって事?
240 名前:デフォルトの名無しさん [2009/03/13(金) 15:53:44 ] 解決 msdn.microsoft.com/ja-jp/library/bb173249 (VS.85).aspx
241 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 02:43:46 ] ttp://www1.axfc.net/uploader/He/so/204674 バックバッファーに描画した物をGetDCで取得し、 BitBltで描画しようとおもったのですが上手くいきません。 どこが悪いのでしょうか?
242 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 03:11:09 ] それよりも BitBltの遅さを何とかするために開発されたDirectXを使っておいて なぜそこで先祖がえりを起こすのか問い詰めたい
243 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 03:11:14 ] d3dpp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
244 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 03:49:22 ] >>243 そこのフラグを入れないとダメだったのですね。 ご教授頂きありがとうございました。 >>242 バックバッファーに描画したピクセルを編集したいと思ったのですが、 VRAM→MEMORY→VRAM という手順を踏んで描画すると物凄く遅くなってしまったのです。 なのでVRAM→MEMORYだけにして、編集後のピクセルをBITBLTでやれば少しはマシになるかなと。 それとも他にもっといい方法があるのですかね?
245 名前:デフォルトの名無しさん [2009/03/14(土) 04:01:49 ] バックバッファに描画しないでテクスチャに描いて最後にバックバッファに描くとか
246 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 04:12:02 ] >>245 テクスチャに描画する為にはレンダーターゲットにしなくてならなくて、 レンダーターゲット指定の物はLockRect出来ないため、 D3DPOOL_SYSTEMMEMなサーフェスにGetRenderTargetDataする事で、 LockRectをして編集可能になる…という事であってますよね? そこから更にUpdateSurfaceをして…となると遅くなってしまうのです。 もし何か間違いがありましたら指摘して貰えると助かります。
247 名前:デフォルトの名無しさん [2009/03/14(土) 04:16:05 ] ピクセルシェーダ使えばいいんじゃね?
248 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 04:40:06 ] GDIで描くのにくらべたら何やっても速いって気もするけどね ピクセルをどう編集したいかにもよるけど 俺もテクスチャに描いてシェーダーで加工してレンダリングに1票
249 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 15:28:23 ] やりたい事に対して 自分の考えた方法の詳細を聞くよりも やりたい事と条件を出して、どうすれば?っての方が断然早いw …でも大体は提示された方法を理解出来ない、と だから自分の考えた方法が頓珍漢なんだがね…
250 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 15:54:22 ] WindowsXP DX9 2009/04 シェーダー(HLSL)の勉強をしています。 頂点シェーダーを普通のXファイルに使うのは問題ないのですが、(DXの)スキンメッシュでは上手く行きません。 DrawMeshContainer関数内で「g_SkinningMethod」が常に「D3DNONINDEXED」を通るのでそこにBeginPass等を書くと ボーンかウェイトが正しく反映されず頂点(面)が分離して表示されてしまいます。 少し下を見ると「if (g_SkinningMethod == D3DINDEXEDHSLSVS)」があったのでここを通せばいいのかと思って 「g_SkinningMethod」の値を書き換えると実行中にエラーが出ました(SetSoftwareVertexProcessingにて)。 スキンメッシュそのものは「メタセコイア」から「rok de bone2」を経由して出力したアニメーション付きXファイルです。 そこで2点伺いたいことがあります。 ・頂点シェーダーを使いたい場合はD3DINDEXEDHSLSVSの部分を通して使うのは正しい(意図した)方法なのか ・D3DINDEXEDHSLSVSを通すために何かすべき事があるのか(スキンメッシュのコンバートなど) 特異なことをやっていますが、もし分かる方がいればレスをお願いしますorz
251 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 15:55:24 ] 訂正 バージョンは2009/04ではなくて2008/04です
252 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 16:15:11 ] シェーダ上でウエイトの計算をしていないからだろ
253 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 17:25:12 ] というか値書き換えてもエラーなんてでないだろ
254 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:33:33 ] >>247 >>248 なるほど、そういうものがあるのですね。調べてみます。 ttp://www1.axfc.net/uploader/He/so/204937 もう1つ質問なのですがテクスチャを貼り付けたポリゴンを、 rhwを1.0fにして100%表示させているのですが、元の画像よりぼやけて見えます。 これを回避するにはどうしたら良いのでしょうか?
255 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:41:12 ] ヘルプを読むことだな
256 名前:250 mailto:sage [2009/03/14(土) 21:07:08 ] >>252 ありがとうございます。 若干前へ進めました。 pMesh->DrawSubsetの上でSetTransform(D3DTS_WORLDMATRIX(i), &matTemp )をやっており、 この値を正しく渡すことが出来れば問題は解決しそうです。 しかし、これを繰り返す回数である「pMeshContainer->NumInfl」に何が入っているのか(常に4?)、 どうやって頂点シェーダーでどの行列を使うのかを指定してやるのかが分かりません。 前者に関しては100とか200の数値が入るとHLSLに配列として保持させるのは現実的ではありませんよね。 後者は前者が4固定だとすれば、頂点情報にフラグがあればそれを取得することで解決しそうです。 そこら辺について詳しい片はいらっしゃらないでしょうか。
257 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:14:48 ] >どうやって頂点シェーダーでどの行列を使うのかを指定してやるのかが分かりません。 なんでそんな基本事項が分からないのかが分からない。
258 名前:250 mailto:sage [2009/03/14(土) 23:18:24 ] >>257 現在使っている頂点シェーダーは以下の通りです。 float4 TestVS( float4 Pos : POSITION, float3 Normal : NORMAL, float2 TexCoord0 : TEXCOORD0 ) : POSITION { float4 a = mul( Pos, gMatrixWVP ); return a; } gMatrixWVPはpMesh->DrawSubsetの前にmatWorld * matView * matProjectの結果を入れています。 上記で期待している結果はシェーダーをかけてもかけなくても同じ形状。 matWorld(gMatrixWVP)の値を変えることで解決はするのでしょうが、 pMesh->DrawSubsetで複数の頂点が描画されるのでバラバラに設定できない。 そもそもどの頂点がどの行列を使うのかを知り得ないので躓いています。 頂点シェーダー内で各頂点通常描画と同じワールド座標が取得できればいいのですが無理ですよね・・。
259 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:27:17 ] >そもそもどの頂点がどの行列を使うのかを知り得ないので躓いています。 頂点の情報の中に含まれてるだろ 全然分かっていないんだから、 D3DXを使わずに直接頂点を設定するところからやり直せ
260 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 23:39:11 ] とりあえず「スキンメッシュ シェーダ」でぐぐるくらいのことはしたのか? それっぽいのがゴロゴロ出てくるぞ?
261 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:27:59 ] そもそもSDKのサンプルにシェーダーで動くサンプルがそのまま入ってますやん
262 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 16:16:57 ] 規制が解除されてたら HLSL用スキンメッシュのサンプルをうpする
263 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 16:30:30 ] おめでとう
264 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:02:33 ] 日本語ドキュメント来たな
265 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:11:55 ] 金曜に来てたのに誰も気づかなかったのか ttp://msdn.microsoft.com/ja-jp/library/cc411364.aspx
266 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:40:48 ] >>262 くそう、いつのまにか全規制からVIPのみ規制に切り替わってた いまコピペの嵐でサンプル作った ・DirectX9 ・基本ベースはSDKサンプルのチュートリアル(非DXUT) ・スキンメッシュ部分はSkinnedMeshからの部分コピペ ・HLSLはMultiAnimationからほぼそのまま ・アニメーション制御はまるぺけを参考 ・デバイスのリセットに未対応 ・キャラクタ(インスタンス)のコピーとか無理 ・影響度が一つも設定されてない頂点のあるメッシュは表示しない ・テクスチャの設定されてないマテリアルは真っ黒 全部対応できるけどお手軽最小限ってことでこれらは自分でなんとかしてね で良くて二人以上希望者がいたらうp
267 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:45:12 ] キボンヌ
268 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:45:58 ] あ、俺もおねがいします
269 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:47:44 ] 俺も俺も
270 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:09:44 ] 一応うp あまりデバックしてないから動かなかったら簡便な あまりに不評なら即削除 ttp://www5b.biglobe.ne.jp/~mya_a/DirectX/Vertices.zip
271 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:54:59 ] これがどうすごいか解説ヨロ
272 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:57:27 ] よくわからないけどいただきました。 よくわからないけどべんきょうにつかわせていただきます。
273 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:02:22 ] 別にどうすごくもないただのサンプルでしょ 動作原理を知らなくてもスキンメッシュを再生したい人には良いんでない? すでにできてる人にはあまり意味ないかと
274 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:20:12 ] >>270 素かワザとか判断に迷う所だが 簡便じゃなく勘弁な、ワザとだったら勘弁な
275 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:22:14 ] さんくす 少ないファイル数でまとめてるとわかりやすいわ
276 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:21:53 ] あんまり甘やかすなよw ここがDirectXの一つの山場なんだから
277 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:29:28 ] くやしいのうwwwくやしいのうwww
278 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:49:17 ] CDXUTMeshってググってもあまり引っかからないのですが 一般的にはあまり使いませんか?
279 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:05:05 ] 最適化とか勝手にやってくれるし UTベースでCXFileMesh使うならいろいろ手間が省けていいんでない?
280 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:07:42 ] ごめ ×CXFileMesh ○LPD3DXMESH
281 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 09:13:47 ] >>265 SUGEEEEEEEEEEEE!!! やっと日本語版の最新がきたのかw D3DXAnimationControllerが最新対応になっていて感動した! でもバグも直せ
282 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:39:48 ] >>265 久しぶりの翻訳は(日本法人)新社長の公約のおかげかな。 こういう時期なら翻訳をねじ込めるかもしれないので 翻訳して欲しい資料についてはフィードバックしておくと良いのかも。 ttp://ascii.jp/elem/000/000/165/165823/ >樋口氏は、「ITエンジニアの皆様に対するお約束」として、エンジニアからの >要望が強かったという「技術資料の不足」「製品の品質」「分かりにくいライセンス」 >などの問題の解決に当たっていることを説明。 >過去6カ月間に、1万ページ強の技術資料を日本語翻訳した経過を報告し、 >「さらに今後10カ月間で1万ページの技術資料を追加翻訳する」と約束した。
283 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 15:57:51 ] つまり、今後の質問は全てヘルプを見ろってことでおk?
284 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 16:03:16 ] 別に日本語サンプルできたからって全然変わらないだろ
285 名前:デフォルトの名無しさん [2009/03/18(水) 10:52:39 ] スキンアニメーションに使うXファイルを作っているのですが 歩行アニメーションを作る場合は3Dソフト上で場所を動かさず歩行モーションだけを作って ゲームのほうでキー入力によって位置を移動しながらアニメーションを再生させるんでしょうか
286 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 11:00:17 ] むしろxファイル上で位置を変えようと思ったお前の発想が凄い そのうちどこかで使おうと思った
287 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 11:09:47 ] >>285 そう作ってもいいし、 xファイル上で移動するように作っておいて、その移動量を毎フレゲーム内に加算、モーションの方でその移動をなかったことにする 前者だとすべるような動きになりがちだけど後者モーションと移動量をリンクできる
288 名前:デフォルトの名無しさん [2009/03/18(水) 11:49:55 ] ありがとうございます とりあえずはゲームのほうで移動するようにしてみます
289 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 17:03:32 ] スキンメッシュが1秒くらいの周期で動きが異常に速くなったり戻ったりを繰り返す エスパーの方どこが問題かわかります?
290 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 17:42:55 ] 時間の進め方が AdvanceTime ( 1/60) ; とすべきところを time += 1/60 ; AdvanceTime ( time ) ; そしてるとか
291 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 03:24:49 ] >>290 かなり良い線行ってましたわ 直接数字入れたら直った 変数timeがあっちこっちでごっちゃになってたみたいだサンクス! でもクラスに移植する前はマトモに動いてたのになー
292 名前:デフォルトの名無しさん [2009/03/20(金) 12:50:06 ] シェーダーを使ったメッシュって元々設定してたライトの影響を受けることはできますか? シェーダーを使ったメッシュに新しく設定しなきゃ駄目ですか?
293 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 13:47:27 ] で、新しく設定しないで実行した結果はどうなった?
294 名前:デフォルトの名無しさん [2009/03/20(金) 13:51:59 ] 光が当たりませんでした。何か方法はありますか?
295 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 14:01:30 ] 描画速度の計測ってtimeGettimeなどで時間計測すればいいんでしょうか? 余りにも短い時間で終了してしまう場合は、その処理を何百回とか繰り返して 負荷をかけるだけで大丈夫ですか?それとも同じ処理だと二回目以降は高速になります?
296 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 14:08:46 ] >>292 元々へったくれもなく、自分で計算内容を書くのは理解しているのか? >>295 処理しないなら休ませろ
297 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 14:48:16 ] 物体を回転させるのはわかったんですが 物体の周りで同じ半径で物体を円運動させるにはどうすればいいんですか?
298 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:02:56 ] まず数学から学んだほうが早いんじゃね?とか思うのは俺だけか。 行列計算とか色々関数があるから手軽になってるけど、根本的な内容を理解していないと>>297 のような状態に。
299 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:07:33 ] 必要なのは三角関数だけだけどな
300 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:12:43 ] 月の裏側見えちゃうじゃん!
301 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:31:58 ] >>296 >処理しないなら休ませろ いや処理にかかる時間をはかりたいのです。 例えば、3つのテクスチャーで作られるモデルがあるとして、それを5箇所に描画する場合って モデル1つづつ描画していくのと、1つめのテクスチャーをセットして、そのテクスチャが必要な部分だけ5箇所に描画、2つめのセットして描画 って繰り返すのとどっちが速いんでしょうか?
302 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:42:04 ] 切り替えなくてすむのなら切り替えない方が速い
303 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 17:53:13 ] フレーム4個うちボーン2個のスキンメッシュがあって、 頂点バッファをダンプするとDWORDのBlendIndicesの値には ボーンのインデックスの00か01しか現れないと思ったのですが 3f800000だったり3f7ffb37のような値になっています。 これはどういう計算でこうなるのでしょうか? 描画は正常に表示できています。シェーダ内ではD3DCOLORtoUBYTE4を使ってます。
304 名前:デフォルトの名無しさん [2009/03/21(土) 18:16:57 ] プログラム言語なんて所詮コンピュータに人間のやりたいこと伝える通訳でしかねぇんだよ。 通訳なんて自分自身は生涯主役になれない黒子だろ?脇役だろ?奴隷だろ? 伝わりさえすりゃそんなもんの優劣なんてどうでもいいんだよ。 何でも出来る? そんなもんは「私はただの通訳じゃありません。ヒンタボ語も使えます!」と 自信満々に言ってるようなもんだ。 そんなもん使う側の人間にすりゃ 「はぁそうですか。便利そうですね。…ヒンタボに行く人にとっては。」レベルの ゴミ自慢だっていい加減気づこうなw まぁ、これに懲りたら挑発しにくんな。奴隷。
305 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 18:19:26 ] ヒンタボ語に泣いたw おまえはたけしかwww
306 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:54:13 ] msdn.microsoft.com/ja-jp/library/bb174832 (VS.85).aspx を見るとsThumbLXだけ値の範囲が違うのですが、表記のミスなのでしょうか。 だとするとどちらが正しい値なのですか?
307 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 14:06:59 ] コリジョンクラスを作ろうと思うのですが モデル管理クラスはプレイヤーとその他で2つ別のを作るのと同じクラスで管理するのはどちらがいいですか? アドバイスお願いします
308 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 16:33:52 ] >>306 表記ミスだね、符号付16bit整数は -32768 〜 32767
309 名前:デフォルトの名無しさん [2009/03/22(日) 17:44:23 ] シェーダープログラミングで点光源ってどうやるの? シェーダーにするとライトの設定異常に面倒じゃない?おれが間違った解釈してるのかな?
310 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 17:57:08 ] MMORPG作ったけど
311 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 18:13:44 ] ふむ?
312 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 19:32:50 ] ゲームパッドのデバイス作成しようと思ったら、ウィンドウハンドル必要だけど、 コンソールアプリではDirectInput使えない?
313 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 21:28:31 ] 使える
314 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 22:18:27 ] .xのアニメーション(スキンメッシュ)ってもしかしてシェーダー必須?
315 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 22:28:53 ] いいえ
316 名前:デフォルトの名無しさん [2009/03/24(火) 15:12:35 ] Download details: DirectX Redist (March 2009) ttps://www.microsoft.com/downloads/details.aspx?FamilyID=0cf368e5-5ce1-4032-a207-c693d210f616&DisplayLang=en Download details: DirectX SDK - (March 2009) ttps://www.microsoft.com/downloads/details.aspx?FamilyID=24a541d6-0486-4453-8641-1eee9e21b282&DisplayLang=en
317 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 21:43:04 ] >>312 コンソールでもハンドルは取れるぞ
318 名前:デフォルトの名無しさん [2009/03/25(水) 00:40:04 ] ID3DSprite を使ったスプライト表示について教えて下さい。 テクスチャを準備して、ビットマップを表示しているのですが 縦横比をビットマップと同じように表示するにはどうすれば 良いでしょうか? よろしくお願いします。
319 名前:318 [2009/03/25(水) 00:53:42 ] すみません、環境は DirectX9 で、表示はWindowです。 Windowサイズを変えるとスプライトの縦横比が変わるのを 防ぎたいです。 宜しくお願いします。
320 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 01:27:58 ] 画面の大きさ変わったらそれに応じた行列作って与えればいいんじゃない?
321 名前:デフォルトの名無しさん [2009/03/25(水) 01:31:27 ] >>320 ウィンドウの縦横比とスプライトの縦横比の関係が どうなっているのか分からないのですが、これを確認する 方法がありますでしょうか?
322 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 07:11:28 ] そもそもID3DSpriteなど存在しない
323 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 07:22:23 ] >>319 Windowサイズを変更できないようにしろ
324 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 08:41:13 ] ウインドウサイズが変更さたら、D3Dデバイスも変更するといいと思う
325 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 15:19:54 ] Xファイルの再生でアニメーションコントローラーを使って 指定したフレームから指定したフレームまでの再生ってできますか? 1つのXファイルに歩行・ジャンプ・座るなどのモーションを詰め込んでどうすればいいか悩んでます;;
326 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 15:31:43 ] できるけど 切り替えやモーション移行時の合成のことを考えたら アニメーションセットを複数持った方が楽
327 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 15:45:36 ] >> 326 ありがとう アニメーションセット 複数 でググったら色々出てきたので勉強してみます
328 名前:デフォルトの名無しさん [2009/03/25(水) 15:48:13 ] カメラでビュー変換した後のmatrixを、移動したり回転したりするには、どう計算したらいいんですか?
329 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 15:55:21 ] 板違い
330 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 16:01:15 ] ビュー行列にあらかじめ移動行列やら回転行列やら掛けとけば?
331 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 16:40:54 ] 板違い ??
332 名前:デフォルトの名無しさん [2009/03/25(水) 16:53:07 ] >>330 カメラの動きを出力するツールがあり、その出力データを他のツールで読み込み再生したいんです。 しかしその出力データにはビュー変換後のmatrixしか入っておらず、変換前のデータにあらかじめどうこうというのは出来ないんです。
333 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 16:59:43 ] カメラの位置と向きから逆計算すればよい
334 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 17:11:33 ] 後だし情報多すぎだな もう回答はつくまい
335 名前:デフォルトの名無しさん [2009/03/25(水) 17:35:02 ] できたあああああああああ。 ひゃっっほおおお カメラですが、みなさんありがとうございました。 上手く行かない原因がわかりました。 ツール側のxyzが逆になっていただけでした。 transrateだけで行けないわけがないのに、それすらできないなんてPG人生終わったな、ぐらい追い詰められてました。 幾何学の基本的な公式から読み直したり(ry ありがとー!
336 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 17:52:12 ] どういたしまして^^
337 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 19:01:18 ] DirectX9に対応してないビデオカード使ってる奴がうざいんだけど どうすればいいですか
338 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 19:02:21 ] 暗殺しろ
339 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 19:04:05 ] 何作ってるかによるな
340 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 19:08:56 ] この手のクレームは無視一択じゃね
341 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 19:10:22 ] 必要環境にDirectX9と書いてあるなら対応する必要なし
342 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 19:14:41 ] 必須環境なのに対応しろって苦情が入るのでうぜーとか 下の方の環境も拾おうとしてる所為で全力で戦えなくてイライラしてるのか 両対応でできる限り遜色ない見栄え要求されて大変とか
343 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 09:26:15 ] DirectSoundのクラスを作っているんですが 音楽を読み込ませる場合は最初に使う分ロードしておくのと必要な場面でロードするのはどちらがいいですか?
344 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 09:27:24 ] DirectSoundクラスを実装しているのですが 音楽データは最初にすべてロードするのと必要な場面ごとにロードするのはどちらがいいですか?
345 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 09:36:37 ] 音楽データなら理想を言えばoggファイルとかからストリーミング再生がいい DirectMusicならやり方分かるがDirectSoundでどうやったかな SEじゃなくてBGMだろ?事前に全BGMを読み込むのはあり得ない^^;
346 名前:デフォルトの名無しさん [2009/03/26(木) 09:51:03 ] >>345 レスありがと directMusicでoggファイル再生を実装してみます ストリーミングはスレッドを使っているみたい?なのですが スレッドの勉強はまだ不十分なので、必要な時にロード・必要なくなったら消去 という風な仕様で作ってみます。
347 名前:デフォルトの名無しさん [2009/03/26(木) 10:00:37 ] お前もしかして○×にも書いてなかったか?俺と全く同じペースで進めてるわけだが・・・
348 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 10:15:28 ] ○×? どこよ
349 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 13:55:25 ] つくろードットコムだったりして? ファイル全読み込みで発生するラグはプレイヤーのストレス源になるからな 世の中には全部読んだあと更にデコードまでする人もいるらしいが なるべくストリーミングしたほうが良いね
350 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 17:47:36 ] D3DXを使わずにテクスチャを読み込むにはどうすればいいんでしょうか。
351 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 17:52:15 ] テクスチャを作成し、バッファをロックして、ピクセルデータを書き込む。 画像ファイルからピクセルデータを取得するには、各フォーマットを調べるか、 WinAPIやその他ライブラリ関数を使ってビットマップを取得する。
352 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 18:06:48 BE:1313330257-2BP(0)] c++とc#の基礎的な部分の勉強はしたことあるのですが、 3D表示に手を伸ばそうとしたときdirectXとXNAというものがあると聞きました もちろん一長一短はあると思いますが、やはりメジャーなdirectXの方が解説サイトなどが豊富で 初心者向けなのでしょうか?
353 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 18:09:39 ] >>351 ありがとうございます。 LockRectの第2引数がバッファを指すポインタを持っている事に今気がつきました。 書き込むデータは、IDirect3DDevice9::CreateTextureのD3DFORMAT に指定した引数に従って書き込めばいいのでしょうか。
354 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 21:13:54 ] CreateDirect3D9やDirectInput8CreateはCOMを初期化するのにCoInitializeを使っているというわけではないのですか? D3DやDIオブジェクト作成した後でCoInitalizeExにいろいろな値を渡しても、失敗することがないので気になるのですが。
355 名前:デフォルトの名無しさん [2009/03/26(木) 22:27:21 ] Visual Stduio 2008を使用していて、DXSDKをインストールしたんですが、 プロジェクトのビルド時に include ファイルを開けません。'DSound.h': No such file or directory というエラーがでます。 VSの設定でDXSDKのincludeディレクトリとlibディレクトリへのパスは通してあります 何が悪いんでしょうか?
356 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 23:04:20 ] libは64とかはあってるのか? 優先度を一番上にしてるのか? 実際にファイルはあるのか?
357 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 23:45:14 ] デスクトップ上に半透明化した画像を常に手前に表示したままの状態で、後ろに表示されている別のウインドウを操作できるようにしたいんですが、VC++で可能でしょうか? 何かよい方法があれば教えてください。
358 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 23:59:16 ] directx関係ない気がするんだがな 可能。方法のヒント ハンドル
359 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 00:10:25 ] >>355 現在のDirectXSDKのincludeフォルダに存在する? PlatformSDKにはいってたりして・・・
360 名前:355 [2009/03/27(金) 00:56:38 ] ttp://www.dotup.org/uploda/www.dotup.org10987.jpg.html ttp://www.dotup.org/uploda/www.dotup.org10989.jpg.html これで大丈夫でしょうか?
361 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 01:42:54 ] 大丈夫じゃない
362 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 09:16:14 ] >>359 March 2008の段階ではまだ入ってるみたい。 Novemberでどうなってるかは知らんが。 >>360 この問題と直接関係ないけど、Win32用のライブラリパスにx64のを入れるのはやめれ。 Win32<=>x86 x64<=>x64 の『だけ』を含める。 まず>>359 が言っているみたいに、本当にincludeフォルダ内にdsound.hがあるか確認すること。 もう一つだけ思い当たる節。 www.dotup.org/uploda/www.dotup.org11272.jpg.html ここWin32になってるよな?
363 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:06:15 ] あとはdebugとリリースそれぞれ違うから 両方設定して。 それでだめならlibとかをdirectxのみにする
364 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 00:03:03 ] sas
365 名前:デフォルトの名無しさん [2009/03/28(土) 14:01:36 ] sdkのサンプルにdirectsoundのやつが入ってないんだけど昔のバージョンには入ってるの? MSDNには\Samples\C++\DirectSound\みたいなこと書いてあるのに見当たらない
366 名前:デフォルトの名無しさん [2009/03/29(日) 13:05:09 ] 質問です 複数のウィンドウハンドルに描画するにはどうすればいいのでしょうか? また、モーダルなウィンドウを生成した時、生成側でそれを検知して描画を止めるような処理をしたいのですが方法はあるでしょうか?
367 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 13:44:37 ] www.codesampler.com/dx9src/dx9src_1.htm#dx9_swap_chains これをパクれ
368 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 23:43:37 ] >>366 生成側で検知できない方がどうかしてないか? モーダルウィンドウを作る直前に描画を禁止するフラグでも立てて 戻ってきたら寝かせるだけだろ。
369 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 13:16:52 ] >>365 Microsoft DirectX SDK (August 2007)には入ってるね これ以降無くなったヘッダとかもあるからインストールしといたら便利だよ
370 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:01:01 ] 質問です。 MCIを使用してmp3を再生しようと思うんですが、 ffdshowが起動してしまいます。 つまり公開した場合、各自ffdshowをインストールして下さいという必要があるという事ですか? ゲームBGMに使用したいのですが、 MediaPlayerを用いた方が標準的に入っているので、そちらの方が適当でしょうか。
371 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:11:21 ] お前さんが自分でffdshow使うようにOSに設定してるだけだろ・・・
372 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:17:40 ] >>371 マジですか。ありがとうございます。
373 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 03:38:03 ] 水面ってどういう作り方があるんですか? 半透明で下の土が見えてるだけしか思いつきません クライシスの波だったりするのってアニメーションなんですか?それとも計算で動かしてるんですか?
374 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 04:03:37 ] sinとか使って計算するんじゃなかったっけ?
375 名前:デフォルトの名無しさん [2009/03/31(火) 08:58:38 ] 質問です。 ある画像を描画する際に、アルファ付きのスプライトなどでマスクを掛けて 円形の内側だけを描画するようにしたいのですが、思ったような結果が得られません。 まず円形の内側がアルファ値255、外側が0になるような画像を描画し、 その後マスクを掛ける画像を描画する前にD3DRS_SRCBLENDに D3DBLEND_DESTALPHAを指定してみているのですが上手くいきません。 アルファブレンドを利用したマスク処理について知りたいので 詳しい方のご教授、もしくは参考になるサイトなど教えて頂けると助かります。
376 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 10:14:29 ] ステンシルバッファ使えよ
377 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:54:10 ] DirectSoundでストリーミング再生しながら IDirectSound8::DuplicateSoundBuffer()使うとやばいですか? 下手したらロック可能な場所がなくなりますよね?つまりこれは短い効果音なんかに使う用と考えておkですか?
378 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 21:04:42 ] おk
379 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:59:06 ] Zバッファがどうたらと色々なページに書いてあったので、それを参考にして書き換えてみたのですが 相変わらず位置に関係なく、後に描いたものが前面に来てしまいます。 考えられる原因をお願いします。
380 名前:デフォルトの名無しさん [2009/04/02(木) 21:22:34 ] ダークマター
381 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:23:33 ] Zバッファが登録されてない。 D3DRS_ZENABLEが有効になってない。 D3DRS_ZWRITEENABLEが有効になってない。 Zバッファがクリアされてない。 Z値の奥と手前が逆。 実は描画順が逆だった。
382 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 21:47:59 ] 回答ありがとうございます。 EnableAutoDepthStencil = TRUE; AutoDepthStencilFormat = D3DFMT_D16; SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE); SetRenderState(D3DRS_ZWRITEENABLE,TRUE); Clear(NULL, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, NULL); 追加・変更してはみたものの、やはりうまくいかないようです。 もっと細かく調べてみることにします。
383 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 22:40:32 ] >>381 一番ありがちな「ニアクリップの距離が0」が抜けてるぜセニョリータ
384 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 01:33:19 ] 描画の前後に関係ねーだろボケ 何がセニョリータだタコ
385 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 09:25:10 ] セニョリータとかボケとかタコとかやってるとこ悪いが 俺のありがちトラブルリストに追加させてもらったぜ ありがと
386 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 09:57:00 ] 383=385
387 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 10:24:33 ] 384=386
388 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 11:35:14 ] >>384 Znを0にするとZバッファが効果なくなるよ。 わりと常識のレベル。 手計算で座標変換してみれば、何が起こるのかすぐわかる。
389 名前:デフォルトの名無しさん [2009/04/03(金) 12:16:32 ] スキンアニメーションクラスを作っているのですが ファイル読み込み・コリジョンに必要な値の取得・アニメーション制御 を1つのクラスでまとめているのですが分けたほうがいいですか?
390 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 12:20:02 ] 結局モデルデータ、アニメーション、物理データ(衝突検出等)のクラスに分けたところで、 それらの合成クラスを自分が作るだけになるという・・・
391 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 21:16:45 ] DXUTって超便利じゃん
392 名前:デフォルトの名無しさん [2009/04/04(土) 13:15:49 ] あるサイトのサンプルなのですが //アニメーショントラックを得る for(DWORD i=0;i<pAnim->pAC->GetNumAnimationSets();i++) { pAnim->pAC->GetAnimationSet(i,&pAnim->pAnimSet[i]); pAnim->pAnimSet[i]->Release(); } アニメーションコントローラーを設定した後リリースしてるのはなぜですか?
393 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:22:17 ] >pAnim->pAC->GetAnimationSet(i,&pAnim->pAnimSet[i]); で使い終わってるから
394 名前:デフォルトの名無しさん [2009/04/04(土) 14:31:00 ] >>393 ありがとうございます
395 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 22:31:31 ] DirectDrawの終了処理でつまづいてます gDraw->Flip( hwnd ); にて画面を更新しているのですが whie(1) PeekMessage( ... をぬけると 最後に描画した gDraw->Flip( hwnd ); の画面が最前面に表示され 最後の画面が描画されたまま終了してしまいます どう対処すればいいでしょうか?
396 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 12:59:31 ] かなり初心者なのですが、ちょっと質問させてください。 ゲームで半透明処理をしているオブジェクトで、ドットをディザリングさせて半透明を 実現しているものをたまに見かけます。DirectXではないですがMGS4も半透明処理がディザしてます。 しかし多くのゲームではきちんとうまく半透明処理(アルファブレンディング?)をしているように見えるのですが 前者と後者はどのような処理方法でやっているのでしょうか? またなぜわざわざ汚く見えるディザリングをやっているゲームがあるのでしょうか?
397 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:49:18 ] >>396 ディザリングしてるゲームなんて見たことないんで適当なこと言うけど 半透明は描画順に依存するからじゃないか? 正しく半透明を描画するには奥から手前の順に描く必要があるので、 描画するときにポリゴン単位でソートが必要になる。
398 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:41:03 ] いったんレンダーターゲットに不透明でレンダリングしてから 2D画像処理を掛けながらビルボードとしてゲームに乗せる。 本当に半透明で描画すると、透過中にjs目玉とか歯茎が透けて見えてキモイことになる。
399 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 18:42:49 ] やっとSkinnedMeshから#include "SDKmisc.h"を除去できたぜ
400 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:27:55 ] DXUT外しってムズイ?
401 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:34:05 ] DXUTって外さないと何か問題とかあります?
402 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:51:32 ] スキンメッシュの部分だけを抽出させるとソースがボッコボコになる。 DXUT自体不要な機能が多々あるので外したほうが無難。 自前で実装するために学ぶのにも役立つから最小構成にする価値は十分ある。
403 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 20:59:54 ] #include "DXUTcamera.h"も外したぜ DXUT.h外すのは一苦労
404 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 21:30:32 ] てか、UT外すなら削ってくんじゃなくて 必要な部分だけのせていったほうが速いんじゃ
405 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 21:49:03 ] 早い云々よりも必要な部分が何なのかが理解できなくなるので抽出してくほうが為にはなるはず。
406 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 21:51:09 ] 削るとかの前に自前で最小実装した方が理解度が高まるかと もうできるって?サーセンwww
407 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 21:55:33 ] 必要な部分ってどこだよぅ >>270 はSDKサンプルそのままで縮めてほしかったな 自作クラスとか使ってたら余計理解できん あとSDKサンプルでは読み込めて表示できるファイルが表示できなくなってるのはマイナス
408 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:04:13 ] なに?なんで いきなり>>207 の話になってんの?
409 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:08:09 ] >>406 自前で実装するためにDXUTを必要最小限にするのが正しいかな。 削らない状態で参考にするのは容易では無いし、逆に何も参考にする必要が無いほどの技術者ならスレ違い。
410 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:12:53 ] >>270 のサンプルはたしかに一部ファイルは表示できたが SDKサンプルで表示できる物全てに対応してないから没 SDKサンプルからDXUT.h、DXUTcamera.h、SDKmisc.hを外して d3dx9.hとSkinnedMesh.cppだけで動作するようにしてくんないと初心者は付いて行けないぞ
411 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 22:37:14 ] >>266 に書いてるじゃんか >全てに対応してないから没 >初心者は付いて行けないぞ www どういうのがほしいんだい? 後でこうでないから〜とか ならないよううに、よ〜〜く 考えて書いてねw
412 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 23:24:38 ] 自作クラスとかは使わないでね
413 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 11:41:24 ] 270で表示できないのがあるのって注意書きにも書いてあったけど あるifに対応するelseの部分がまんま空白になってるからだ そこを埋めるのはたいした作業じゃないんだけど、どうしても分からないなら頼んでみたら まだここみてるかわからんけど
414 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 19:31:10 ] 自分でやってこそ、身に付くという物だ したがって要らぬ世話はしなくて良い
415 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 19:45:54 ] D3DXVec3TransformCoordって vec.x = (vec.x * mat._11) + (vec.y * mat._21) + (vec.z * mat._31) + ( 1 * mat._41); vec.y = (vec.x * mat._12) + (vec.y * mat._22) + (vec.z * mat._32) + ( 1 * mat._42); vec.z = (vec.x * mat._13) + (vec.y * mat._23) + (vec.z * mat._33) + ( 1 * mat._43); のあとに何をやれば再現できる? vecはD3DXVECTOR3 matはD3DXMATRIX
416 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 20:07:15 ] const double w = (vec.x * mat._14) + (vec.y * mat._24) + (vec.z * mat._34) + ( 1 * mat._44) vec.x /= w; vec.y /= w; vec.z /= w; で再現できるお
417 名前:デフォルトの名無しさん [2009/04/06(月) 20:36:31 ] >>399 うpしてください!
418 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 20:59:15 ] DXUT外したベース集つくらない?
419 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 21:02:27 ] DXUTはずしたところで、似たような別なコード書いただけじゃないの? 外す意味がわからないんだが
420 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 21:09:49 ] DXUTのせいで初心者は理解できんのだ 外す事には大いに意味がある
421 名前:デフォルトの名無しさん [2009/04/06(月) 21:17:34 ] 誰かサイト作ってくれよ 言いだしっぺの俺からうpしていくから
422 名前:デフォルトの名無しさん [2009/04/06(月) 21:18:19 ] >>1 のテンプレに載るまとめサイトみたいなやつな
423 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 21:50:43 ] 作ったぞ directx.wiki.fc2.com/
424 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 21:52:51 ] SDKのバージョンとかの互換の問題でgdgdになりそうな悪寒
425 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 22:33:40 ] ConvertToIndexedBlendedMeshの自前版て欲しい?
426 名前:デフォルトの名無しさん [2009/04/06(月) 22:35:41 ] 何でもいいからほしい とにかくとりあえずデータベースで収集したい
427 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 22:45:45 ] 動画編集ソフトのようなものを作ろうとしていて DirectShowのサンプルグラバから受け取ったデータを DirectSoundを使って再生したいんですが どうすればいいですか?
428 名前:415 mailto:sage [2009/04/06(月) 23:33:17 ] >>416 ありがとうございます! 無事に出来ました
429 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 16:49:30 ] Windows XP SP3、DirectX 9.0c(Mar 2008) という環境で フルスクリーンモードで作っているのですが 640x360という解像度で実行しようとすると、エラーも出ずに 止まってしまって実行できません どうすれば640x360という解像度をフルスクリーンで作れますか? ちなみに、モンハンのベンチマークで640x360のモードで実行できるので ビデオカードのドライバが対応してないという事も無いようです
430 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 17:37:22 ] とりあえず、デバッグランタイムで動かしてみて、エラーメッセージ全部見る
431 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 18:43:27 ] 640x350なら聞いたことあるけど360なんてほんとにあるの?
432 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 18:52:49 ] 内部動作が不明な他人の作ったものをどうこう言う前に、 まずはディスプレイモードの一覧を列挙しろよ。 なんでその程度のことすらやろうとしないんだよ?
433 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 20:25:28 ] エラーは出てると思うけどな。 そのエラーをチェックすらしてないだけだろう。
434 名前:デフォルトの名無しさん [2009/04/07(火) 20:55:03 ] DirectSoundFullDuplexCreate8って難しいな プライマリバッファはいらないってこと?キャプチャしながらエフェクトとか難しすぎる directsoundって舐めてたけどスキンメッシュ並に難しいな
435 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 02:29:58 ] DXUT外すのは無理だった 諦めた
436 名前:デフォルトの名無しさん [2009/04/08(水) 12:38:02 ] スキンメッシュ自体はそれほど難しくは無い 問題はDXUTが邪魔な事
437 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 12:46:11 ] 邪魔なら最初から使うな
438 名前:デフォルトの名無しさん [2009/04/08(水) 14:55:56 ] >>423 使い方わからなくて頭に来た
439 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:14:35 ] まずは触ってみましょう
440 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:31:19 ] >>437 最初から絡まってるから邪魔なんだよ
441 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 17:13:03 ] SetRenderTargetを使ってテクスチャに描きたいのですが スプライトのときは無視されて画面に表示されるです。 どうすけばいいですか?
442 名前:デフォルトの名無しさん [2009/04/09(木) 07:42:11 ] ざまぁwwww
443 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 07:58:24 ] DirectXにスプライトなど無い
444 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 08:28:38 ] ID3DXRenderToSurface
445 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 08:42:17 ] >>441 首から下パホイホイ溶岩に埋まって悶え苦しみながら死ねばいいと思うよ。
446 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 09:07:28 ] パホイホイ萌えが俺以外にもいたとはな
447 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 12:31:41 ] >>440 抜けばいいんだよ
448 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 13:10:54 ] このスレ的にスプライトはタブーだから
449 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 13:33:37 ] いんねんつけてくる奴がいるからなw
450 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 20:34:44 ] VC++.NETでポリゴンのモデリングツールを作ろうと足掻いてます。 (メタセコなどの存在は知っていますが自分好みのを作りたいのです。) しかしmeshというものがいまいち理解できません。 頂点バッファなどの内容をあえてmeshで管理する利点があるのでしょうか? 形状作成機能でティーポットなんて作っても仕方が無いし、 ネットで調べても外部ツールで作成したXファイルを読んでといった説明ばかりで、 meshデータに対して頂点追加や編集したりといったものを見付ける事が出来ませんでした。
451 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 20:44:15 ] >>447 抜けれないから困ってんだよ
452 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 20:57:46 ] >>450 D3DXMeshのことを言ってるんなら 俺みたいな馬鹿が簡単にポリゴンを描画できるようにしたもの だから頂点を編集するような機能がほしければ自分で頂点バッファを管理するべき
453 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 21:15:06 ] >meshで管理する利点 meshはmeshを含めれるので 頂点バッファとかの管理が楽になる
454 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 22:31:54 ] >>450 それ以前の問題として、チュートリアルはきちんと終わらせたのか?
455 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 00:56:41 ] D3DXは使うなと何度言わせれば気が済む
456 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 01:00:26 ] メッシュの頂点バッファとかインデックスバッファ取得する関数あるだろ それ使えばいいじゃん
457 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 01:42:31 ] >>456 それって頂点の追加できたっけ
458 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 05:20:42 ] DirectSoundでキャプチャしながらエフェクト再生するのはDirectSoundFullDuplexCreate8じゃないとできない? DirectSoundFullDuplexCreate8がどうもうまくいかないからDirectSoundCaptureCreate8でキャプチャして他に作ったセカンダリバッファに渡してエフェクトかけて再生しようと思うんだけどできますか?
459 名前:450 mailto:sage [2009/04/10(金) 06:18:12 ] ある程度概要を流し読みしてドロウイングツールをLine文で作ってたときのような感覚で ぶっつけ本番いこうとしてます。 やっぱり頂点バッファやインデックスバッファでやればいいんですね。 そもそもモーフィング的なこともするつもりだから全頂点の移動などもやらないといけないし。 あえてメッシュが存在してるのはビデオカードのハード的な面で 大きな利点があるのかと思ってました。 ありがとうございました。
460 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 07:52:06 ] 頂点バッファやインデックスバッファを統合したものがメッシュなんだが、 いったい何を言ってるんだ?
461 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 08:04:45 ] ただの思い込みだろ?突っ込んでやるなよ・・・・
462 名前:デフォルトの名無しさん [2009/04/10(金) 18:00:20 ] スキンメッシュからDXUT除去してくれ
463 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 22:51:59 ] DXUT外す手間をかける時間があれば、自前のスキンメッシュ作れるんじゃね?
464 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 22:55:50 ] ならスキンメッシュの仕組みと実装例が詳しく載ってる資料を下しあ
465 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 22:57:29 ] カスはどこまでも他力本願だな
466 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 23:13:37 ] スキンメッシュ部分を自作プログラムに組み込んだが上手く行かない エラーで強制終了する どの部分をどうやって使うのか 実装サンプルくれよーーーーーーーーーーーーーー
467 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 23:45:40 ] LWS→自前形式変換ツールの95%がd-stormのdevkitをまんまぱくったやつでな。
468 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 23:46:29 ] ソースコードの分量の話な。
469 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 00:19:42 ] 複数のアニメーションを含んだXファイルをDirectX Viewerで全て確認することは出来ないのでしょうか。
470 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 00:30:42 ] 出来る
471 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 03:52:14 ] ソースを見る限りアニメーションを変更してる箇所はなさそう てか、ツールも全部ソースついてるんだから書き換えてカスタマイズすればいいじゃない
472 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 07:17:33 ] レスありがとうございます。 自前で再生は出来ているので、軽量化して代用しますわ。
473 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 09:37:45 ] ■警察が自殺と断定、または事件性が無いと判断したもの │ ├自動車事故で胸部大動脈損傷したあと5キロほど車を運転して、橋の欄干から5mほど飛行して投身自殺した自衛官 │ ├400kgの重りを自分で身体に縛り付けて海に飛び込んだ高校生 │ ├時速80キロで、ガードレールとガードレールのわずかな隙間を │タイヤ痕ひとつ残さない絶妙な運転テクニックですり抜けて50m下へ転落したナース集団 │ ├ロープを首に巻いて空中浮揚し門扉にひっかかったタクシー運転手 │ ├証拠品の銃を奪い取って別の袋から再装填しわざわざ離して自分の │胸に発射、ただちに飛び散った血をふき取って取調室を掃除、この間5秒。 │ ├逆立ちしてマンションの窓際まで、指でひきずった跡をつけながら歩行、 │足から逆エルードして手すりにぶら下がり、空中で方向転換して50cmの隙間に向けて飛行した市議会議員 │ ├わざわざ動脈と反対側の手や腕の甲を切って自殺しようとするも未遂、 │自分で自分の背中に針金でおもりを結びつけて川にうつぶせになり死亡 │ ├火の気のない玄関で人体発火現象を起こして、燃え尽きるまで気管に煤が入らないようじっと息を止めて待ってた審査委員長 │ ├手首の甲をリスカして全身をメッタ刺ししてから、血の跡ひとつつけずに非常ボタンを押した証券会社副社長 │ ├口の中に靴下を入れたままガムテープで口を塞ぎ、両手を後ろで手錠により │拘束し左手には手錠の鍵を持ち玄関内で衣服の乱れもなく窒息死した記者 │ └玄関と窓、共に無施錠のまま首に電気コードを巻かれ、寝室に血痕を残した上で2階から落下したネイリスト
474 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 09:38:32 ] いままでの警察に自殺と発表された例 * 大阪、タクシー運転手 - 首にロープを巻いて、家の門扉の前でジャンプしロープを門扉にひっかけて首吊り。門扉の高さは数mあった。 * 東京、アフガン航空常務 - 全財産をつぎ込んだFX取引きで失敗し、社内で自分の心臓を刺してから窓枠を乗り越えて離陸。 * 大阪、社長 - 全身をロープと粘着テープで縛って、ビル屋上の鉄柵を飛び越えた。 * 千葉、少年 - 全身をロープと手錠で縛って、柵に囲われた線路に飛び込み。 * 東村山市議 - 逆立ちしてマンションの窓際まで、指でひきずった跡をつけながら歩行、足から手すりにぶら下がり、空中で方向転換して50cmの隙間に向けて飛行。 * 沖縄、社長 - 全身をめった刺しにして自殺。背中や手の甲もきちっと刺してあった。血の跡ひとつつけずに非常ボタンを押した。 * 大阪、潜水ルポライター - 水深数十センチの川で全身を縛ってめった刺しにしてからうつぶせに水中に横たわった。ご丁寧に背中に重しまで乗っけた。 * 神戸、ヤクザ - 自分で自分の首をはねて自殺した。首はみつかっていない。 * 東京 - 火の気のない玄関で人体発火現象を起こして、燃え尽きるまで気管に煤が入らないようじっと息を止めて焼身自殺。 * 愛媛 - 風呂場で自分で自分の頭をハンマーで殴り自殺。 * 茨城、おばさん - 首吊りしたあと歩いて川に入り息を止めて自殺。気管には水なし。 * 熊本 - 某病院主要関係者を乗せ、峠道を時速80キロで、ガードレールのわずかな隙間をタイヤ痕ひとつ残さない絶妙な運転テクニックですり抜けて50m下へダイブ。 * 福岡、高校生 - 400kgの重しを抱いて海に飛び込む。 * 東京 - 頭に穴があく不思議な方法で首吊り。 * 千葉 - 首吊りをしてからわざわざ飛び降り自殺。死因は飛び降りではなく窒息。 * 名古屋 - 車で首吊りをしようとして首を切断。しかし、首がないまま駐車、車庫入れをこなす。 * 大阪 - 歩道橋から飛び降り自殺するも、なぜか歩道橋から45メートル離れた路上で発見される。
475 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 19:47:59 ] スキンメッシュからOnFrameMoveを除去したぜ
476 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 22:06:16 ] さらにOnCreateDeviceとOnResetDeviceも除去
477 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 22:23:46 ] それは報告しなくていいです。
478 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 22:30:19 ] スキンメッシュ部を抜き出し そろそろ自作プログラムで実装できそうだ いや〜ここまでが長かったなぁ デバイスロスト処理しないと一々メッセージウインドウでるんだな
479 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 11:52:30 ] フライトシミュレータで誘導ミサイルの軌跡を煙のビルボードで表示しているのですが、 一定時間で削除したり、遠いものは簡略化しても、 ミサイルの数によっては大量になりすぎてしまいます。 ビルボードを置く間隔を広くすると、煙の軌跡がつながって見えず、点線のようになってしまいます。 エースコンバットなどではどのような方法で表示しているのでしょうか?
480 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 16:49:46 ] 明らかにスレ違いだけど参考程度に。 ミサイルの煙は1本のテープのように長い帯で描かれている。 それだと横から見たら棒線に見え、場合によっては見えなくなるので帯を十字に配置。 ただ1枚の帯を2倍にしただけで処理が増えるので 今は帯をビルボードにして常にこちらを向いている帯(煙)を演出している。
481 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 17:18:25 ] 場合分け。 基本は帯。射影後の制御点が一定距離以下ならば帯を薄くしてビルボードを置いてゆく。 もちろんいきなり切り替わりのでなく透明度を変化させる。
482 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 19:21:30 ] 画面全体を覆う煙のテクスチャを用意して ミサイルの軌跡を求めて、ピクセルシェーダー使って軌跡との距離によって透明度を上げていく そうすれば1枚のテクスチャしか使わなくていいんじゃないか
483 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 19:32:23 ] 煙にテクスチャを何枚も使うことは少ないよ。 1枚のテクスチャに煙をアニメーションさせる絵を収めている感じかな。 バンプすら使わなかったりするし。
484 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 20:30:49 ] なんでデバイスがロストしちゃうの?
485 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 20:51:57 ] なんで人間は死んじゃうの?
486 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 22:01:18 ] DirectX11に期待
487 名前:479 mailto:sage [2009/04/12(日) 22:08:26 ] >>480-483 ありがとうございます。参考にさせていただきます。
488 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 22:35:59 ] デバイスのロストって8から?
489 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 23:07:46 ] デバイスのロストっていうか DiectDraw時代はサーフェースのロストって言ってたな
490 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 23:30:05 ] >>488 初期〜9まではロストする。
491 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 07:00:45 ] 10はロストしないの?何故?
492 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 08:44:33 ] 9Exもロスとしないよ
493 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 08:54:17 ] >>491 ドライバモデルの大幅な変更があったからな。
494 名前:デフォルトの名無しさん [2009/04/13(月) 12:50:35 ] 9EXって何?
495 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 14:00:08 ] IDirect3DDevice9Exのことじゃね 俺使ったこと無いけど
496 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 14:03:53 ] デバイスロストってのはVRAMの仕切り直しだからな
497 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 14:22:24 ] 昔の3Dゲームでよく一枚のポリゴンにテクスチャを張り付けて木や草などを表現していたと思うのですが、 あの手法ってなんていうんでしたっけ? 以前本で見た気がするのですが、今手元になく思い出せなくて困っています。 恐らく誰でも知ってるような名前だったと思うのですが、教えていただけますか?
498 名前:497 mailto:sage [2009/04/13(月) 14:32:05 ] すみません、今思い出しました、ビルボードです。 お騒がせしてしまい、申し訳ありません。
499 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 19:14:08 ] 書いてから気づくことはよくある。
500 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 19:27:15 ] 書き込んでから10分ぐらいかけてれば尚更だな。
501 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 21:35:35 ] 9EXはロストはしないけどVista以降専用じゃないっけ? なら最初から10使えよっていう。
502 名前:デフォルトの名無しさん mailto:sage [2009/04/14(火) 10:16:26 ] ハードの問題もあるし
503 名前:デフォルトの名無しさん [2009/04/14(火) 10:18:02 ] directsoundってチュートリアルとか解説本にプライマリバッファを作るところから始まってるけどネット上のサンプル見るとプライマリバッファに触れてないのが多いんだけど 内部でプライマリバッファが自動的に作成されてたりするのかな?
504 名前:デフォルトの名無しさん [2009/04/14(火) 18:22:40 ] 効果音は普通、セカンダリバッファを使う
505 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 00:20:37 ] >>441 Draw呼んだらキューに積むだけで Endのとき処理されるから。
506 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 14:13:57 ] ttp://www1.axfc.net/uploader/Ne/so/50100 上記ページにプロジェクトを載せております。 この自作ソースを生かして、 方向キーを押したらキャラクターがそちらを向きその直進方向に前進するようにしたいのですが、 カメラの向きに上下左右共動いてしまい、思うようにキャラクタが動いてくれません。 この原因は何でしょうか。 また、キャラクタが向いてる方に直進するようにするにはどうすればいいでしょうか。 昨日一日悩んだのですが、思うようにソースコードが書けず困っています。 どなたか教えてください。 現状ソースではRが右周り、Wが左回り、方向キーが上下左右の動きとなっております。 開発言語はC++ 開発環境はVisual C++ 2008 Express Edition OSはWindows XP です。
507 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 15:08:13 ] あちこちいじってエラーを打開できたんだけどどうしてできたのかわからん いじって戻していじって戻してって結局最初のソースのはずだけどなぜか正常に動いてる こういう場合どうやってできたのか知る方法ない?
508 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 15:10:16 ] 同じようにいじって動かなくして見る
509 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 15:12:40 ] ビルドする度にバックアップとる
510 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 15:17:20 ] バックアップつーか、Subversionでも入れてビルドのたびにコミットしとけばいい。 VS使ってるならAnkhSVNいいぞ
511 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 18:03:15 ] >>506 三角関数は知ってるよな? www1.axfc.net/uploader/He/so/217096.txt
512 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 18:10:22 ] >>511 解決しました。 一応数学は微分積分学、線形代数学まで学んでおりますが、 誰からもDirectX自体教わったことがないので手探りで勉強しております。 ありがとうございました。
513 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 18:13:53 ] 3D描画の各座標変換について学べばいいんではないだろうか。
514 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 18:33:47 ] スプライトのゲームなんだけど一枚の画像に 何種類かの絵が描いてあって常に足踏みをしながら 上下左右に動いた宝庫煮を向くにはどうすればいいの?
515 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 18:40:39 ] スレ違い
516 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 18:42:32 ] Direct3Dなんですが?
517 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 18:46:31 ] DirectX関係ない一般的な話なきがするが。 元絵の描画範囲指定すれば済む話だべ。 具体的なコードが出てくるのなら、DirectX関連として話してもいいのかもしれない。
518 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 19:09:17 ] Direct3Dにスプライトなど存在しない
519 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 20:00:05 ] ゲームのビルボードなんだけど一枚の画像に 何種類かの絵が描いてあって常に足踏みをしながら 上下左右に動いた宝庫煮を向くにはどうすればいいの?
520 名前:デフォルトの名無しさん mailto:sage [2009/04/15(水) 20:31:17 ] コピー元テクスチャの矩形範囲を適当に選ぶだけ。