- 1 名前:名前は開発中のものです。 [04/05/05 12:33 ID:dP7V/vQq]
- DirectXについては基本このスレで話していこうとものです。
基礎的な質問+高度な質問も簡潔かつ簡単に答えることをモットーにして頂き このスレの回転を早めて常にアクティブなスレにしたいと思っております。 このスレに質問等を書かれる方はまず最初に自分でしっかりと調べたのちに聞かれることをお願いします。 質問に対する答えも簡潔に出来る限りわかりやすくお願い致します。
- 667 名前:645 [04/09/01 15:28 ID:8UoVVY3m]
- >>664
こうなってます。 D3DPRESENT_PARAMETERS param; ZeroMemory(¶m,sizeof(param)); param.BackBufferWidth=640; param.BackBufferHeight=480; param.BackBufferFormat=D3DFMT_UNKNOWN; param.BackBufferCount=1; param.SwapEffect=D3DSWAPEFFECT_DISCARD; param.Windowed=TRUE;//ここをFALSEにすると起動した瞬間に終了してしまいます。
- 668 名前:名前は開発中のものです。 mailto:sage [04/09/01 15:45 ID:dJv1RoiI]
- やっぱそこか
フルスクリーンにしたいのにD3DFMT_UNKNOWN(フォーマット不明)はないんじゃないかと。
- 669 名前:名前は開発中のものです。 mailto:sage [04/09/01 15:45 ID:vT9g/rIC]
- >>667
今試したけど、フルスクリーンでD3DFMT_UNKNOWNにしたらデバイス作成失敗ぬるぽ。 GetAdapter〜とかできちんと取得したやつを使ったほうがよさげ。
- 670 名前:名前は開発中のものです。 mailto:sage [04/09/01 15:53 ID:dJv1RoiI]
- IDirect3D9::CreateDevice メソッド
・ウィンドウ モードのみについて、BackBufferFormat = D3DFMT_UNKNOWN。フルスクリーン モードの場合はフォーマットを指定する必要がある。 リファレンスより
- 671 名前:645 mailto:sage [04/09/01 15:58 ID:8UoVVY3m]
- >>668-670
ありがとうございます。 そこを変更してみます。
- 672 名前:名前は開発中のものです。 mailto:sage [04/09/01 16:26 ID:oBimBF/3]
- >>671 ヘルプぐらい読もうぜ
- 673 名前:645 mailto:sage [04/09/01 16:55 ID:8UoVVY3m]
- フルスクリーン化成功しました!
GetDisplayModeがよく分からなかったので、 色々調べてD3DFMT_R5G6B5にしたらできました。 R5G6B5は16ビットだということなのですが、 ということは256色しか表示できないということですよね? >>672 すいません、ヘルプも見たんですけど、 英語と専門用語ばかりでなかなか理解できなかったんです。 DirectXの入門用書籍でも購入したほうがいいでしょうか。
- 674 名前:名前は開発中のものです。 mailto:sage [04/09/01 16:58 ID:5CAaBj1y]
- はじめてDirectX触るんなら初心者向けの書籍を買っったほうがいいと思われ
とりあえず ・初期化まわり ・行列の基本的な使い方 ・ビュー、カメラの設定 ・ポリゴン表示 ・光源の設定 ・Xファイル表示 これくらいを網羅していれば簡単な3Dシューティングくらいなら作れるようになるべ あとはシェーダを理解すれば初心者卒業かなと思うけど、どうよ? 漏れも最初はヘルプのどこを見ればいいのかすらわからんかったし
- 675 名前:名前は開発中のものです。 mailto:sage [04/09/01 16:59 ID:5CAaBj1y]
- >673
…16bitだから65536色だと
- 676 名前:名前は開発中のものです。 mailto:sage [04/09/01 17:12 ID:vT9g/rIC]
- 2*2*・・・2(2^8)=256
2*2*・・・2(2^16)=65536
- 677 名前:名前は開発中のものです。 mailto:sage [04/09/01 17:16 ID:vT9g/rIC]
- >>673
日本語のヘルプも一応読んだほうがよさげ。 日本語訳はクソだが英語をあまり読めなさそうなので。
- 678 名前:名前は開発中のものです。 mailto:sage [04/09/01 17:22 ID:F+B8VPtk]
- >>673は日本語ヘルプの中の英語と専門用語が理解できないんだよ
- 679 名前:名前は開発中のものです。 mailto:sage [04/09/01 17:33 ID:BizjC3qm]
- プロファイリングの結果、>>673はガチ小学生。
彼はいずれお前らを凌駕するプログラマとして君臨することだろう。 「センパイそんなことも分からないんですか〜?」とか言ってな。
- 680 名前:645 mailto:sage [04/09/01 17:46 ID:8UoVVY3m]
- >>674
本屋に行って一回見てみます。 >>675,>>676 65536色でしたか。 >>677,>>678 日本語ヘルプはなかったような気がします。 >>679 お酒飲める年齢ですw
- 681 名前:名前は開発中のものです。 mailto:sage [04/09/01 17:48 ID:vT9g/rIC]
- SDKには付いてないけどExtraに付いてる
- 682 名前:645 mailto:sage [04/09/01 18:02 ID:8UoVVY3m]
- Extra・・・ですか。
調べてみます。 回答してくださった皆様、ありがとうございました。 フルスクリーン化できたので次は簡単なアニメーション表示でもやってみます。
- 683 名前:名前は開発中のものです。 mailto:sage [04/09/01 18:55 ID:somP4s0O]
- ブルースクリーン化なら思わぬ時に意図せず出来たりする。
- 684 名前:名前は開発中のものです。 [04/09/01 19:58 ID:W7LS8TrD]
- HLSL無しでお願いします。
面ごとに、ごくごく簡単な陰影を付けたいのですが、 法線無しでライティング計算をDirectXに任せる方法ってありますでしょうか? たぶん無いような気がするので、重ねてお尋ねしたいのですが、 自前でローカル座標から射影空間まで座標変換し、ライティングも計算して、TLVertex型で描画するのと、 固定パイプラインなどに任せるのでは、CPUなどにもよると思いますが、どちらが一般に早いのでしょうか? 自分でやってみた所、どう見ても後者の方が速かったのですが、 腕の良い人ならばどうなのかなと疑問に思いまして…。
- 685 名前:名前は開発中のものです。 mailto:sage [04/09/01 20:17 ID:ZFPpHuZW]
- ハードウェアT&Lが一般的な現状では、CPUが変換・ライティングを行うより、
GPUに任せた方が高速になるケースが多いです。 TLVERTEXを用いた描画では、CPUとGPUの速度差もさるこことながら、 VertexBufferを座標変換・光源計算の度に書き換える必要があるため、 VertexBufferの中身をCPUからアクセスできる空間(おそらくシステムメモリ)から、 GPUからアクセスできる空間(おそらくビデオメモリ)へ転送する時間の分、損になります。 法線無しでのライティングの計算ですが、HLSLなどを用いて書いたカスタムシェーダ 無しの場合、LVERTEX型+ライトマップを用いる方法がいいのではないでしょうか。 この場合、光源の向きや位置が動き回るケースでは使えませんが、 法線情報の無いLVERTEX型でも(前計算された)ライティングを行うことが出来ます。
- 686 名前:名前は開発中のものです。 mailto:sage [04/09/01 20:23 ID:ZFPpHuZW]
- あ、若干早とちりがありました。LVERTEXには元々色情報が含まれるので、
>面ごとに、ごくごく簡単な陰影を付けたいのですが、 というように、面単位で充分というのであれば、わざわざライトマップを 張らなくてもいいですね。
- 687 名前:684 mailto:sage [04/09/01 20:29 ID:W7LS8TrD]
- >>685-686
即レス、丁寧な説明な上、最適解まで頂いちゃってお礼の言葉もありません。 仰るとおり、まさに光源固定でいかに…みたいな所で悩んでいました。 ぼんやりとしていたハードウェアとの関係も、おかげで良く分かりました。 折角なのでライトマップも勉強してみます。ありがとうございました!
- 688 名前:名前は開発中のものです。 mailto:sage [04/09/01 21:08 ID:j8hhlc9/]
- >HLSL無しでお願いします。
>面ごとに、ごくごく簡単な陰影を付けたいのですが、 >法線無しでライティング計算をDirectXに任せる方法ってありますでしょうか? 頂点座標でデフューズキューブマッピング
- 689 名前:名前は開発中のものです。 mailto:sage [04/09/01 22:54 ID:5CAaBj1y]
- >678
そうだろね あのドキュメントオンリーではつらい初心者も多いだろうね ドキュメントの対象は開発者 入門書の対象は入門者(初心者) だから初心者は書籍買って読んで、ひととおりやってみた後でドキュメントを読み返すとわかるようになるんじゃないかな てゆうか漏れはそうだったけどね ドキュメントと付属のサンプルだけで勉強してる香具師は尊敬するよ 書籍じゃなくても思いつく限りの単語でググればソース公開してるところもあるし、それも参考になるよ(DirectX8以前のものも多いけど) あと初心者はいきなりゲームを作ろうとすると挫折率高いかも Xファイルのビューアとかパーティクルのデモみたいのをとりあえずの目標にしたほうがいいんじゃないかな 逆に言うとそれらが作れればちょっとしたゲームは作れるようになってるはずだからね
- 690 名前:名前は開発中のものです。 mailto:sage [04/09/02 00:25 ID:DFdFhu4y]
- ここに来てる人はどのくらいのものが作れるのだろう・・・。
プロもいるんだろうか。
- 691 名前:名前は開発中のものです。 mailto:sage [04/09/02 00:30 ID:lFLjvpBq]
- >>690
安心しろ、間違い無くいる。 つーか、プロの平均レベルが君が考えるほど高くないっていったほうが納得がいくだろうか? ネットで技術ページ立ち上げてる特異な人ばっかりに目がいくけど プロったって普通の人が大半だよ。
- 692 名前:名前は開発中のものです。 [04/09/02 10:02 ID:/RYufvp9]
- DirectGraphicsで透過色つき描画したいのですがどうしていいのか分かりません。
ググって調べたのですが、 DirectX Texture Tool でα値を持つddsファイルを作って、 それを読み込めばいいと出たのですが、 その通りにやってもできません。 DirectX Texture Tool の画面では透過した部分の色が水色になっているので、 αチャンネルを持つ画像自体はちゃんとできていると思います。 また、以下の記述を付け加える必要があると書いてあるサイトも見つけたので書いてみたのですが、 透過してくれませんでした。 lpD3DDevice->SetRenderState(D3DRS_ALPHAREF,(DWORD)0x00000066); lpD3DDevice->SetRenderState(D3DRS_ALPHATESTENABLE,TRUE); lpD3DDevice->SetRenderState(D3DRS_ALPHAFUNC,D3DCMP_GREATEREQUAL); この記述をする場所が悪いのかとも思い、 色々な場所で試してみたのですが、だめでした。 ■環境 BCC DirectX9.0b SDK ■参考にしたサイト ttp://www.plustarnet.com/aspil/Programming/2d10.htm ttp://www.c3.club.kyutech.ac.jp/~sukiyaki/dir/color.html どうすれば透過できるのでしょうか?
- 693 名前:名前は開発中のものです。 mailto:sage [04/09/02 12:18 ID:LRjExFEm]
- 見たところ、キミが有効にした機能はアルファテストであって、アルファブレンドではない。
- 694 名前:692 [04/09/02 14:22 ID:Oi5rE6iZ]
- >>693
ありがとうございます。 アルファブレンドの有効で調べてみたところ、 lpD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE); で有効にできるとのことなので、書いてみましたが透過されませんでした。 D3DXLoadSurfaceFromFile関数の第7引数でカラーキーを指定できるというのも見つかったのですが、 これを使うと、指定した色を透過することはできるのですが、 それで描画すると、その部分が最初に置いた画像まで透過されてしまい、 クリア時の色が見えて変な状態になります。
- 695 名前:名前は開発中のものです。 mailto:sage [04/09/02 15:27 ID:adWbTbum]
- アルファブレンドをどう演算するかの設定が入ってないし。
- 696 名前:名前は開発中のものです。 mailto:sage [04/09/02 16:03 ID:X1aaYsTe]
- >>694
DirectXサンプルに答えあるのになぜ見ない。
- 697 名前:名前は開発中のものです。 mailto:sage [04/09/02 16:41 ID:Htjhaa98]
- サンプルって分かりづらい。
- 698 名前:名前は開発中のものです。 mailto:sage [04/09/02 16:55 ID:klIDF0Ic]
- RenderState関係のALPHAとついていないものも含めて、色々いじってみながら動作確認していってはどうでしょうか
RenderState関係の値がどんな意味をもってるのか、どう変わるのかがわかるから
- 699 名前:名前は開発中のものです。 mailto:sage [04/09/02 16:58 ID:8nv1HKpX]
- サンプルがあればこのスレいらんね
削除依頼だしとけよ
- 700 名前:名前は開発中のものです。 mailto:sage [04/09/02 17:42 ID:+UoAnpem]
- 夏休みも終わったというのに可愛い逆ギレをするなあ。
- 701 名前:692 [04/09/02 17:51 ID:3tiwSpK0]
- ありがとうございます。
>>695 アルファブレンドの演算で探してみましたがなかなか出てきません。 これかなと思うものを見つけたのでこれを書いてみましたがちゃんと思い通りに表示してくれませんでした。 lpD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE); lpD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA); lpD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA); >>696 サンプルはどれを見ていいのか分からない上、 虱潰しに見てもインクルードとデファインの量が多くて混乱します。 読んでるとどれが自作関数なのかとかわけが分からなくなってきます。 >>698 なるほど。 やってみます。 αブレンドについて検索していると"テクスチャ"に関しての頁がよく引っかかるのですが、 "テクスチャ"が出てくるということは3Dですよね? 2Dオンリーでいきたい場合でも、スプライトを作成して3Dのように作っていくものなんでしょうか? 描画するときに、 lpD3DDevice->StretchRect 関数を使っているのですが、 これはあまり見ません。
- 702 名前:ゼロ [04/09/02 18:24 ID:aGa7pwv+]
- ?
- 703 名前:名前は開発中のものです。 mailto:sage [04/09/02 20:15 ID:RLMoPQta]
- 2Dのみでいく場合でもテクスチャを張ったポリゴンを描画するのが一般的です。
テクスチャ座標を持ったトランスフォーム済み・ライティング済み頂点(=2D+深度の頂点)を用意して、 DrawPrimitive(UP)などで描画します。
- 704 名前:名前は開発中のものです。 mailto:sage [04/09/02 20:20 ID:u7CBECU0]
- ひょっとして描画ってlpD3DDevice->StretchRectでやってんのか。
それじゃ抜けるわけねーだろ。
- 705 名前:692 mailto:sage [04/09/02 20:48 ID:Rip4iOsW]
- >>730,>>704
ありがとうございます。 根本的に間違ってたみたいですね。 3D表示のほうを勉強しなおしてきます。
- 706 名前:名前は開発中のものです。 [04/09/03 03:29 ID:mQdBoXPi]
- スプライトの表示ができません。
起動して一度はフルスクリーンになるのですが、すぐに終了してしまいます。 色々調べたところ、132行目・150行目(lpD3DXSprite->Begin();・lpD3DXSprite->End();)に問題があるようです。 この2行をコメントアウトした場合、画像こそ表示されないものの、 勝手に終了することはありません。 スプライトの作成に失敗したのかとも思い調べてみましたが、 スプライトの作成には成功しているみたいです。 検索してサンプルソースと見比べても、特におかしいところもないみたいなのですが・・・ その他、読み込む画像の形式を変えてみたり(BMP,DDS)もしましたが、 解決しません。 コンパイルは通ります。 ttp://shiva.dip.jp/up/box/up3042.zip どこが悪いのかわかりません。 分かる方よろしくお願いします。 環境は DirectX SDK 9.0b BCC5.5 です。
- 707 名前:名前は開発中のものです。 mailto:sage [04/09/03 03:37 ID:D9hj8w5h]
- >706
VCでコンパイルしてみたけど動いたよ 環境としてグラボも書いたほうがいいと思う あとVCでは以下をはずす必要があったけど #define sqrtf(float)sqrt #define atanf(float)atan #define asinf(float)asin #define acosf(float)acos #define tanf(float)tan #define sinf(float)sin #define cosf(float)cos
- 708 名前:名前は開発中のものです。 mailto:sage [04/09/03 04:19 ID:zHuFk72Z]
- DirectXサンプルを実行してみろよ
- 709 名前:名前は開発中のものです。 mailto:sage [04/09/03 04:22 ID:mKkDrrPi]
- >>706
うちもBCCでコンパイルしたら動いたから、グラボの詳細も書いたほうがいいかも。
- 710 名前:706 [04/09/03 12:57 ID:NP76qImc]
- >>707
それはBCCでコンパイルする際に書かなきゃいけないやつです。 >>708 ・・・DXSDK\Samples\C++\Demos\Donuts4.exeは動作しませんでした。 >>707,>>709 グラフックボードの詳細です。 DirectX診断ツールで調べました。 Card name: ATI RAGE MOBILITY AGP (Japanese) Manufacturer: ATI Chip type: ATI RAGE Mobility P/M AGP 2X (A21/2) DAC type: ATI Internal DAC Device Key: Enum\PCI\VEN_1002&DEV_4C4D&SUBSYS_112A10CF&REV_64 Display Memory: 4.0 MB Current Mode: 1024 x 768 (16 bit) (60Hz) Monitor: ( Monitor Max Res:
- 711 名前:名前は開発中のものです。 mailto:sage [04/09/03 16:02 ID:D9hj8w5h]
- >710
>Chip type: ATI RAGE Mobility P/M AGP 2X (A21/2) >Display Memory: 4.0 MB なんか非常に怪しいですね モバイル関係はよく知りませんがDirectX9未対応なのでは? DirectX8でも(特にシェーダとか)微妙なんじゃないでしょうか? ノートなんですかね ノートは基本的に3Dには向かないと思います
- 712 名前:名前は開発中のものです。 mailto:sage [04/09/03 16:42 ID:VHIOAUu5]
- ATI RAGE「D3D? ガーハッハ、無理言っちゃいけねえなボーズ」
- 713 名前:名前は開発中のものです。 mailto:sage [04/09/03 16:53 ID:m4KK640w]
- 最近DirectX勉強し始め、
ポリゴンの三角形を表示できるようにはなったのですが、 分からなかったことがあるので、質問させてください。 「表示した三角形の"頂点一つ"を(カーソル等で)動かす」のような処理は どうすれば出来るのでしょうか? ポリゴン自体を書き直すか、 VertexShaderを使うしかないのでしょうか・・・?
- 714 名前:名前は開発中のものです。 mailto:sage [04/09/03 16:54 ID:KBFEjnb4]
- VertexShader「表示した三角形の"頂点一つ"を(カーソル等で)動かす? ガーハッハ、無理言っちゃいけねえなボーズ」
- 715 名前:名前は開発中のものです。 mailto:sage [04/09/03 17:02 ID:+shE9lEk]
- >>713
ロックするかシェーダー使って動かすだけ。
- 716 名前:名前は開発中のものです。 mailto:sage [04/09/03 17:02 ID:hc6Qu0Tn]
- >713
VertexBufferいぢれ
- 717 名前:名前は開発中のものです。 mailto:sage [04/09/03 17:10 ID:m4KK640w]
- >>714,>>715,>>716
レスサンクスです。
- 718 名前:名前は開発中のものです。 mailto:sage [04/09/03 17:27 ID:UnJ5gJIj]
- シェーダーってなんですか?
- 719 名前:名前は開発中のものです。 mailto:sage [04/09/03 17:28 ID:nqcp3fv5]
- ∧⊂ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(゚Д゚)ノ < シェーダ | ⊃| \__________ | | ⊂ノ〜 ∪
- 720 名前:名前は開発中のものです。 mailto:sage [04/09/03 17:34 ID:8jbSe5Fl]
- 影男
- 721 名前:706 [04/09/03 17:54 ID:Nns2Tjlt]
- >>711
はい、ノートです。 どこが怪しいのでしょうか? グラフィックカード自体分からないので、これが何なのかよく分かりません。 俺以外の人がコンパイルしてうまくいくということは、俺のグラフィックカードが問題なんでしょうか? DirectX診断ツールの、ディスプレイのところの、 「Direct3Dのテスト」というやつをやってみたのですが、 Direct3D7、Direct3D8、Direct3D9のテストは全て成功しました。 結局俺はどうすればいいのでしょうか?
- 722 名前:名前は開発中のものです。 mailto:sage [04/09/03 18:39 ID:D9hj8w5h]
- >721
DirectX UtilitiesのDirectX Caps ViewerでHALの機能をチェックすれば多分未対応の機能が特定できるはずなんだが よくわかってないと、何がなんだかわからないかも まずDirectX9の開発や学習を行うならDirectX9対応のグラボが必要 まずは対応グラボから調べてみましょう そして対応グラボを積んだマシンを組みましょう 今ならDirectX9対応PCでも5〜6万で組めるはず で、どうしてもお金がないというならLPD3DXSPRITEつかうのやめて自力でポリゴン使ってみてください
- 723 名前:名前は開発中のものです。 mailto:sage [04/09/03 22:45 ID:qaGI/40e]
- >>721
てか、そのグラボDirectX6までしか対応してないし。
- 724 名前:706 mailto:sage [04/09/04 00:06 ID:+XRuHJsS]
- >>722,>>723
ありがとうございます。 グラフィックカードを調べてみます。
- 725 名前:名前は開発中のものです。 mailto:sage [04/09/04 18:41 ID:vHiVY+yT]
- 漏れのノートはIGP340Mだが、
ピクセルシェーダを使ったプログラムはまったく映らんな。 バーテックスシェーダの方は普通に映るが。 ピクセルシェーダはソフトウェアエミュレーションはまったくダメポ? DirectX8 SDKベースだからかもしれないが。
- 726 名前:706 [04/09/04 20:17 ID:cci5DIFE]
- あ、ちょっとまってください、重要なことに気づきました。
ソースを組んでみるあたって、配布されていたサンプルを参考にしたのですが、 そのサンプルに添付されていたサンプルの実行ファイルは正常に動作します。 どういうことなんでしょうか? 俺のグラフィックカードがDirectX9に対応してないことは分かったのですが、 動くものと動かないものがあるのはこれはどういうことでしょうか? まだ練習段階なので、そのサンプルで使われていない関数とかは使ってないはずなんですが・・・ 参考にしたのは、ここの「Direct3DXを使った2Dの描画」というサンプルです。 ttp://www.geocities.jp/toru_website/sample/index.html#dxg
- 727 名前:名前は開発中のものです。 mailto:sage [04/09/04 21:13 ID:OKPz2Xkg]
- >>725
IGP340MはVS11のみ対応。 ノート用にしてはまずまずの性能だが、 固定パイプラインでテクスチャフェチ同時可能数3がキツイ。 >>706 つーか基本中の基本 デバックモードにして出力メッセージ確認はやったのか? あとID3DXSpriteはDirectX9.0cで仕様が変わったから そっちに変更してみたら? まあどうせGPUの限界が原因だろうから意味は薄いだろうが。
- 728 名前:名前は開発中のものです。 [04/09/04 23:32 ID:YrqQlDJp]
- SDK Update (Summer 2004)をインストールしたら
vs.netのDirectXウィザードで作られたアプリがビルドできなくなった。 名前空間がないとかどうたら言われて・・・
- 729 名前:名前は開発中のものです。 [04/09/04 23:51 ID:TzAUQGCx]
- >>728
俺はできるからいいよw
- 730 名前:名前は開発中のものです。 mailto:sage [04/09/05 02:05 ID:hJdI6Df1]
- タイトル画像を表示するために、
ポリゴンを640x480で作ってそれにテクスチャ(640x480)を貼って表示したんですが、 ただ一枚の画像を表示しただけなのに少し重くなりました。 directxを使った方法でこれより軽い方法ってあるのでしょうか?
- 731 名前:名前は開発中のものです。 mailto:sage [04/09/05 02:11 ID:8dhLI02S]
- 640x480は内部で1024x1024として作られるから小さいのを継ぎ接ぎにすると多少パフォーマンスがあがるかも。
ただの一枚でも64x64と512x512とでは全然違う。
- 732 名前:名前は開発中のものです。 mailto:sage [04/09/05 02:44 ID:3KHpp+4T]
- >>730
フィルレート
- 733 名前:名前は開発中のものです。 mailto:sage [04/09/05 03:09 ID:tTlwq+YH]
- 単純なコピーができればいいだけなら、
2の累乗に縛られるテクスチャじゃなくて、単なるSurfaceで済ます事も出来無くないが。
- 734 名前:名前は開発中のものです。 mailto:sage [04/09/05 04:20 ID:pC/wep5Y]
- >>732
>>733 どういうことなのでしょうか?詳しく教えてくだせえ。 やっぱりGDIでタイトルを描画するのはおかしいですか? これだとGDI→DirectXの描画はできても、 DirectX→GDIはできないんですかね? DirectXのClear()じゃ、指定した色で塗りつぶすだけだから、 DirectXの描画すべてをクリアすることはできないんですよね?
- 735 名前:名前は開発中のものです。 mailto:sage [04/09/05 05:23 ID:Fc3G1uKT]
- タイトルバー付きの一般的なウィンドウでDirectGraphics使う時に
タイトルバーをドラッグしたり、右クリックしてコンテキストメニュー出したら 描画が止まっちゃうのって、どうやって回避すればいいんでしょうか? 最初ウィンドウのメッセージループで描画処理してたので 「そりゃ止まるだろ」と思って描画は別スレッドでするようにしたんですけど やっぱりタイトルバーをドラッグすると描画が止まります
- 736 名前:名前は開発中のものです。 mailto:sage [04/09/05 05:33 ID:FYW/iZdZ]
- 描画だけ別スレッドにしても止まるのは変わらないと思われ
- 737 名前:名前は開発中のものです。 mailto:sage [04/09/05 06:05 ID:Fc3G1uKT]
- >>736
描画だけのフレームワークなので、描画のチェックは Clearの色を適当に変えてただけなんです・・・けど、 その適当に変わる値を何も考えずにメインスレッドから取ってましたw 言ってる意味はわかるけどまだその部分つくってねーしとか思ったんだけど よくよく考えてみたら言われたとおりの症状だったという どうもお騒がせ致しました
- 738 名前:名前は開発中のものです。 [04/09/05 20:09 ID:LNnO5mBK]
- ところでDirect3Dでは四角以上の多角形ポリゴンは直接扱えないの?
TriangleStripを使うべき?
- 739 名前:名前は開発中のものです。 mailto:sage [04/09/05 23:24 ID:nFAyJf81]
- >ところで
何がどころでか意味分からん。 >Direct3Dでは四角以上の多角形ポリゴンは直接扱えないの? 扱えない。 >TriangleStripを使うべき? 状況による。
- 740 名前:名前は開発中のものです。 mailto:sage [04/09/06 00:30 ID:R0ZILSWw]
- まぁそのとおりだな
- 741 名前:706 [04/09/06 18:43 ID:V8QjG5yQ]
- >>727
すいません・・・よく分かりません・・・ ところで ■ビデオボード Direct3Dに対応していること 8MB以上のVideoRAM推奨 ■その他 DirectX8.0以上 と書かれたDirect3Dで3D使いまくり、DirectShowでAVI流しまくりの市販のゲームが正常に動作するのですが、 これはDirectX8で作れば俺のPCでも動くことを意味していますか?
- 742 名前:名前は開発中のものです。 mailto:sage [04/09/06 19:07 ID:VOwrNc7g]
- >>741
いいえ
- 743 名前:名前は開発中のものです。 mailto:sage [04/09/06 19:17 ID:/1KZ5ffN]
- >>741
>これはDirectX8で作れば俺のPCでも動くことを意味していますか? マジレスすれば「わからない」 正確にいえば、プログラムとあなたのPCのグラボ(及びドライバ)との相性次第。 わかりやすく言うと たとえば頂点シェーダを使おうというプログラムを動かす。 ・グラボが対応した機能を持っている場合ハードウェアでその処理を行う(HAL) ・持っていない場合、ドライバが代替処理を行う(HEL) ・代替処理すら行えずに、失敗した旨だけをプログラムに返す場合もある :失敗が返ってきたらどうするか、の処理をプログラムが行う 続行不可と判断したらそこで落とすかもしれないし、なにか別の処理で誤魔化すかもしれない :プログラムがそのへんきちんと対処してない場合 落ちたり凍ったり、最悪そのまま無視して進んだりする あなたのグラボが「何が出来て何が出来ないか」に対し プログラム側は「出来ない場合どうするのか」に神経を配る必要がある。
- 744 名前:706 [04/09/06 22:51 ID:V8QjG5yQ]
- ありがとうございます。
難しいですね・・・ DirectXSDKの別のバージョンを入れてみようと思うのですが、 Directx8.0aとDirectX9.0cならどちらがいいでしょうか? OSはWindowsXPHomeです。
- 745 名前:名前は開発中のものです。 mailto:sage [04/09/06 23:42 ID:WEaSKQOC]
- >Directx8.0aとDirectX9.0cならどちらがいいでしょうか?
状況による。
- 746 名前:名前は開発中のものです。 mailto:sage [04/09/07 00:21 ID:S4jjegxl]
- 互換があるから最新の入れとけば済むはなしだろ
- 747 名前:706 [04/09/07 03:40 ID:5msrndUr]
- >>745,>>746
状況は・・・ >>721-723みたいな状況なんです。
- 748 名前:名前は開発中のものです。 [04/09/07 05:49 ID:v4ArB185]
- だからなんでも人に聞くなって
SDKが怪しいと思うなら換えてみて自分で確認すれば済むでしょ。 DIRECT3D_VERSIONはちゃんと指定するように ただ、コンパイラが通らないならともかく実行時におかしいなら SDKの問題である可能性はかなり低いのでは? ソースは読んでナイけど dxinfo (ttp://www.netsphere.jp/dxinfo/)で確認してみたら 該当するグラボは、サポートしてる機能がかなり少なめなので サポートしていない機能をどっかで使っているんじゃないすか? あと、ドライバは当然最新の物を使ってますよね?
- 749 名前:706 mailto:sage [04/09/07 12:02 ID:TBCKv50G]
- >>748
ありがとうございます。 それじゃ実際に換えて試してみます。 とりあえずDLだけで20時間以上かかるので、すぐには試せませんがw SDKの問題ではなくグラフィックカードのほうが問題のようです。 それで、他のバージョンのSDKなら俺のグラフィックカードでも大丈夫かなと思いまして。 ドライバは最新のものを入れてます。
- 750 名前:名前は開発中のものです。 mailto:sage [04/09/07 13:48 ID:4Njek968]
- スレチガイかも知れないけどdirectXとopengl使わないで
ビデオカード使うにはどうやればいいの?
- 751 名前:名前は開発中のものです。 mailto:sage [04/09/07 14:22 ID:zH/qJkXJ]
- 今こそglideを使うときですよ。
- 752 名前:名前は開発中のものです。 mailto:sage [04/09/07 15:14 ID:IilOrdDt]
- WinG
- 753 名前:名前は開発中のものです。 mailto:sage [04/09/07 18:23 ID:aTZU5RUu]
- >>706
つうかリファレンスラスタライザでいいじゃん。 俺もノートだけどピクセルシェーダ使えないから リファレンスラスタライザで開発してる。
- 754 名前:名前は開発中のものです。 mailto:sage [04/09/07 19:51 ID:tgI+eKEd]
- オレもノート買いたいんだけど、シェーダー開発するのに
グーなGPU搭載ノートパソコンはなに?
- 755 名前:706 mailto:sage [04/09/07 19:59 ID:38FrSDaD]
- >>753
リファレンスラスタライザ使ってみましたが変わりません。 やっぱりグラフィックボードが駄目みたいです。 #DirectX9.0cSDKは4%ダウソ完了。
- 756 名前:名前は開発中のものです。 mailto:sage [04/09/07 20:47 ID:aTZU5RUu]
- >>755
リファレンスラスタライザはそういう ハードが原因の出来る出来ない問題を解消する為にあるんだぞ。 そんな訳あるかいな。 DXのコンパネ開いて、リリースビルドからデバックビルドに変更、 メッセージレベルも最高にして、デバッカから問題のアプリを起動させて 出力メッセージをコピペしろ。
- 757 名前:名前は開発中のものです。 mailto:sage [04/09/07 20:58 ID:aTZU5RUu]
- >>754
MOBILITY RADEON 9700が載ったノートが割安みたいだな。 ワンランク落としてPS1.x対応のモデルでも良いかもしれんが お勧めはしない。
- 758 名前:名前は開発中のものです。 mailto:sage [04/09/07 21:55 ID:mO8jfU22]
- 9c SDKでとうとうVC6捨てられたみたいね。
- 759 名前:754 mailto:sage [04/09/08 01:30 ID:7mDX3neD]
- >>757
ありがとう。NVIDIAのよりいいかな? うちのデスクトップRadeon入れているんだけど、この2年間,ドライバーのバグ具合にホント悩まされたんで、ATIのは2度と買わないって誓っちゃったんだよな。 まぁ、ノートだと選択の余地が無いからしかたないけど。
- 760 名前:名前は開発中のものです。 mailto:sage [04/09/08 11:30 ID:+1JPiLMx]
- kettya.com/notebook/sony/s90.htm
これ買っとけ。 つーかRADEON 9700選べるの知らずに、店頭のRADEON 9200版買っちまった俺。_| ̄|○ まあ、それなりに満足なんだけどさ。
- 761 名前:名前は開発中のものです。 mailto:sage [04/09/08 11:31 ID:+1JPiLMx]
- あ、ちなみにそろそろノートPCは新モデルの時期だから、
新しいの買うにせよ型落ち品買うにせよ慎重にね。
- 762 名前:名前は開発中のものです。 mailto:sage [04/09/08 11:34 ID:ynCgLjJ8]
- >>759
ATIのドライバは今でも地雷だらけだよ。 ドライバを更新したいときは一度ハードウェア板いって人柱(笑)の出現を待ったほうがいい。 自分のもってるグラボと同じ人の報告が上がるまでドライバの更新はしないほうがいい。 アンインストールしても直らない場合が結構ある。(レジストリやらなんか設定色々いじらんと直らないし) #ハードウェア板ではドライバはnVidiaの方が上ってことで既出になってる。 #でもnVidiaってねぇ〜w
- 763 名前:名前は開発中のものです。 mailto:sage [04/09/08 11:46 ID:cVJ+TfVR]
- やっぱ本命は3dfxかな。
フルスクリーンオンリー萌え! 16bitカラーオンリー萌え! カード馬鹿でかメモリ無駄使い萌え! 単なる2DライブラリGlide萌え!
- 764 名前:名前は開発中のものです。 mailto:sage [04/09/08 13:37 ID:3fx3Gv2j]
- www.kiken.jp/pc/jisaku/imgbox/img20040819160232.jpg
これ買っとけ
- 765 名前:706 [04/09/08 14:26 ID:3qmea7dT]
- >>756
あ、なるほど、 リファレンスラスタライザってそのためにあるんですか。 えっと・・・自分で調べてリファレンスラスタライザにしたんですが・・・ リファレンスラスタライザにするときは、 CreateDeviceの第二引数を D3DDEVTYPE_REF にするだけでいいんですよね?
- 766 名前:名前は開発中のものです。 mailto:sage [04/09/08 16:45 ID:tD94+aR+]
- >>762
2chの情報なんか信じられるかよ
- 767 名前:名前は開発中のものです。 mailto:sage [04/09/08 17:28 ID:P9Md9loJ]
- >>710
#ifdef __BORLANDC__ #endif で囲いなよ・・・
|

|