DirectX総合スレ (Part9)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/02/11(水) 05:00:58ID:viN0kzG2■過去スレ
DirectX総合スレ
Part 8: http://pc11.2ch.net/test/read.cgi/gamedev/1205306118/
Part 7: http://pc11.2ch.net/test/read.cgi/gamedev/1179516297/
Part 6: http://pc11.2ch.net/test/read.cgi/gamedev/1163691532/
Part 5: http://pc8.2ch.net/test/read.cgi/gamedev/1157727402/
Part 4: http://pc8.2ch.net/test/read.cgi/gamedev/1132937938/
Part 3: http://pc5.2ch.net/test/read.cgi/gamedev/1105333209/
Part 2: http://pc5.2ch.net/test/read.cgi/gamedev/1095863432/
Part 1: http://pc5.2ch.net/test/read.cgi/gamedev/1083728025/
0733名前は開発中のものです。
2009/09/23(水) 15:25:12ID:3gqevorR0734名前は開発中のものです。
2009/09/23(水) 15:45:24ID:nTo6CkVE0735名前は開発中のものです。
2009/09/23(水) 16:11:35ID:m/YblDRhそれの切り替え回数を出来るだけ少ないようにするってのが速かったと思うんだが
今でも底辺に合わせるならそれなんじゃねーのかな
256x256にして切り替え回数をまったく減らせないのであれば大きい方1枚がいいんじゃね?
0736名前は開発中のものです。
2009/09/23(水) 18:37:56ID:6iJxx7kT単純に切り替えて「ああ、そうか」とか結論を出すのも駄目
つまり、シーン毎にやってみるしかない
0737名前は開発中のものです。
2009/09/25(金) 15:12:54ID:jyLx60BE色々と知らなかった事情も知れて勉強になりました。
テクスチャを展開する場所も重要な訳ですね。
ありがとうございます。
0738名前は開発中のものです。
2009/09/25(金) 21:50:39ID:CaKKOxxc0739名前は開発中のものです。
2009/09/26(土) 18:16:15ID:aslwUzkyUVを変化させて水流などを表現する方法は、昔から標準的に使われていますよ。
(UVスクロールなどと呼ばれています。)
単純な技法ゆえに、一枚板ポリゴン上でおこなった場合は見た目があまり面白くありません。
しかし、グラフィックデザイナーの手によるポリゴンの繋ぎ合わせ・重ね合わせの妙のおかげで、
かなり見映えのする川や炎の表現になります。
0740名前は開発中のものです。
2009/09/27(日) 01:34:23ID:V6ttYBA5皆さんテクスチャの画像形式は何を使っていますか?
今のところ最初読んだ本に従ってbmpを毎回dds形式に統一して読み込んでいるのですが、容量ばかり多くてメモリを喰うもので。。
ついでにddsファイルの利点も教えていただけるとありがたいです。
0741名前は開発中のものです。
2009/09/27(日) 03:23:24ID:gpJIcbqR0742名前は開発中のものです。
2009/09/27(日) 04:12:58ID:jhWyqA9Gテクスチャ圧縮とか使うならともかく。
0743名前は開発中のものです。
2009/09/27(日) 05:12:13ID:+LiXIQ5c0744名前は開発中のものです。
2009/09/27(日) 10:38:58ID:syUY7XWvこのへんの機能を使うならDDSオンリーになるとおもうんだけど。
0745名前は開発中のものです。
2009/09/27(日) 12:25:33ID:ErInkGhk今のところddsで問題無いからddsでやってる。
まあ、テクスチャ合計で10MBくらいだから大丈夫なんだけど。
でも、圧縮かけてメモリ上に置いておくと、描画の度に展開すると速度が
犠牲になりそう。
シーンごとに必要なテクスチャを分けておいて、シーソ移動ごとに必要なものだけ
展開してメモリに置いとくとかすれば良さそう。面倒になるけど。
0746名前は開発中のものです。
2009/09/27(日) 12:29:36ID:cIkrjluV0747名前は開発中のものです。
2009/09/27(日) 14:50:35ID:syUY7XWv0748名前は開発中のものです。
2009/09/27(日) 15:09:16ID:gpJIcbqR0749名前は開発中のものです。
2009/09/27(日) 15:09:58ID:gpJIcbqR0750名前は開発中のものです。
2009/09/27(日) 15:18:47ID:hp5UHszX0751名前は開発中のものです。
2009/09/27(日) 15:19:38ID:syUY7XWv0752名前は開発中のものです。
2009/09/27(日) 15:25:52ID:hp5UHszXフリーゲームや同人の現実
0753名前は開発中のものです。
2009/09/27(日) 15:50:21ID:YaqXlW2nその層を対象にするから中々スペック上げるのは難しい。
にしてもさすがにVRAM32ぐらいあれば家庭用ゲーには比べ物にならないぐらい潤沢ではあると思う。
よくある新しいPCなのに重いってのはノートだったりオンボだったりするのが原因だが、
これらの場合でもVRAMだけは多く取れると思う。
0754名前は開発中のものです。
2009/09/27(日) 16:07:57ID:HWAanpbA0755名前は開発中のものです。
2009/09/27(日) 16:20:30ID:PoOE52xiD3DXLoadMeshFromX で読み込んだXファイルから
「法線情報」「頂点座標」「UV座標」「マテリアルNo」
にアクセス(読み書き)する方法
を解説しているサイトをどなたかご存知ではないでしょうか?
0756名前は開発中のものです。
2009/09/27(日) 16:36:43ID:syUY7XWv節約するのとサポートが打ち切られているようなOSで
動くようにするのは話が違う。
0757名前は開発中のものです。
2009/09/27(日) 16:46:12ID:gs3GrlUZファイルの容量を上手く扱うための流れから勝手にズラしてるようにしか見えん
0758名前は開発中のものです。
2009/09/27(日) 17:15:04ID:6supplBE0759名前は開発中のものです。
2009/09/27(日) 18:12:24ID:GCjoC8mmたいした事やってないのに、異様に重かったり
異常にハイスペックを要求したり、こういうのこそオナニーだよね。
0760名前は開発中のものです。
2009/09/27(日) 18:33:23ID:+LiXIQ5cマテリアルNoはたぶんアトリビュートテーブル
0761名前は開発中のものです。
2009/09/27(日) 18:34:46ID:+LiXIQ5c0762740
2009/09/27(日) 19:28:26ID:V6ttYBA5やはりメモリ量を増やさないよう地道に努力するほかなさそうですね。。
とりあえずはddsで進めていこうと思います。
メモリ消費量に見合う処理を実現させたいですね。
0763名前は開発中のものです。
2009/09/27(日) 20:05:19ID:sIMIl1Dj0764名前は開発中のものです。
2009/09/28(月) 00:41:50ID:PJwvbzf00765名前は開発中のものです。
2009/09/28(月) 10:24:06ID:moqSVWKN誰が考えたのか知らんけど
0766名前は開発中のものです。
2009/09/28(月) 13:18:55ID:XG0JgWN6バッドネーミングかと
0767名前は開発中のものです。
2009/09/28(月) 13:27:20ID:1dxmQUI20768名前は開発中のものです。
2009/09/28(月) 15:48:36ID:iNj0Bwp/0769名前は開発中のものです。
2009/09/28(月) 15:53:43ID:kBbiwz2h0770名前は開発中のものです。
2009/09/28(月) 16:25:24ID:dKxmzM/80771名前は開発中のものです。
2009/09/28(月) 17:51:23ID:moqSVWKNなぜかライトが反映されません。
アンビエントライトおよびDirectionLightのAmbient値だけは反映されますが、Diffuseはチュートリアル通りに設定しても適用されません。
ライトの方向が間違っているのかと思い、ためしにライトの方向ベクトルを回してみても変化がありませんでした。
何が悪いんでしょうか。
DXViewerでは正常にグローシェーディングで陰影がつく形で表示されました。
0772名前は開発中のものです。
2009/09/28(月) 18:53:02ID:AKxVarcw0773名前は開発中のものです。
2009/09/28(月) 18:55:49ID:xoHW67fYそのxファイルに法線ついてる?
法線無い場合はD3DXComputeNormalsとか使わないと駄目
0774名前は開発中のものです。
2009/09/28(月) 21:58:30ID:moqSVWKN>>773
解決しました。
今回DXUTILのDXUTMeshクラスを初めて使ってみましたが、
SetFVFだけでなくSetVertexDeclで頂点データを定義することを知りませんでした。
設定すると無事ライティングが機能しましたが、DXUTMeshを使っていたことを記述するべきでしたね。
すみませんでした。
0775名前は開発中のものです。
2009/09/28(月) 22:15:42ID:MVcbCkFcありがとうございます。情報を探してみます。
0776名前は開発中のものです。
2009/09/28(月) 22:45:30ID:iTnMmDRCそこで3Dオブジェクトのワールド座標をスクリーン座標に変換したいのですが、そういう変換関数ありますか?
0777名前は開発中のものです。
2009/09/28(月) 23:17:59ID:RzfBxwC30778名前は開発中のものです。
2009/09/29(火) 00:44:24ID:dMyVg2nCありがとうございます。
なんとかさっきその関数を見つけることができ、実現することが出来ました。
0779755
2009/09/29(火) 17:40:07ID:jAN25eYDD3DXLoadMeshFromX関数 から頂点/法線/マテリアル関連 の情報を取り出す為に
「ID3DXMesh インターフェイス」http://msdn.microsoft.com/ja-jp/library/cc372520.aspx
これを利用したいのですが
ID3DXMesh型の変数(?)を宣言しようとすると
>'ID3DXMesh' : 抽象クラスをインスタンス化できません。
とゴッソリエラーと警告が出てしまいます。
D3DXLoadMeshFromX関数の第8引数に渡したLPD3DXMESH型では当然「ID3DXMesh インターフェイス」は
使う事が出来ないのですが・・・どうすれば良いのでしょうか。
私はどこら辺を勉強して来ればこの辺の仕組みが解るのでしょうか orz
0780名前は開発中のものです。
2009/09/29(火) 18:57:23ID:dqeDC0z00781755
2009/09/30(水) 03:34:42ID:Bg91gg+zありがとうございました。
すみません、メンバって言葉に反応してピリオドを使ったミスでした orz
すぐ下でOptimize()でアロー演算子使って動いてるのに気付かず;
失礼しました orz
0782名前は開発中のものです。
2009/10/01(木) 23:58:42ID:LIkPTtwl距離計算(内積)と反映までは出来たのですが、
1.衝突判定の処理軽減(判定対象の絞込み)にはどういうパターンが有るのか?
2.頂点と法線 どちらで判定すべきなのか?
3.内側にめり込む事の回避方法(尖っているポリゴンの境目からや処理落ちで等の)
これらの疑問でどう作れば良いかイメージができず困っています。
基本地面を歩きまわる軽いアクションゲーなのですが、
定番の方法などが有れば教えて頂けると幸いです。
0783名前は開発中のものです。
2009/10/02(金) 00:11:29ID:xaTOFVmz当たり判定取りたいキャラの真下の高さを取得してそれと当たりを取るのが最低限だろう
0784名前は開発中のものです。
2009/10/02(金) 00:18:49ID:z1JLtZk6絞込みには、そっちには4分木が有効だろう。ちょっと敷居は高いが。
http://marupeke296.com/COL_2D_No8_QuadTree.html
後は境界球の作成から始めればいいんじゃない?
0785名前は開発中のものです。
2009/10/02(金) 09:26:28ID:/niBMC9gそうですね、今は数段階の判定対象の絞り込みで軽減をしてみようかと思います。
ありがとうございます。
>>784
ありがとうございます。4分木・・今はキツいですが、いずれは勉強して取り込みたいと思います。
>境界球
なるほど。点じゃなくて立体で判定すればめり込み難そうですね。 試してみようと思います。
0786名前は開発中のものです。
2009/10/07(水) 22:53:27ID:1OGUvk7Sプレイヤーの数倍のサイズの敵への攻撃の衝突判定をする場合
1.円柱やボックスを大まかに中心座標から置いてそれを判定する
2.頂点数を減らした透明モデルを一緒に動かして、その面から外積(?)で判定する
この2つが思いつくのですが、
「低負担でそこそこの衝突判定」をする方法や理論が有れば助言頂けませんでしょうか?
0787名前は開発中のものです。
2009/10/07(水) 22:56:56ID:GxNoKgMb0788名前は開発中のものです。
2009/10/07(水) 23:06:45ID:1OGUvk7Sなるほど・・低負担でそこそこを楽に実現できそうですね。 ありがとうございましたっ
0789名前は開発中のものです。
2009/10/12(月) 14:26:14ID:puTlDpxR場合に応じて切り替えることはできますか?
0790名前は開発中のものです。
2009/10/12(月) 16:22:18ID:hQMoF6vn0791名前は開発中のものです。
2009/10/12(月) 17:21:34ID:YdYmTdmP0792名前は開発中のものです。
2009/10/12(月) 21:22:38ID:rJ16+euJ定義を見ると違うっぽいので違うのだろうけど、どう使い分けるの?
0793名前は開発中のものです。
2009/10/12(月) 21:34:24ID:AjxFbh57そもそもOSに標準搭載されているのでインストールする必要性が無い。
0794名前は開発中のものです。
2009/10/12(月) 21:37:57ID:yXQZI7v6SDKの話?
0795名前は開発中のものです。
2009/10/18(日) 10:52:06ID:lUEbzDrTインデックスバッファをD3DPOOL_MANAGEDで描画して
私のビデオカードでは問題ないようですが、このようなバッファの運用は
一般的ですか?
0796名前は開発中のものです。
2009/10/18(日) 19:50:42ID:lUEbzDrT0797名前は開発中のものです。
2009/10/18(日) 19:56:21ID:gH5KDL3H0798名前は開発中のものです。
2009/10/18(日) 22:08:31ID:lUEbzDrTfrequency設定して別ストリームから合成描画する
2つの頂点バッファを別々の設定でプールしたら
バグッたんで、色々気になっていました。
0799名前は開発中のものです。
2009/10/19(月) 12:59:47ID:7jM4tM9sDirectInputでマウスのボタン操作を取得してるんですが
「マウスボタンが押されっぱなし」の状態を安全(確実)に取得する特別な方法は有るでしょうか?
変数で操作の取得毎にフラグをひっくり返し続けるだけでも
大丈夫なものなんでしょうか?(外部ソフトの負荷で処理落ちして逆さになったりしないか怖くて・・)
0800名前は開発中のものです。
2009/10/19(月) 13:09:07ID:TPHZOR5g0801名前は開発中のものです。
2009/10/19(月) 13:34:42ID:7jM4tM9sそうなんですね。ちょっと調べてみます。
ありがとうございました。
0802名前は開発中のものです。
2009/10/19(月) 16:46:13ID:ChZNl820逆さになるって意味が分からんのだが。
ボタンが押されたときと離されたときで、異なる値になるんだが。
0803名前は開発中のものです。
2009/10/19(月) 21:14:06ID:qZo3qR1Pちがうわー
ってことだろ
0804名前は開発中のものです。
2009/10/20(火) 14:48:31ID:K18Q7LH00805名前は開発中のものです。
2009/10/21(水) 20:20:52ID:7NIJVQVY情報を表示できる様にしたいのですけれど、
・D3DXComputeBoundingBox()でバウンディングボックスを生成
・その各頂点からD3DXVec3Project()でカメラ(2D)座標にする
↑の方法で合ってるでしょうか?
D3DXComputeBoundingBox()が上手く行かず合ってるのか心配に。。
0806名前は開発中のものです。
2009/10/21(水) 22:39:00ID:c4Loyn9Xまあ、それで間違ってはいない。
でも俺なら、ワールド座標系で
レイを飛ばしてボックスと当たり判定をするな。
0807805
2009/10/21(水) 23:26:05ID:mh4+7PPm合ってはいるんですね。ありがとうございます。
>ワールド座標系で
>レイを飛ばしてボックスと当たり判定
レイが何なのかわからず利用法がわかりませんが、
ベクトル計算を省けそうでこちらの方が軽く済みそうな予感がしますね・・。
ちょっと調べてみますが、少しヒントを頂けるとありがたいです。
0808名前は開発中のものです。
2009/10/21(水) 23:40:44ID:Hv8xs2nw0809805
2009/10/21(水) 23:48:28ID:mh4+7PPm失礼しました。
やはりなるべく今の自分にできる程度の事でやった方が良さそうです;
ありがとうございました。
0810名前は開発中のものです。
2009/10/23(金) 16:44:43ID:IL/cHHNL0811名前は開発中のものです。
2009/10/23(金) 18:28:09ID:8sTB1nJH0812名前は開発中のものです。
2009/10/23(金) 20:20:24ID:IL/cHHNL一般にどっちが高速か知ってる人がいたら押して欲しいっす。
自分の環境だけじゃ何とも言えないからね・・・
いや、マイナーなビデオカード使ってるわけじゃないし、
自分の環境だけでいいのかもう・・
0813名前は開発中のものです。
2009/10/23(金) 20:31:04ID:lrmVTsSK自分でテストプログラムを作って、他の人に試してもらえばいいだろう。
0814名前は開発中のものです。
2009/10/23(金) 23:47:41ID:TWwx0Wxwインデックスバッファなんぞ逆に無駄になるだろ
0815名前は開発中のものです。
2009/10/24(土) 02:10:48ID:J6eJtCM1場合によるからその都度測るしかない
これだけ覚えておけ
な?人に聞く要素ないだろ?
0816名前は開発中のものです。
2009/10/24(土) 11:36:54ID:h8+T+axkなるほど・・その時にはよろ
>>814
頂点を共有しないバラバラの線分を多数書きます
>>815
うんまぁ、でも一般的にindex使ったほうが早いみたいだよね。
HELPにもindexがあればデバイスは内部でキャッシュを最適化するので
高速になります・・・みたいな事書いてあったし、ネット上の話題でも
index使っとけばOKみたいな常識があるように感じました。
その常識が線分的にはどうなのか、線分描画に通じている人がいたら
教えて欲しいと・・・
0817名前は開発中のものです。
2009/10/24(土) 11:56:24ID:dY+hMWRQ自分の条件設定通りのテストプログラムをとっとと作れ。
怠けようとするな。
0818名前は開発中のものです。
2009/10/24(土) 12:12:16ID:J6eJtCM1だから色々そういう要素がありすぎてわかんねぇの
そういう要素同士がかちあったときにそれのどっちがより
その場面において早くなる要素となりうるのか?
っていうのは人間の脳みそで考えるより絶対にやったほうが早いの
0819名前は開発中のものです。
2009/10/24(土) 14:56:33ID:vyAvDCV4頂点を共有しないバラバラの線分にindexを使っても意味がないだろう。
何のためにindexがあると思っているんだ。
頂点を再利用しなきゃ負荷が増えるだけだし、その頂点キャッシュも
16頂点分くらいしかないから、考えて並べないと意味がない。
0820名前は開発中のものです。
2009/10/24(土) 17:15:26ID:h8+T+axk>その頂点キャッシュも16頂点分くらいしかないから、考えて並べないと意味がない
なるほど・・indexバッフアァによるキャッシュの効率化って、そういう意味でしたか・・。
確かに重複する頂点がないとキャッシュの存在意義そのものがないですね。
良く分かりました。ありがとうございました。
0821名前は開発中のものです。
2009/10/25(日) 15:30:56ID:2NVH14R0複数のメッシュから、オンマウスしたメッシュ情報を表示する仕組みを作っているのですが、
その処理方式をどうすべきか悩んでいます。
1.普通に全対象をチェックして、ヒットした中から距離が最小の物を選ぶ
2.距離順にソートして1つヒットしたら処理を終了する
最初は2でやろうと思ったのですが、下手にソートした方が重い気がして来ました。
対象の数は多くてせいぜい200と言った所です。
1と2、どちらの方が良いでしょうか?
0822名前は開発中のものです。
2009/10/25(日) 16:24:59ID:KXqoI6mx0823名前は開発中のものです。
2009/10/25(日) 16:56:12ID:VGfJF/53そもそもデカイフィールドなんかで描画する物体を絞り込むときどうしてるの?
ちゃんとクリッピングしないとダメだよね?
その仕組みを使えばいいんだけどどうだろうか?
0824名前は開発中のものです。
2009/10/25(日) 18:06:54ID:2NVH14R0なるほど。とりあえずちょっといじって1を完成させるとします。
2はmapを使うか他の方法か・・考えてみます。
>>823
まだ必要な機能が揃ってない状態でして、遠すぎるメッシュの除外に
その絞込み、クリッピングをどうする(作る)か考えていました。
その仕組みによってはそれを利用できるんですね。
絞込みの方法は殆ど何も知らないので思いつく手段が少ないですが・・
ちょっと色々と調べてみようかと思います。
クリッピングというワードを頂けたので検索は捗りそうです。
ありがとうございました。
0825名前は開発中のものです。
2009/10/25(日) 18:45:55ID:mVDdBrlyV-syncを ON にしたプログラムを Acer の Aspire one D250 や
Dell の Vostro1400 で走らせると、モニタのリフレッシュレート
は60Hzなのに62fpsを示すのですが、これは仕様ですか?
このような経験ありますか?
0826名前は開発中のものです。
2009/10/25(日) 18:56:36ID:8vpdtFyXtimeBeginPerido(1);とかで精度を上げておくとVSYNCの精度もあがったりするフェイク。
0827名前は開発中のものです。
2009/10/25(日) 19:00:59ID:1KM9hN57よくそういう嘘を堂々と書けるなぁ、と感心する。
0828名前は開発中のものです。
2009/10/25(日) 19:22:35ID:8vpdtFyXttp://msdn.microsoft.com/ja-jp/library/bb172585(VS.85).aspx
解説
全画面モードでも、リフレッシュ レートまたはスワップ エフェクトとは無関係に
D3DPRESENT_INTERVAL_IMMEDIATE をサポートすることにより、
ウィンドウ表示モードと同様な使用法がサポートされます。
D3DPRESENT_INTERVAL_DEFAULT では、
既定のシステム タイマーの分解能が使用されます。
一方、D3DPRESENT_INTERVAL_ONE では timeBeginPeriod を呼び出し、
システム タイマーの分解能を拡張します。
これにより、垂直同期の品質が改善されますが、処理に時間が少し多くかかります。
いずれのパラメーターの場合も、垂直同期が試行されます。
0829名前は開発中のものです。
2009/10/25(日) 21:03:31ID:Ds+pdNI80830名前は開発中のものです。
2009/10/25(日) 22:27:26ID:8vpdtFyX0831825
2009/10/25(日) 23:52:43ID:mVDdBrlytimeBeginPeriod(1) は入っていました。
GetRasterStatus で D3DRASTER_STATUS の InVBlank を調べて、
D3DPRESENT_INTERVAL_IMMEDIATE で Flip をしても 62fps
(61.5〜62.5fps)になりました・・・。
0832名前は開発中のものです。
2009/10/26(月) 00:11:16ID:A8tUA/hQビューネイのときは上層もやるので露骨な超絶自分勝手コマンドは自粛してるような?
■ このスレッドは過去ログ倉庫に格納されています