【C++】 DirectX初心者質問スレ Part9 【C】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/04/13(木) 06:48:180002デフォルトの名無しさん
2006/04/13(木) 07:50:070003デフォルトの名無しさん
2006/04/13(木) 12:20:420004デフォルトの名無しさん
2006/04/13(木) 13:04:300005デフォルトの名無しさん
2006/04/13(木) 13:36:000006デフォルトの名無しさん
2006/04/13(木) 13:39:39お、なんかいいこと思いついたぞ。
DrawPrimitiveのVertexBufferを一括確保してる奴等さ、
一括確保するVertexBufferを2つ用意してフレームごとに交互に使えば
もしかして速いんじゃねぇの?
1000 名前:デフォルトの名無しさん[sage] 投稿日:2006/04/13(木) 01:51:41
フレームごとじゃないか。
DrawPrimitiveごとか。
0007デフォルトの名無しさん
2006/04/13(木) 14:32:390008デフォルトの名無しさん
2006/04/13(木) 15:12:09C++/CLIでマネージドC++の検証を始めたのですが、
てっきりマネージドC++のDirectXもあるもんかと思ってたら見当たりません。
MDXってC#かVBオンリーなんでしょうか?
うーんC++/CLIとWindows Formで3Dツール作って見たかったんだけどなぁ。。
0009デフォルトの名無しさん
2006/04/13(木) 15:34:43プロジェクトのプロパティの「参照設定」の「参照の追加」。
0010デフォルトの名無しさん
2006/04/13(木) 15:49:510011デフォルトの名無しさん
2006/04/13(木) 15:54:02・ヘルプも読まない人はお帰りください
0012デフォルトの名無しさん
2006/04/13(木) 19:21:56もうDirectXだったら何でもありだろ
0013デフォルトの名無しさん
2006/04/13(木) 23:39:32さすがにシェーダを切り替えない前提でしか効果がないなんて使いどころない。
0014デフォルトの名無しさん
2006/04/14(金) 06:58:11最近のナウでヤングなDirectXフレームワーク教えてちょ
0015デフォルトの名無しさん
2006/04/14(金) 08:43:050016デフォルトの名無しさん
2006/04/14(金) 12:08:46・DP呼び出しは減らす方がいい、バッファにまとめて描画、DP減らすほうが速い派
・纏めるなんてCPUのやフィルレートの無駄、そんなんするならくらいならDP呼びまくるほうが速い派
だと思ったが。
0017デフォルトの名無しさん
2006/04/14(金) 13:14:120018デフォルトの名無しさん
2006/04/14(金) 13:29:35>9
さん、参照を設定したらイケました。
これから勉強してみようと思います。ありがとうございました!
>10
さん
サンプルの詳細まで見てませんでした(C++のマネージなのかアンマネージなのかまで。。)
0019デフォルトの名無しさん
2006/04/14(金) 18:41:19よく 「DirectX9.0 に対応したグラフィックカード」 という言葉を目にしますが、対応とは何の事を指すのでしょうか?
GeForce2 MX400 上でもDirectX9.0は動きますが、「GeForce2 MX400 は DirectX9.0 に対応したグラフィックカード」 とは呼べませんよね?
では対応とは何なのか。。。 そこが全く分かりません。
分かる方、お願いします。
0020デフォルトの名無しさん
2006/04/14(金) 19:13:15メーカーとかライターが勝手に言ってるだけで、明確な決まりはないよ。
MSはそんな基準を作ってない。
002119
2006/04/14(金) 19:21:22ありがとうございました。
0022デフォルトの名無しさん
2006/04/14(金) 21:38:41上は2DSTGオンリーで下は視点が動く3Dゲー
0023デフォルトの名無しさん
2006/04/14(金) 21:45:33つ弾幕
0024デフォルトの名無しさん
2006/04/14(金) 23:38:29どうもいまいち2Dの使い方がわからないのですが。
0025デフォルトの名無しさん
2006/04/14(金) 23:44:530026デフォルトの名無しさん
2006/04/14(金) 23:49:47一応見よう見まね(変数以外ほぼ同じ)で2Dグラフィックのみ表示できたのですが…
それ以上があまり分からず簡単な参考書が知りたいのですが…
0027デフォルトの名無しさん
2006/04/15(土) 00:13:22一番簡単な参考書だと思うよ。
ほかのやつもどれも一緒だと思われる。
0028デフォルトの名無しさん
2006/04/15(土) 00:20:13簡単な参考書なんてない。
簡単そうに話してはいるものの役に立たない本はいっぱいあるけどw
やっぱり、成熟してない分野だから敷居は高いよ。資料もワードやエクセルとかと比べるとそんなねーし。
ので、まずやりたいことを書いて具体的に最短の道を探すのが最短じゃね?
3Dが必要なのかそうでないのかでもやることが違うし、
前に質問しにきた奴では実はプログラムでムービー再生したかっただけみたいな人もいたし。
発展として3Dを望むならある程度きついもんが必要になるだけに中途半端な出だしはさせたくない
っていうのはあるね。
ただ、資料とか今後のサポートとかを考えるとDirectXのバージョンはまちがいなく9がいい。
0029デフォルトの名無しさん
2006/04/15(土) 05:50:43DirectSoundは使うけれどDirectDrawも駄目で、それが業界の常識らしいです。
0030デフォルトの名無しさん
2006/04/15(土) 09:17:530031デフォルトの名無しさん
2006/04/15(土) 09:42:24エロゲ業界ではそれが常識です。
0032デフォルトの名無しさん
2006/04/15(土) 09:43:380033デフォルトの名無しさん
2006/04/15(土) 10:05:19前作った3Dゲームは、ウィンドウとか文字とか2D周りの部分は一括描画、
3Dモデルだけモデル単位で描画やってたな・・・。
0034デフォルトの名無しさん
2006/04/15(土) 12:49:12弾幕STGみたいにたくさんでないなら。
2D部分の不透明->3D部分の不透明->3D部分の半透明->2D部分の半透明
って順番で描画するとZBufferが助けてくれるかな。
すくなくとも不透明と半透明はわけたほうがいいぞ。
不透明が前面にあればそっから後ろのピクセルは描かなくていいわけだから。
0035デフォルトの名無しさん
2006/04/15(土) 19:48:54成程、ちなみに自分がやりたいのはゲーム製作関連(2D、3D)とネットワーク通信です。
やっぱ「DirectX9 DirectX Graphics」と「DirectX9 実践プログラミング」が一番簡単なのかな?
0036デフォルトの名無しさん
2006/04/15(土) 20:03:20チュートリアルも併せて進行させればいい感じじゃない?
0037デフォルトの名無しさん
2006/04/15(土) 20:14:303Dもやるならいきなり3Dから入ったほうがいい。
3Dができれば2Dを勉強してる期間なんて無駄だと思えるぐらいに実力がつく。
まずはチュートリアルどおりにプログラムを組んで実行してみれば次のステップが自然とわかる。
0038デフォルトの名無しさん
2006/04/15(土) 20:17:18いちいちこんな所で聞いてる暇があったら、さっさと買ってきて嫁
0039デフォルトの名無しさん
2006/04/15(土) 20:31:27成程、3Dからですね。ありがとうございます。
0040デフォルトの名無しさん
2006/04/16(日) 00:11:57DDSURFACEDESC2 ddsd;
ZeroMemory(&ddsd,sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount = 1;
hr = this->m_pDD->CreateSurface(&ddsd, &this->m_pPrimarySurface, NULL);
if (hr != DD_OK){ return FALSE;}
でプライマリサーフェイスを作ろうとしてるのですが、ことごとく失敗します。
要因はどこにあると思いますか?
0041デフォルトの名無しさん
2006/04/16(日) 00:38:40やっぱ、エラーコードみるしか・・・。
それとDirectDrawオブジェクトの初期化にそもそも失敗してるとかない?
004240
2006/04/16(日) 00:52:520043デフォルトの名無しさん
2006/04/16(日) 01:07:110044デフォルトの名無しさん
2006/04/16(日) 01:08:58なんと根本的なミスだったんだ・・・
どうもありがとうございました。
0045デフォルトの名無しさん
2006/04/16(日) 01:16:02まだ、DirectX7なんてやるきなのー。
ウィンドウモードとフルスクリーンで処理別々にしなきゃいけないし、
無駄に疲れるだけでいいことないと思うけどナー。
せっかくシステム整えてもいつ切られるかわからないぞ。
もう、はじめに気合入れて最新のDirectX習得しちゃってあとは更新されるごとに
差分だけ覚えていくほうが楽だと思うんだけどなぁ・・・。
0046デフォルトの名無しさん
2006/04/16(日) 01:22:00どうせ2Dのゲームしか作らないだろうからと思ったんですけど、
DirectX9の方がいいですかね?
ノートPC使ってるんで速度がちゃんとでるか心配だったのもあるのですが。
0047デフォルトの名無しさん
2006/04/16(日) 01:34:32>ノートPC使ってるんで速度がちゃんとでるか心配だったのもあるのですが
最近のハードは大体3Dアクセラレータがついてると思われるのでDirectX9でいいと思われ。
それに2Dだと画像の回転とか拡大縮小とかも簡単にはできないかも。
まず、何をやるにも(今回のことにしても)情報が少ないしいいことないと思うよ。
DirectX7の日本語ヘルプはどっかで手に入るかもしれないけどそれで終わりじゃないわけだし。
あと、どういう状況におかれてるのか知らないけど
「2Dのゲームしか作らないだろうから」とかなんでそんなカッキリきめちゃえるのかわからないな。
とりあえず、あまりよく知らない人が当然2Dの機能でできる(と思われる)ことがことごとくできないのが2D機能だよ。
ホント単純な矩形の描画しかできない。アドベンチャーゲームの人物を表示して後ろに背景があってって処理もちょっと苦労する。そんな世界。
0048デフォルトの名無しさん
2006/04/16(日) 01:40:59DirectX7のこともどんなもんかわかりましたし、DirectX9の方を勉強したいと思います。
どうもありがとございました。
0049デフォルトの名無しさん
2006/04/16(日) 15:01:540050デフォルトの名無しさん
2006/04/16(日) 15:04:030051デフォルトの名無しさん
2006/04/16(日) 15:14:213DCG講座 - 第17回 - rhwとは何か
glossary.tank.jp/t0A17.html
0052デフォルトの名無しさん
2006/04/16(日) 19:41:28チラシの裏
ボーン無しのメッシュとはD3DXIntersectで正常に当たり判定できたけど、
ボーン付き(アニメーション)ではメッシュが変化するのでうまくできない。
0053デフォルトの名無しさん
2006/04/16(日) 19:48:38XYZの要素が1,1,1のバウンディングボックスのマトリックスをアニメーションさせるモデル(ボーン付きの)につっこんで
デザイナさんに回転要素なしでキーフレームごとに調節してもらえ。
そうすればいっしょにアニメーションさせれば、アニメーションにあわせて変化するバウンディングボックスの出来上がり。
XYZの要素を111にするのは計算しやすくなるからってただそれだけ。
こうしておけばマトリックスだけとれば平行移動と拡大縮小だけをみれば範囲がとれて計算が非常に楽。
0054デフォルトの名無しさん
2006/04/16(日) 19:55:50XYZの要素が1,1,1のバウンディングボックスのマトリックス
じゃなくて
頂点の座標が1,1,1な。
つまり、追加するのは頂点の座標が1,0,0と0,1,0と0,0,1と0,0,0と1,1,0と1,0,1と0,1,1で構成される立方体のモデルで
アニメーションさせるのはその立方体のマトリックスな。
0055デフォルトの名無しさん
2006/04/16(日) 21:56:40絵心ない奴は全部計算でやるしかない
0056デフォルトの名無しさん
2006/04/16(日) 22:20:53はぁ?
立方体の拡縮のアニメーションをつけるのがそんなにやっかいか?
>>53-54のレスの意味わかって言ってるのかと。
0057デフォルトの名無しさん
2006/04/16(日) 22:25:42//! 頂点ブレンド
m_pd3dDevice->SetRenderState(D3DRS_VERTEXBLEND, NumBlend);
で座標を変換したいのだが
これってレンダーのみなのね。
0058デフォルトの名無しさん
2006/04/17(月) 17:11:10keybd_eventでは限界なので、DirectXに手を出そうとしてる・・
そもそも、DirectXで実現可能なのかどうかさえ分からない
GetDeviceDateに対して、SendDeviceData使えばいいのか・・って
ものでも無さそうだし、大体”使ってはならない”って一体・・
ゲームそのものではなくて、ゲーム用のツール作成が目的なんds
0059デフォルトの名無しさん
2006/04/17(月) 17:18:52006058
2006/04/17(月) 17:55:27WinAPIのkeybd_eventでは動作しないソフトに
DirectXからキー入力を送信できれば、どうか?
・・という動機なんだけど。。。
>>59 まだオカシイデスカ?
0061デフォルトの名無しさん
2006/04/17(月) 19:06:300062デフォルトの名無しさん
2006/04/17(月) 23:44:05地面みたいなでかいメッシュとはどうすればいい?
BOX作ると、地面には合わなそう 精度高めるとBOXがかなり増えるし。低いと地面にめり込むし。
それと、
ボーン変換って普通ソフトでやるの?
頂点ブレンド を使えばハードできるので負荷減らせるけど変換後の座標取得ができないので当たり判定できないYO、
やっぱ、ソフトで変換していくしかないのかな・・・いろいろ出来るし 重いけど。
頂点ブレンドって実際はソフトで計算してたりしてw
0063デフォルトの名無しさん
2006/04/17(月) 23:51:48お前が何をいっているのかまったくわからない。
0064デフォルトの名無しさん
2006/04/18(火) 00:01:44変化する地面との当たり判定の方法が知りたい。
0065デフォルトの名無しさん
2006/04/18(火) 05:34:36変形するハイトフィールドは別として、
ワンダと巨像っぽいのであれば、判定用モデルが
ボーンの変形を伴わない多間接モデルで結構できそうな気がする。
0066デフォルトの名無しさん
2006/04/18(火) 05:36:300067デフォルトの名無しさん
2006/04/18(火) 07:12:14ハイトフィールドだったら多少頂点が上下に動いたところでなんでもねーじゃん。
0068デフォルトの名無しさん
2006/04/18(火) 07:43:060069デフォルトの名無しさん
2006/04/18(火) 08:14:19本とバージョンを合わせろ
0070デフォルトの名無しさん
2006/04/18(火) 08:41:10Direct9のDirectSound8インターフェイスで同じ…だと思う。
構文エラーばかり出るけど。
0071デフォルトの名無しさん
2006/04/18(火) 11:20:43年度と季節も合わせたか?
書籍に付属してるならそれを入れろ
エラーと書籍名ぐらい書け
もしVS2005で文字コード云々なら保存しなおせ
0072デフォルトの名無しさん
2006/04/18(火) 11:43:47矩形の1枚絵を描画する時に、1フレーム毎に画像を垂直移動させようとすると、
フレーム切り替え時にプリミティブの継ぎ目が見えてしまいます。
静止状態では継ぎ目は見えないのですが…
問題を単純化して、↓
{-0.5, 0.5, 0.0},
{ 0.5, 0.5, 0.0},
{ 0.5,-0.5, 0.0},
{ 0.5,-0.5, 0.0},
{-0.5,-0.5, 0.0},
{-0.5, 0.5, 0.0}
↑こんな2PrimitiveのTRIANGLELISTを描画した場合、全く頂点をいじらない状態(静止状態)では
正常に継ぎ目が見えないのに、例えば描画1フレーム毎に全Y座標を-0.0001して絵を垂直移動させて
みると斜めにプリミティブの継ぎ目が見えてしまい非常に見苦しいです…
例の値でもわかる通りfloatの精度の問題ではなさそうです。
ややこしい事に、同じようにX座標をいじって水平方向に移動させた場合にはこの問題は出ません。
またCreateDeviceに渡すD3DPRESENT_PARAMETERSのSwapEffectを変えても変わりませんでした。
想定される原因がわかれば教えて下さい。
0073デフォルトの名無しさん
2006/04/18(火) 12:36:18その移動ってのは SetTransform じゃなくて
頂点データを直接書き換えてるの?
それなら、そこが間違ってるとかロックの仕方が変とか
じゃないかしら。
あと一応REFでも確認するべきね。
0074デフォルトの名無しさん
2006/04/18(火) 13:20:47ドライバ
007572
2006/04/18(火) 16:17:06>頂点データを直接書き換えてるの?
そうです
ただ、回転とかでもなく、単純にY座標を0.001加算して描画するだけのテストでも
発生するので丸め誤差とかの問題ではないはずなのですが…
>74
それもちょっと疑ってます
テストで使ってるのがRivaTNTなもんで
実はcodesampler.comのコードをいじって勉強中なんだけど、このコード
REFで初期化したら何も描画されなくなった ナンダコレ orz
007672
2006/04/18(火) 17:24:16頂点書き換え止めてSetTransformなら継ぎ目は出ないのになぁ
自力変換してる人は同じ現象は出ないんだろうか
0077デフォルトの名無しさん
2006/04/18(火) 20:39:49なんかdsound.hをincludeした時点でエラー出てるや。
dmusiciにしときます。
0078デフォルトの名無しさん
2006/04/18(火) 22:13:44やっぱなんか計算間違ってんじゃねーの?
007972
2006/04/18(火) 23:42:38疑心暗鬼にかられて計算値を検証しますた。流石に間違ってなかったです。
フレーム切替え時に継ぎ目が見え、静止状態では出ないので、フレーム更新
のタイミングに問題があるのかな、と
現象が出る最小コードをうぷしました
http://gamdev.org/up/img/5335.zip
切り分けたら画像を「上から下」に移動させた時と「右から左」に移動させた場合に発生し、
それぞれ「下から上」、「左から右」に移動させた場合には問題ないんだよな…
マジでわからん
0080デフォルトの名無しさん
2006/04/18(火) 23:57:120081デフォルトの名無しさん
2006/04/19(水) 00:07:48とりあえず299行〜313行をforの外に出せば
MissionCompleteみたいよ。
0082デフォルトの名無しさん
2006/04/19(水) 00:08:04つ[【C++】 DirectX初心者質問スレ Part9 【C】]
答える気が無いなら煽らない
0084デフォルトの名無しさん
NGNG鬱だ氏のう DirectX (Part 16)
http://pc8.2ch.net/test/read.cgi/tech/1133007002/
0085デフォルトの名無しさん
2006/04/19(水) 16:22:31よろしくお願いします!
押忍!
0086デフォルトの名無しさん
2006/04/19(水) 16:52:12よし、まずはパン買ってこい
0087デフォルトの名無しさん
2006/04/19(水) 20:00:38ブーリアン演算してたサイト見たんだけど知らない?
0088デフォルトの名無しさん
2006/04/19(水) 22:02:46ttp://web.archive.org/web/20050308231311/home.att.ne.jp/yellow/hide_n/programming/xfc/csg/csg-01.html
0089デフォルトの名無しさん
2006/04/21(金) 01:04:41色々と特殊なプログラミングしないといけないのかしら.
二枚のカードを別々に叩けるのかしら.
……まぁ,二枚別々に叩いても,何に使うんだろうって感じなんだけど.
使えるなら使えるで,何かネタっぽい使いかたが思いつくかもしれん.
0090デフォルトの名無しさん
2006/04/21(金) 01:06:430091デフォルトの名無しさん
2006/04/21(金) 03:02:410092デフォルトの名無しさん
2006/04/21(金) 10:01:260093デフォルトの名無しさん
2006/04/21(金) 19:07:44チラシ
ハードとソフトのボーンアニメーション比べたら
20%ぐらいハードの方が早かった、ハードでアニメーションできるとは
0094デフォルトの名無しさん
2006/04/21(金) 19:50:360095デフォルトの名無しさん
2006/04/21(金) 21:02:340096デフォルトの名無しさん
2006/04/21(金) 22:25:580097デフォルトの名無しさん
2006/04/21(金) 22:34:11ば・び・ぶ・べ・ぼーん!
0098デフォルトの名無しさん
2006/04/21(金) 23:10:02Radeon9600proではスキンメッシュのサンプルで
ソフト→130fps
ハード→796fps
ですがなにか?
0099デフォルトの名無しさん
2006/04/21(金) 23:10:46で?
0100http://delphi-delphi.tripod.com/delphi.htm
2006/04/21(金) 23:12:250101デフォルトの名無しさん
2006/04/21(金) 23:17:2120%なんてどこに目ぇつけてんの?死ねば?
だってさw
0102デフォルトの名無しさん
2006/04/22(土) 00:17:450103デフォルトの名無しさん
2006/04/22(土) 00:19:22うわはぁ
爆速、うちのボード弱いのか・・。
0104デフォルトの名無しさん
2006/04/22(土) 11:34:110105デフォルトの名無しさん
2006/04/22(土) 11:48:340106デフォルトの名無しさん
2006/04/22(土) 12:40:56ゲーPGなのにノート買って失敗した馬鹿だろ?
大変だな。
こんな失敗1つで就職する機会すら逃しちまうんだから。
いっとくけど、今の時代シェーダも使ってないような就職作品作ってくる奴なんか
すくなくともうちじゃいらないから。
入門書みればだれでもできると思うけど、ハードがサポートしてないんじゃしょうがないよね。
まあ、運が無かったとあきらめればいいよ。
0107デフォルトの名無しさん
2006/04/22(土) 13:39:22評価する側からすれば、むしろ敷居が高いんですよ。
0108デフォルトの名無しさん
2006/04/22(土) 14:24:42見事にノート。
ゲーPGではない。
最近、就職、就職とかいってるけど落ちたの?がんばれ。
俺は、PGにはなりたくないな、低賃金 過酷な労働条件・・・
趣味でさえつらいのに 職には出来んなw
0109デフォルトの名無しさん
2006/04/22(土) 15:22:260110デフォルトの名無しさん
2006/04/22(土) 16:04:59そもそもノートPCだからシェーダー対応ボード乗ってないなんてこと無い。
MobilityRadeon9700搭載とかのノートは普通にハードウェアで対応してるよ。
PGの利点は仕事中に2ch徘徊できることだろうw
休日出勤してて言ってもむなしいだけだがな・・・
0111デフォルトの名無しさん
2006/04/22(土) 16:31:13シェーダーの処理内容や容量などの前提条件すら出さず、勝手に脳内で結論を出す典型的な馬鹿。
0112デフォルトの名無しさん
2006/04/22(土) 17:20:16>>106あたりも脳内開発者
0113デフォルトの名無しさん
2006/04/22(土) 17:26:120114デフォルトの名無しさん
2006/04/22(土) 17:27:55何故使い切るとか頓珍漢な言葉が出てくるんだろう?
0115デフォルトの名無しさん
2006/04/22(土) 17:34:07はぁ?
PS2で出てるゲームだって頂点処理なんてかかってるじゃん。
どこみてるんだ・・・マジで。
0116デフォルトの名無しさん
2006/04/22(土) 17:35:47VertexShaderの話してるのになんでVUの話になってるんだ?
どこみてるんだ・・・マジで。
0117デフォルトの名無しさん
2006/04/22(土) 18:03:55はぁ?
要は頂点処理ができるかどうかをみたいってところだろ。
0118デフォルトの名無しさん
2006/04/22(土) 18:15:040119デフォルトの名無しさん
2006/04/22(土) 18:21:55俺もそれで頑張ってたけど、それだと実用的な速度がわからない。
ハードやるのとソフトでやるのとじゃ7〜8倍も違っちゃうからゲームで実際に使うと
すごく差がでる。
0120デフォルトの名無しさん
2006/04/22(土) 18:30:32レンダラーはレンダラーで作品のひとつとして提出すれば評価対象になるからいーんでね。
0121デフォルトの名無しさん
2006/04/22(土) 20:16:400122デフォルトの名無しさん
2006/04/22(土) 20:29:400123デフォルトの名無しさん
2006/04/22(土) 20:38:060124デフォルトの名無しさん
2006/04/22(土) 20:53:410125デフォルトの名無しさん
2006/04/22(土) 21:01:03その彼に割り当てられたデスクトップPCを想定してください
0126デフォルトの名無しさん
2006/04/22(土) 21:04:19それなりの環境で実行してくれるのかしらね。
家に持って帰ってハイエンド環境で実行してくれる
お茶目な担当さんだといいわね。
0127デフォルトの名無しさん
2006/04/22(土) 21:12:260128デフォルトの名無しさん
2006/04/22(土) 21:41:22マヂレスしちゃうけど、うちの会社で動作確認するPCはこれ。
社長用:P4-3/1GB/GF5700/XP
人事用:P4-2/512MB/RADE9200/2000、Cele-1.?/512MB/オンボード/XP(ノート)
最低環境用:P2-266/192MB/オンボード/98、P3-1/256MB/TNT/ME
一次通過したものはグラマさんらも手があいたら確認してくれる。
グラマ志望の場合、限られた環境でどれだけ動作するものが作れるかを見ている。
0129デフォルトの名無しさん
2006/04/22(土) 21:42:55いくら頑張った所でそんな所は評価されない
見るところはコンテンツとしての出来であって瑣末なコーディングではない
0130デフォルトの名無しさん
2006/04/22(土) 21:45:09その世代のオンボードはD3Dは無いワケだが
さてはエロゲ屋だな
0131デフォルトの名無しさん
2006/04/22(土) 21:54:22多分理想とのギャップに幻滅するよ。
「プロの仕事≒やっつけ」だからな。
0132デフォルトの名無しさん
2006/04/23(日) 00:54:30オクトツリーって単純な空間分割(軸沿の格子に登録)と比べて
どんなところがいいの?
今後者でやってるんだけどオクトツリーにした方がいいのかな
ちなみにオクトツリーについて知っているのは8分割の再帰構造って
ことくらい…
0133デフォルトの名無しさん
2006/04/23(日) 01:04:18バイナリサーチ O(log2(N))
0134デフォルトの名無しさん
2006/04/23(日) 01:09:03正直、洋ゲーみたいなかなり広大な敷地でも作らない限り
オクトツリーなんていらないと思う。
格子状の分割の方がゲームで扱うときにどの格子がどれなのかわかりやすいから
俺はこっちのが便利だったけどな。(アクション)
ただ、レースゲームなんかとなるとどうだろな?
作ったことないけど・・・w
0135デフォルトの名無しさん
2006/04/23(日) 01:14:12つーか、格子状の奴って2Dマップのチップ並べるときみたいな
1マスの縦横のサイズがいくらいくらでXZ座標がわかるとそれぞれの要素を
サイズでわるといっぱつで範囲が確定する奴だろ?
速さ的には一番速いんじゃね?
0136デフォルトの名無しさん
2006/04/23(日) 01:19:25ものがあんまり無いとこはスカスカのくせに物が
いっぱいあるとこは1マスの中に物が沢山あって分割した意味なくなるじゃん。
↓
ピコーン! (AA略)
↓
いっぱいあるとこはさらに分割すればいい!
↓
オクトツリー
0137デフォルトの名無しさん
2006/04/23(日) 01:28:01いや、そこまでする状況ってそんなないと思うんだけど・・・
とりあえずテキトウな数に分割されてりゃいいわけだから。
処理的に理解しやすいし、楽だからおれは格子状の分割でもいいと思うよ。
ただ、オクトツリー使うのも自由だけど。
でも、オクトツリーでなきゃ駄目ってのはかなり立派なゲームじゃないとただのオナニーで終わると思う。
0138デフォルトの名無しさん
2006/04/23(日) 01:54:56安心した
0139デフォルトの名無しさん
2006/04/23(日) 02:37:420140デフォルトの名無しさん
2006/04/23(日) 07:48:24「元」エロゲ屋なので、当時の名残りで同じPCが使われている。
店頭デモ用PCは競い合いが激しいので、たまにハズレ引いたこと考えて古いPCを残してあるわけ。
0141デフォルトの名無しさん
2006/04/23(日) 08:30:320142デフォルトの名無しさん
2006/04/23(日) 11:31:44http://plusd.itmedia.co.jp/lifestyle/articles/0604/17/news012.html
0143デフォルトの名無しさん
2006/04/23(日) 11:40:09DirectX の SDK を入れると、
0144間違えました
2006/04/23(日) 11:41:17DirectX の SDK を入れると DirectX を使ったプログラムを
作成するための専用のプロジェクトテンプレートが
用意されるのでしょうか?
0145デフォルトの名無しさん
2006/04/23(日) 12:03:090146デフォルトの名無しさん
2006/04/23(日) 17:25:520147デフォルトの名無しさん
2006/04/23(日) 17:38:50http://www.microsoft.com/japan/msdn/directx/japan/dx9/wizard1.gif
の様に VB の AppWizard が出るのは VB.NET 2003 のみということですか?
0148デフォルトの名無しさん
2006/04/23(日) 17:39:55VB.NET はインストールしていないのでちょっと確認できません。
いま手元に VS.NET 2003 のインストールCDが見あたらないので。
0149デフォルトの名無しさん
2006/04/23(日) 17:51:030150デフォルトの名無しさん
2006/04/23(日) 17:54:28環境に DirectX 9 SDK を入れると、両製品にそれぞれ
DirectX extensions for Visual Studio
DirectX extensions for Visual Studio .NET
が追加されているので、ちゃんとインスコされてる見たいです。
>>147 の画像見てもしやなんらかの便利なウィザードが!?
と妙な期待を持ってたので混乱していたようです。
お騒がせしました。
0151デフォルトの名無しさん
2006/04/23(日) 18:04:310152デフォルトの名無しさん
2006/04/23(日) 18:08:100153デフォルトの名無しさん
2006/04/23(日) 18:36:290154デフォルトの名無しさん
2006/04/23(日) 18:38:500155デフォルトの名無しさん
2006/04/23(日) 19:37:02そんなに喧嘩ばかりするならプログラムなんて組まなくてよろしい!
PCなんて捨てちまえ!
0156デフォルトの名無しさん
2006/04/23(日) 19:39:23―――――――――――――‐┬┘
|
____.____ |
| | | |
| | ∧_∧ | |
| |( ´∀`)つ ミ | <うるせーな!ちくしょう!やめてやる!ほらよ!
| |/ ⊃ ノ | |
 ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ | \\\
PC
0157デフォルトの名無しさん
2006/04/23(日) 20:15:07OBBの当たり判定の計算の仕方教えてくれ。
細かくではなくて、流れだけでもいい。
0158デフォルトの名無しさん
2006/04/23(日) 20:17:550159デフォルトの名無しさん
2006/04/23(日) 20:20:20http://www.amazon.co.jp/exec/obidos/ASIN/493900791X/
ぐぐったらこの本に書いてあるって書いてあった。
知識が無いなら金だせよ。
それも嫌なら辞めちまえw
0160デフォルトの名無しさん
2006/04/23(日) 21:39:51ありがとう。
中心間の距離
↓
分離軸の算出
↓
長さの比較
↓
分離軸同士の外積
↓
さらに分離軸同士で外積。
ってすれば、いいんですね。
0161132
2006/04/24(月) 02:38:42どうもです。
オクトツリーは広大な敷地の時、メモリコストで勝るって感じでしょうか?
(単純な分割では最低でも分割格子分だけのジャンプ先アドレス情報が必要になるわけで。)
…あとは単純な分割だと大きい当たり判定の登録が効率わるいって感じでしょうか…。
オクトツリーだと格子をまたぐものの登録は階層を下にたどらないわけですよね?
0162デフォルトの名無しさん
2006/04/24(月) 02:43:500163デフォルトの名無しさん
2006/04/24(月) 21:36:420164デフォルトの名無しさん
2006/04/24(月) 21:38:560165デフォルトの名無しさん
2006/04/25(火) 12:23:35音量の指定ってできないのでしょうか?
0166デフォルトの名無しさん
2006/04/25(火) 12:51:21MP3は権利関係めんどいからうっかり同人や商業で出すなよー。
0167デフォルトの名無しさん
2006/04/25(火) 12:58:15ありがとうございます
権利関係大変なのですね、mp3の方が容量も小さく良いかと思ったのですが
wavファイルで音質下げることにします
0168デフォルトの名無しさん
2006/04/25(火) 13:01:09wavなんかにするならwmaとかにしたら?
0169デフォルトの名無しさん
2006/04/25(火) 13:01:300170デフォルトの名無しさん
2006/04/25(火) 13:15:13現在DirectSoundでwav再生でやってるのですが、
その辺りのフォーマットを再生するには、DirectShowだと何の指定も無しに柔軟に再生できますよね
とりあえずサンプル見ながらmp3の再生はできたのですが、音量の指定で躓いています
とりあえずできるということなので、もうちょっと色々見てみます。
0171デフォルトの名無しさん
2006/04/25(火) 13:41:21なんらかのソフトを作るのに必要というのであれば
素直に既存DLLなりライブラリなりで再生しちまうのも手。
0172デフォルトの名無しさん
2006/04/25(火) 17:47:060173デフォルトの名無しさん
2006/04/25(火) 17:48:56同じサンプリング周波数、Bit等の設定で、
マイク入力、スピーカ出力のリングバッファの
進み方に差が生じてきて、出力が足りなくなってしまいます。
時間辺りで計算してみると、入力が微妙に少ないみたい…
このようなとき、どうやって補正するのが正しいんでしょうか?
これはDirectSoundのバグでしょうか?ドライバ等のバグでしょうか?
0174デフォルトの名無しさん
2006/04/25(火) 17:49:230175デフォルトの名無しさん
2006/04/25(火) 22:01:52常人のレベルを超えた鋭敏さを持つことは時に不幸であると、
私は幼少の頃サイボーグ009で教えられました。
0176デフォルトの名無しさん
2006/04/25(火) 22:59:34曲自体はオリジナル&差し替え自由でも。
0177デフォルトの名無しさん
2006/04/25(火) 23:08:250.1%もライセンス料を払えば良いのです。
0178デフォルトの名無しさん
2006/04/25(火) 23:41:58エロゲ屋はoggで統一されてるっぽいな。
0179デフォルトの名無しさん
2006/04/26(水) 12:27:04メッシュのストリーム作成って出来るんでしょうか?
分かる方、お願いします。
0180デフォルトの名無しさん
2006/04/26(水) 13:32:380181179
2006/04/26(水) 17:59:16それって本当に可能でしょうか?
過去に試した事があります。
その時はデバイスの使用でバッティングが起きたように思います。
(原因は結局分かりませんでした)
もし可能な場合、クリティカルセクションで何処を囲めば良いのでしょうか?
0182デフォルトの名無しさん
2006/04/26(水) 18:11:29デバイス作る時にマルチスレッド用のフラグ立ててないとかじゃないよな?
0183179
2006/04/26(水) 19:50:39すいません。立ててません。。。(汗
というか、そういうのが存在する事自体知りませんでした。
D3DCREATE_MULTITHREADED っすね。
出直してきます。。。orz
0184デフォルトの名無しさん
2006/04/26(水) 21:12:22Xファイルを止めて、自作のベタのバイナリ形式にすることでも読み込みとデータの加工の速度の問題は解決したりする。
0185デフォルトの名無しさん
2006/04/27(木) 10:00:01ウインドウモードでALTキーを押したとき、メニューバーに
フォーカスが行ってしまうのを止めたいのですが、
どうすればいいんでしょうか?
いろいろ試してみたところWS_OVERLAPPEDWINDOWから、
WS_SYSMENU をはずすと、Altを押してもメニューは表示されないようですが、
ウインドウ右上の×ボタンも表示されなくなってしまいました。
0186デフォルトの名無しさん
2006/04/27(木) 10:31:07WS_OVERLAPPEDWINDOW
でググるとヒントが一杯出てくるぞ。
メニューバーについては
WNDCLASSかEXかの
lpszMenuNameがNULLになってるか
CreateWindowかEXかの
HMENUがNULLになってるかどうか
これで消えるでしょう。たぶん。じゃないかな?おそらく。
WS_SYSMENUは
タイトルバーにシステムメニュー(閉じるボタンとアイコン)つける
とある。見当違いだったな。
0187デフォルトの名無しさん
2006/04/27(木) 22:12:21OBBツリー難しい・・・orz
あきらめて円での当たり判定にしようかな。
0188デフォルトの名無しさん
2006/04/27(木) 22:20:010189デフォルトの名無しさん
2006/04/29(土) 07:39:18いつからなくなったのか、教えてください。
http://www.microsoft.com/japan/msdn/directx/default.aspx
それと、DirectX 9.0c SDKが入手できる雑誌を教えてください。
0190デフォルトの名無しさん
2006/04/29(土) 07:44:220191デフォルトの名無しさん
2006/04/29(土) 09:43:380192デフォルトの名無しさん
2006/04/29(土) 17:06:55できました。ありがとうございます。
でも、Altを押すと、もう一度Altを押すまで、画面更新が止まってしまいます。
アクションゲームをつくりたいので少々問題です。
0193デフォルトの名無しさん
2006/04/29(土) 17:40:13Altキーを押してフォーカスが変わるのは正常な動作なんだから
アクションゲームだからって別に気にしなくて良いんじゃないの?
むしろウィンドウモードで起動してるのに、デフォルトのキーがちゃんと機能しないアプリは怖いと思うんだけど
どうしても止めたくないなら、フォーカスが変わっても画面更新の処理を止めないとか
って方法でもいいんじゃないの?
0194デフォルトの名無しさん
2006/04/29(土) 17:57:02ZキーとXキー、カーソルキーを使おうと思っているのですが、Altも間違って押してしまいそうです。
>>どうしても止めたくないなら、フォーカスが変わっても画面更新の処理を止めないとか
この方法ってどうやるのでしょうか?
メニューが表示されると、WM_ENTERMENULOOP、非表示になるとWM_EXITMENULOOP
というコマンドが送られてくることはわかったので、そのタイミングで何か処理をすれば
回避できるかと思うのですが良くわかりません。
それと、リソースファイルには、メニューの項目は見当たらないのに、
元のサイズに戻す(R)
移動(M)
サイズ変更(S)
最小化(N)
最大化(X)
閉じる(C) Alt+F4
というプルダウンメニューが出たりすることがあるのが、これはどこで定義されているものなのでしょうか?
よろしくお願いします。
0195デフォルトの名無しさん
2006/04/29(土) 18:51:52ただ、オブジェクト指向で考えると表示部分をどうすればいいかわかりません。
例えば、キャラAを描くときは
キャラA->Draw(pD3DDevice)
のようにキャラクラスに自分自身を描画するメソッドを用意してデバイスのポインタを渡すのか、
描く際は別に、
Draw(キャラA)
のように描画クラスや描画関数を用意してそちらで処理するのか
一般的にどうするのでしょうか?
0196デフォルトの名無しさん
2006/04/29(土) 18:53:300197デフォルトの名無しさん
2006/04/29(土) 18:55:36作ったことある人はどうやって作ってんの?
あ、専門学校の課題でオセロは作ったこと有ったけど、
さすがに「コマ」を表現するオブジェクトに
描画メソッドを持たせて、なんてことはやらなかったなぁ。
あたりまえか
0198195
2006/04/29(土) 19:02:24C++で書いた場合のオブジェクト指向のソースっていうのがなかなか見当たらなくて、
入門書などもグラフィックの表示の仕方とかをクラスで表現しているだけなので、
実際にキャラとかとグラフィックスを関連させるところをどのようにしているかを知りたいのですが。
誰か!愛の手を!
0199デフォルトの名無しさん
2006/04/29(土) 19:03:24キャラA->Draw();
の方がいいんじゃないかな?
0200デフォルトの名無しさん
2006/04/29(土) 19:04:370201195
2006/04/29(土) 19:12:53ん〜、スレ違いなんですかねぇ〜・。
0202デフォルトの名無しさん
2006/04/29(土) 19:15:39いちいち普通は、普通は、って聞く奴はうざい。
0203デフォルトの名無しさん
2006/04/29(土) 19:16:25Draw(キャラA)とかしたら、そういう設定ごとに
SetRenderState(キャラA)とかしないとだめになるお。
キャラA->Draw()ならその中で一気に設定できてパーヘクトだぜぃ。
0204デフォルトの名無しさん
2006/04/29(土) 19:26:100205195
2006/04/29(土) 19:31:30やはり、キャラAにもたしたほうが融通がききますか。
グラフィックスクラス->Draw(リスト)も
一応自分でも考えたんですよね。
グラフィックスポインタをいちいち移さなくて最終的にリストを網羅する方法。
しかし、203の意見を考えるとキャラごとにステートを変えたりすることを考えるとやはり
キャラA->Drawですかね!
とりあえず、それでいきます。ありがとうございました。
0206デフォルトの名無しさん
2006/04/29(土) 19:38:10各キャラの不透明の描画を先にして、その後半透明を描画したいとかなると困らないか?
DrawNormal()
DrawTransparent()
って関数分ければいいかorz
0207デフォルトの名無しさん
2006/04/29(土) 19:40:150208デフォルトの名無しさん
2006/04/29(土) 19:54:59> >>どうしても止めたくないなら、フォーカスが変わっても画面更新の処理を止めないとか
> この方法ってどうやるのでしょうか?
メッセージループとゲームのルーチンを別スレッドにする。
> それと、リソースファイルには、メニューの項目は見当たらないのに、
システムで定義されている。ウィンドウ左上のアイコンをクリックすると出る。
あるいは Alt + SPACE。
0209194
2006/04/29(土) 20:30:29たびたび質問してすいません。
>メッセージループとゲームのルーチンを別スレッドにする。
というのは、ゲーム処理をCreateThreadで作った別スレッドで処理させるということですか?
その場合、元のメッセージループでメニューが呼び出されたとき、どういう仕組みで処理が
続くのかちょっとイメージがわかないのですが、
そいいうのを解説しているHPとかってご存知ありませんか?
0210デフォルトの名無しさん
2006/04/29(土) 20:33:501 読まない
2 調べない
3 試さない
4 理解力が足りない
5 人を利用することしか頭にない
0211デフォルトの名無しさん
2006/04/29(土) 20:50:30そのウィーザードを使ったこと無いけど、フォーカスが無い時にゲームが止まる処理が入ってるんじゃないの?
敢えて止めなきゃバックグラウンドでもアプリは動くでしょ
それと、ZXキーを使うから、その近辺にあるキーの動作を効かないようにするってのは
余計なお世話だと思うけどなぁ。
0212デフォルトの名無しさん
2006/04/29(土) 20:51:43マルチスレッド
http://wisdom.sakura.ne.jp/system/winapi/win32/win143.html
>>210
>メッセージループとゲームのルーチンを別スレッドにする。
これで理解できる奴は初心者じゃないだろというか、
そんなめんどいことしなくても、終了ボタンを残したまま、
Altによるフォーカス移動を防ぐことができる罠。
0213デフォルトの名無しさん
2006/04/29(土) 22:49:37「チラシ」
キャラの座標とかも
キャラ->Pos( 0,0,0 );
って感じ?
座標もクラス内に入れるべき?
入れたらキーで移動するとき上のような関数作らないといけないし、
クラス無しにして直接変数に書き込むほうが軽いのかな〜。
0214デフォルトの名無しさん
2006/04/29(土) 23:00:470215デフォルトの名無しさん
2006/04/30(日) 14:03:38あまりの速さに恐怖を覚えた
0216デフォルトの名無しさん
2006/04/30(日) 14:18:46遅くなってるだけ。
0217デフォルトの名無しさん
2006/04/30(日) 14:40:08Visual C++ 2005 Express Editionをインストールしたところ
エラーで全てのコンポーネントをインストールできません。
net framework2.0と
net framework2.0 日本語packと
sql server 2005 express edition x86
がインストールできません
どうしたらよいでしょうか?
全くの初心者なのでご指導おながいします
0218デフォルトの名無しさん
2006/04/30(日) 14:48:47> ものすごい初歩的なことを聞いてすみませんが、(もしかしたら場違い?)
どう見ても基地外です。本当にありがとうございました。
0219デフォルトの名無しさん
2006/04/30(日) 14:56:29全くの初心者なのでご指導おながいします
全くの初心者なのでご指導おながいします
0220デフォルトの名無しさん
2006/04/30(日) 15:04:100221デフォルトの名無しさん
2006/04/30(日) 15:13:28消えますそして、
氏にます。
0222デフォルトの名無しさん
2006/04/30(日) 15:14:300223デフォルトの名無しさん
2006/05/01(月) 00:00:02なんで1さんはこんなになげやりなの?
なんかあったのこの板
0224デフォルトの名無しさん
2006/05/01(月) 00:10:390225デフォルトの名無しさん
2006/05/01(月) 16:04:40まぁセオリーからすると>204になるんだろうけどやっぱステートの変更がなぁ
関連して前スレでDrawPrimitiveを減らす為に纏めるってな話があったけど、纏められる
場面てのはかなり限定されね?
キャラ->Draw()なんてのはキャラクタ数に比例してオーバーヘッドがでかくなりそうだし
0226デフォルトの名無しさん
2006/05/01(月) 16:07:280227デフォルトの名無しさん
2006/05/01(月) 16:21:520228デフォルトの名無しさん
2006/05/01(月) 16:45:232Dならキャラ毎に別々にステート変更なんて普通は必要ないから、
いくつかのステートブロックに分けてそれぞれのブロックの描画キューに突っ込むようにするとか出来る。
3Dは微妙。ゲーム次第だろうな。
0229デフォルトの名無しさん
2006/05/01(月) 19:25:20>いくつかのステートブロックに分けてそれぞれのブロックの描画キューに突っ込むようにするとか出来る。
背景->Draw()
敵->Draw()
弾->Draw()
こんな感じかね
それぞれ単一ステートで
0230デフォルトの名無しさん
2006/05/01(月) 19:41:400231デフォルトの名無しさん
2006/05/01(月) 20:12:22俺の現在の構成は
Volume
Texture
Material
Geometry
Frame
Effect(シェーダ)
描画単位としてはGeometryでまとめてる
他にも、TextureやEffectでまとめられるけど
どれが一番効率がいいのかはわからんし
0232デフォルトの名無しさん
2006/05/01(月) 21:19:16じつは2Dしかやったことないって奴、結構多いのか?
0233デフォルトの名無しさん
2006/05/01(月) 21:33:123D使ってる同人ゲームも最近増えてきたとはいえ数はまだまだ少ないと思います。
でもこのスレや、ここ以外のスレでも色々答えてくれる人は沢山居るようなのですが
その人たちは3Dのゲームの製作に携わってる極小数の方たちなんでしょうか?
それとも会社ではPS2とかで製作しつつ、趣味でDirectXを使ってるとかそういう人なんでしょうか?
0234デフォルトの名無しさん
2006/05/01(月) 21:48:32ドット絵やらキャラ絵は描ける人はいくらでも居る。
背景なんかも写真から起こせばいいのでソレほど大変でもない。
だがポリゴンモデル&テクスチャ+ボーン&ウェイトマップとなると途端に人が居なくなる。
自分の方がLightwave使いこなせてたりする事もザラ。
結局たまに見るよく出来てる3Dの同人ゲームとかも
調べてみるとデザインがコンシューマー会社のデザイナーだったりするし。
0235デフォルトの名無しさん
2006/05/01(月) 23:22:54***チラシ
AA->Draw()
のとき
LPDIRECT3DDEVICE9 *m_pd3dDevice
が必要なんだが、これもクラス内にいれるべき?
メモリの無駄がどんどん増えていくな〜
グロールはやばいしな〜
0236デフォルトの名無しさん
2006/05/01(月) 23:42:30それかテクスチャとかから取得出来るので
使うときその都度取得してもいい
0237デフォルトの名無しさん
2006/05/01(月) 23:43:35質問スレなんだから、変なの気にしないで堂々と恋
Drawの引数なんかで渡せばOK。
その都度渡すのは面倒と思うかも知れないけど、実際は数カ所におさまるはず。
え、俺?
∧_∧ ┌────────────
◯( ´∀` )◯ < 俺は、グローバルちゃん!
\ / └────────────
_/ __ \_
(_/ \_)
lll
0238デフォルトの名無しさん
2006/05/01(月) 23:45:52う〜〜ん、グローバルはあんまり使うなと教えられたのに 猫でも分かるCでw
0239デフォルトの名無しさん
2006/05/02(火) 00:08:02とやらずに
mainWnd->Draw(AA)
とすれば一挙解決
0240デフォルトの名無しさん
2006/05/02(火) 00:44:540241デフォルトの名無しさん
2006/05/02(火) 01:15:590242デフォルトの名無しさん
2006/05/02(火) 05:48:11べつにボーン使わなくてもマップ3Dで
キャラだけ2Dエセビルボード(FFT?)でもいいと思うんだけどな。
そんな苦労なく栄えるようになると思うけど。
要は作り手のセンスが悪い。
もっと自分の好きなゲームをよくみたほうがいい。
どう考えたってチッププチプチつないでマップつくるよりは
3Dでモデリング一発でこさえたほうがデザイナも作ってて楽しいし、
作業量的にも楽だし、見た目もいいよね?
FFとかシステム的に出来が良すぎるゲームばっかりみてその辺がわからなくなってるのかもね。
別になんでもかんでも3Dで作ればいいってもんじゃないけど、
全く使わずに無駄な苦労をすればいいってもんでもない。
0243デフォルトの名無しさん
2006/05/02(火) 08:40:110244デフォルトの名無しさん
2006/05/02(火) 08:53:53代わりに説得力溢るる例を挙げてくれ。
0245デフォルトの名無しさん
2006/05/02(火) 12:00:06DrawPrimitive()を減らすのに拘り過ぎてんのかな…
いっそ全ての描画で単一ステート(切り換え無し)かつ全モデルをTriangleListに
してしまえば楽なんだろうが…
真面目に↑案を検討し始めている俺ガイル
どうせホビープログラミングだしな
0246デフォルトの名無しさん
2006/05/02(火) 16:19:230247デフォルトの名無しさん
2006/05/02(火) 16:53:470248デフォルトの名無しさん
2006/05/02(火) 17:49:290249デフォルトの名無しさん
2006/05/02(火) 18:01:120250デフォルトの名無しさん
2006/05/02(火) 18:19:100251デフォルトの名無しさん
2006/05/02(火) 18:22:210252デフォルトの名無しさん
2006/05/02(火) 18:23:54もっとも245みたいに、質問スレに愚痴書く奴も馬鹿だけど
0253デフォルトの名無しさん
2006/05/02(火) 18:32:470254デフォルトの名無しさん
NGNG今は、VS2005でdirectX9の本がなかったので
著者がVC++6.0 or .netとdirectX9を使っている本を参考にしています。
その本にはdirectXをインストールすれば新しいプロジェクトの作成のとき
directX 9 AppWirardというのが出てくると書いてあるのですが
私の環境では出てきません。これはVS2005とVC++6.0の違いでしょうか?
それとも何かしらの操作をすれば使えるようになるのでしょうか?
0255デフォルトの名無しさん
2006/05/02(火) 19:13:230256デフォルトの名無しさん
2006/05/02(火) 19:27:52(Summer 2004)でウィザードは廃止
0257デフォルトの名無しさん
NGNGその本はappwizardをベースに作ってく本だったので
ちょっと困りますが、サンプルCDもあるのでそっちだけを参考にすることにします。
本当にありがとうございました。
0258デフォルトの名無しさん
2006/05/03(水) 02:51:580259258
2006/05/03(水) 03:58:040260デフォルトの名無しさん
2006/05/04(木) 09:11:45Direct3DはHWNDを引数にしてデバイスの作成をするのですが、
それはつまり「沢山のWindow」があるアプリケーションでは
Windowごとにデバイスを作成し、それに関連付けしたテクスチャーをロードする必要があるのでしょうか。
1回テクスチャーをロードし、それを複数のWindowに表示したいのですが…。
0261デフォルトの名無しさん
2006/05/04(木) 09:40:51複数のウィンドウへのレンダリングは、日本語SDKヘルプで「スワップチェーン」で検索
0262デフォルトの名無しさん
2006/05/04(木) 10:16:090263デフォルトの名無しさん
2006/05/04(木) 11:19:200264デフォルトの名無しさん
2006/05/04(木) 12:25:270265デフォルトの名無しさん
2006/05/04(木) 14:31:23ありがとうございました。
ただ、Direct3D8でやろうとがんばっていたのですが、結局9でしかできませんでした。
プログラムはほっとんど同じなのに…。
0266デフォルトの名無しさん
2006/05/04(木) 19:09:20IDirect3DDevice8::Present()の引数でHWNDを指定するだけじゃ駄目?
0267デフォルトの名無しさん
2006/05/04(木) 19:17:540268デフォルトの名無しさん
2006/05/04(木) 19:57:570269デフォルトの名無しさん
2006/05/05(金) 11:43:04すでにいきなりではなくなったのでこれから頑張れ
0270デフォルトの名無しさん
2006/05/05(金) 11:47:45ダメでした。9のサンプルとはほっとんど変わらずに作りましたが
何故か真っ黒に変な色のドットがちょびっと。といういわゆる「VRAMの予期しないところを参照している」状態。
原因はわかりません
>>267
8だめですか…。
基本的にがなるべく古いもので作るのが良いと思うのですが…。(動作環境が多い)
0271デフォルトの名無しさん
2006/05/05(金) 12:46:57メーカーでさえ製造はもちろんサポートを打ち切ったようなものだってことだ。
ドライバにバグが残っていても更新の見込みもない。
そんなものを君は全力でサポートしようとしようというのか。
プロでもつらいのに初心者には無謀。ゾンビに墓穴に引きずり込まれるだけだ。
世界は、美しくなんかない。
0272デフォルトの名無しさん
2006/05/05(金) 13:02:203D系の機能にしてもDirect3Dが使えれば、ドライバそのものにDirectXのバージョンは関係ない。
どの機能に対応しているかどうかの違いでしかない。
それにDirectX9のフル機能に対応していないビデオカードは、
現在サポートが続いているものでも山のようにある。
0273デフォルトの名無しさん
2006/05/05(金) 13:08:227で作れないんだったら8でも9でも大した違いは無いから9にしとけ
0274デフォルトの名無しさん
2006/05/05(金) 13:37:000275デフォルトの名無しさん
2006/05/05(金) 14:09:09書籍やヘルプもないのに頑張れとかすげー無責任にもほどがある。
0276デフォルトの名無しさん
2006/05/05(金) 14:24:43水面の波とかを透過して描いたんだけどDrawGraph関数じゃ表示できないみたいです・・・
RPGツクールXPすごいな・・・
0277デフォルトの名無しさん
2006/05/05(金) 14:48:200278デフォルトの名無しさん
2006/05/05(金) 14:51:18むろんステート関係はちゃんと設定した上での話。
0279デフォルトの名無しさん
2006/05/05(金) 15:17:03アルファチャンネル入ってる。ステートはまだいじってません・・・
Windows画像とFAXビューアではしっかりと透過表示されてるのに・・・
勉強しよ
0280デフォルトの名無しさん
2006/05/05(金) 16:34:420281デフォルトの名無しさん
2006/05/05(金) 19:28:03DXライブラリはスレ違い。スレ無いけど。
SetDrawBlendModeを使え。
0282デフォルトの名無しさん
2006/05/05(金) 19:39:13ちらし〜
OBBついにできたーーーーーー!!!(BOX表示だけですが・・)
あとは、当たり判定をつければウハウハです!
しかし、BOXに無駄がかなりあなるな、 う〜〜ん
0283デフォルトの名無しさん
2006/05/05(金) 19:48:360284デフォルトの名無しさん
2006/05/05(金) 20:48:36感謝感激家事親父
0285デフォルトの名無しさん
2006/05/05(金) 21:35:28サブちゃんに謝れ
0286デフォルトの名無しさん
2006/05/05(金) 22:06:50ツクールXPってDirectXで描画してるにしては描画えらく遅いな。
透過はハードウェアでやってないんじゃないのか・・・?
0287デフォルトの名無しさん
2006/05/05(金) 22:59:410288デフォルトの名無しさん
2006/05/05(金) 23:34:540289デフォルトの名無しさん
2006/05/06(土) 00:03:472001年の頃にはDirectDrawのハードウェアなどあてにせず、
システムメモリ内で全画面のイメージを作ってから全体を転送するのが当たり前だった。
透過もソフトウェアでやる。それで60FPS出てたよ。
ツクールXPの描画は30FPSが上限でティアリング上等という設計なんだと思う。
DirectDraw全盛の時代の市販ゲームのRPGを思い出せば、
VSyncに同期したなめらかなスクロールより、そういうタイプが多かった。
0290デフォルトの名無しさん
2006/05/06(土) 06:28:53OBBを作るのに苦労してたのか・・・
あたり判定の方が数倍面倒くさい気がするが。
0291デフォルトの名無しさん
2006/05/06(土) 16:19:54VSをインストールした後、
Microsoft DirectX 9.0 SDK (April 2006)
http://www.microsoft.com/japan/msdn/directx/downloads.aspx
を入れるだけでいいのかな?
あとできれば簡単なサンプルプログラムと日本語のドキュメントを見てみたいんだけど
どこから入手できる?ちなみにまず勉強しようと思っているのはDirectSoundに関して。
サウンドカードからwave音を出す練習をしてみたいと思っている。
0292デフォルトの名無しさん
2006/05/06(土) 16:21:160293デフォルトの名無しさん
2006/05/06(土) 16:33:54ここからサンプルプログラムと日本語のドキュメントを入手できる
日本語ドキュメントは (October 2004) 日本語ドキュメントが最新版
http://www.microsoft.com/japan/msdn/directx/downloads.aspx
0294デフォルトの名無しさん
2006/05/06(土) 16:33:580295291
2006/05/06(土) 17:50:12ありがとう。今からドキュメント入れてみるわ。
が、その前にいきなりつまずいた。
> Microsoft DirectX 9.0 SDK (April 2006)
> http://www.microsoft.com/japan/msdn/directx/downloads.aspx
これWindows2000サポートしてないのかよorz・・・
0296291
2006/05/06(土) 17:54:45結局日本語ドキュメントの最新版、October2004までさかのぼらなければ
Windows2000はサポートされてなかったorz・・・
DirectX 9.0 SDK Update - (December 2004)
0297デフォルトの名無しさん
2006/05/06(土) 17:55:27落武者落合処 | DirectX SDKをWindows2000にインストールする?
http://blog.ochimusha.org/log/eid342.html
0298デフォルトの名無しさん
2006/05/06(土) 17:57:11少しは頭を使って考えろ。
0299デフォルトの名無しさん
2006/05/06(土) 18:00:35Windows2000サポートの最新版は(December 2004)
0301デフォルトの名無しさん
2006/05/06(土) 19:19:150302デフォルトの名無しさん
2006/05/06(土) 22:27:34>>301
市ねよ てめえは
0303デフォルトの名無しさん
2006/05/06(土) 22:41:22てめえがしんでおれもしぬ
0304デフォルトの名無しさん
2006/05/06(土) 22:44:13データが自ら描画するわけないって思うんだけど。
シーンを管理するクラスなどがデータをいじくって、描画クラスがデータを元に表現する。
こう思ってるんだけど、どうよ?あってんのかな?
0305デフォルトの名無しさん
2006/05/06(土) 22:50:20え?オブジェクトを描画されるものとみれば
描画は1メソッドにしかならないんじゃない?
オブジェクト指向っていうんだから実際に実体の認識できるものをクラスに反映しようよ。
それすらやらずに抽象クラスを先にだしちゃうのはなんかセンスなさげじゃない?
0306デフォルトの名無しさん
2006/05/06(土) 22:53:010307デフォルトの名無しさん
2006/05/06(土) 23:09:19ウィンドウクラスなり何なりだと思うがね。
0308デフォルトの名無しさん
2006/05/06(土) 23:11:40一個一個頂点を調べて
近い座標をある一定間隔でまとめてそれを囲む箱作ればいいのかな・・・
うーん、OBB専用モデル作成とかした方が簡単かも
0309デフォルトの名無しさん
2006/05/06(土) 23:24:26つ 主成分分析
専用モデルもありだけど。
0310デフォルトの名無しさん
2006/05/06(土) 23:40:30ジョイステックのサンプルを結合して人間を動かすプログラムを
書いても正常にビルドできたことが無いんですが、
((関数%45&)〜〜は未解決です。みたいなエラー)
それは置いといて、
例えばdirect3d + directinput + directmusicのように
サンプルを組み合わせるときの注意点はありますか?
0311デフォルトの名無しさん
2006/05/07(日) 00:11:550312デフォルトの名無しさん
2006/05/07(日) 00:14:09> つ 主成分分析
そういう難しいことをいわれても実に困る。
0313デフォルトの名無しさん
2006/05/07(日) 00:41:570314デフォルトの名無しさん
2006/05/07(日) 01:02:11プロの自覚があるなら主成分分析より良いモノが出る。
0315304
2006/05/07(日) 01:25:21ごめん、オブジェクトってのがおかしいのかも?
抽象クラスでなく、何かメッシュやら画像やらを持ったクラスっす。
なんて表現すればいいか解らない俺は、バカ・・・。
みなさんは、そうゆうクラスにDrawメソッドを与えてるの?
0316デフォルトの名無しさん
2006/05/07(日) 01:31:410317デフォルトの名無しさん
2006/05/07(日) 01:35:000318デフォルトの名無しさん
2006/05/07(日) 01:35:010319デフォルトの名無しさん
2006/05/07(日) 01:37:10今後の参考のために、主成分分析より良い物を教えてくれ。
0320デフォルトの名無しさん
2006/05/07(日) 01:41:04/__ \
| | | |
(_) (__)
愛用ツール:ツクール
0321319
2006/05/07(日) 01:59:18プロのプログラマーなら、主成分分析よりいいアルゴリズムが出る
という意味かと思った。
>312
主成分分析 OBB でググれ。
0322デフォルトの名無しさん
2006/05/07(日) 08:48:35噂によればまた初期化が難しきなってるとか・・・orz
0323デフォルトの名無しさん
2006/05/07(日) 09:07:090324デフォルトの名無しさん
2006/05/07(日) 09:28:16DirectXには
D3DXComputeBoundingBoxってのあるだろ?
車輪の再発明でもしてるのか
0325324
2006/05/07(日) 09:34:22モデルにフィットしたOBBを作ってるのか
0326デフォルトの名無しさん
2006/05/07(日) 12:29:58線形代数ライブラリを一から作る羽目になったぞ
えらい苦労した
0327291
2006/05/07(日) 13:25:40> 日本語ドキュメントは (October 2004) 日本語ドキュメントが最新版
> http://www.microsoft.com/japan/msdn/directx/downloads.aspx
↑のドキュメント入れてみたよ。
インストール自体はうまくいったんだけど反映されたのが
・Visual Studio .NET 2003 Combined Collection
の方だけなんだよね。
・Visual Studio .NET 2003 MSDN ライブラリ
の方にはなぜか反映されなかった。
いや別に調べ物は今後はVisual Studio .NET 2003 Combined Collectionの方だけで
やれば済むことなんだけどね。
0328デフォルトの名無しさん
2006/05/07(日) 14:07:27クエストに必要な分が揃うとそれ以上出なくなるね。
それはいいんだけど、同じアイテムが必要なクエストを
複数受けていても、1回分しか出ないね。
清浄水のクエを3つ受けて行ったら無駄になった。
0329デフォルトの名無しさん
2006/05/07(日) 14:08:01スレ違いどころか板違いorz
0330デフォルトの名無しさん
2006/05/07(日) 17:37:40どうすればよいでしょうか
0331デフォルトの名無しさん
2006/05/07(日) 17:45:52クラインの壷みたいなのはどう扱うんだっけ
0332291
2006/05/07(日) 19:34:34要は静的バッファに収まりきらないくらい長いwaveファイルはストリーミングバッファに
格納するらしいんだけど、具体的にどのくらいのサイズまで静的バッファは格納する
ことができるんだろう?
0333デフォルトの名無しさん
2006/05/07(日) 19:36:03レスありがとうございます。
クラインのツボみたいなの使われてるゲームってあるのかな...。
プログラムの仕方は分からないです。スミマセン。
0334デフォルトの名無しさん
2006/05/07(日) 19:37:56分からないってのはクラインの方です。
閉じた形状の方は分かりました。
ありがとうございました。
0335デフォルトの名無しさん
NGNGゲームじゃないが、DirectXでレンダリングした人はいるみたいだ。
http://www2.neweb.ne.jp/wc/morikawa/sya.html
0336デフォルトの名無しさん
2006/05/10(水) 00:09:27お、俺ん家の玄関においてあるのと同じだ>クラインの壺
0337デフォルトの名無しさん
2006/05/12(金) 22:45:330338デフォルトの名無しさん
2006/05/13(土) 03:57:230339デフォルトの名無しさん
2006/05/13(土) 07:06:520340デフォルトの名無しさん
2006/05/20(土) 22:59:560341デフォルトの名無しさん
2006/05/21(日) 02:32:220342デフォルトの名無しさん
2006/05/22(月) 12:25:48D3DX: MEMORY LEAKS DETECTED: 43712 allocations unfreed (699392 bytes)
D3DX: Set HKLM\Software\Microsoft\Direct3D\D3DXBreakOnAllocId=0xb60cb to debug
アウトプットに上記2行が表示されました。
何が原因か分かりません。
怪しい個所など教えていただけると助かります。
0343デフォルトの名無しさん
2006/05/22(月) 13:35:56(というより丸っきり開放してないように思えるが・・・)
0344342
2006/05/22(月) 17:55:29まだ駄目です。。。解決しないです(;_;
解放は全部見ましたが特に怪しい所はありませんでした。
43712 と 699392 の数値が毎回激しく変わるのですが、プレイは毎回正常に行えます。
メッシュ(テクスチャー?)を作り過ぎると出る印象があるのですが、分かる方お願いします。
メッシュは104個程作ってます。
0345デフォルトの名無しさん
2006/05/22(月) 17:59:530346デフォルトの名無しさん
2006/05/22(月) 18:22:04自分のプログラムの腕を信じないで素直にエラーメッセージを信じろ。
0347デフォルトの名無しさん
2006/05/22(月) 18:40:55100テクスチャ
0348342
2006/05/22(月) 19:37:54とりあえず_CrtDumpMemoryLeaksのような、リークしているポインタリストが欲しいっす。
D3DX: Set HKLM\Software\Microsoft\Direct3D\D3DXBreakOnAllocId=0xb60cb to debug
とあるので、レジスタの
HKEY_LOCAL_MACHINE\Software\Microsoft\Direct3D\D3DXBreakOnAllocIdに0xb60cbをセットしてみました。
(HKLMってHKEY_LOCAL_MACHINEの略だったんですね。ったく分かりづらい。。。)
でもその後は、
http://www.gamedev.net/community/forums/topic.asp?topic_id=313718
のMetaKnight氏と同じ状況。
im not sure if that'll catch a DX leak
ですよ。
知ってる人、助けて。。。orz
0349デフォルトの名無しさん
2006/05/22(月) 19:40:56○面倒
0350デフォルトの名無しさん
2006/05/22(月) 20:07:50バグが見つからないならプログラムを小分けに走らせればいいのさ
必要最低限の部分だけ抜き出して走らせるのさ
問題ないなら少しずつ大きくしていくのさ
0351342
2006/05/22(月) 20:17:14>>350
まずそれやったですよ。
Aクラスを止めました -> リーク表示が消えました
Aクラスの中のものが解放されていないのかと思い、調べましたが結局分からず。
Aクラスを止めていたのを元に戻し、今度はBクラスを止めました -> リーク表示が消えました
もうね。
DirectXが人間だったら殴ってます。
なんだよ。。。こんなリーク初めてだよ。。。orz
0352デフォルトの名無しさん
2006/05/22(月) 20:23:58とっととやめちまえ
0353デフォルトの名無しさん
2006/05/22(月) 20:35:29それをAddRef()してるのに片方でしかRelease()してなかったりするってところか。
0354デフォルトの名無しさん
2006/05/22(月) 20:53:44それならばAとかBとか関係なくどこか壊してんじゃないのか
>>344でメッシュ作りすぎると出るとか言ってるから
メッシュ作るところを一部分ずつ何度も回すしかないだろ
0355デフォルトの名無しさん
2006/05/25(木) 12:13:25縦横に激しく間延びしてしまってウィンドウに収まらないのですが
どのような原因が考えられますでしょうか?
スプライトは下のように描画したのですが、、、
Sprite->Draw(texture, NULL, NULL, NULL, 0, NULL, 0xffffffff);
0356デフォルトの名無しさん
2006/05/25(木) 12:34:09D3DX_FILTER_NONEにしたら解決しました。失礼しました
0357デフォルトの名無しさん
2006/05/26(金) 22:23:24・共通のメッシュとボーン構造を持つ、複数のXファイルがあります。
・D3DXLoadMeshHierarchyFromX()云々を使用して、個々のモデルとモーションの再生が可能になりました。
・が、実は目的としたいのは、同一のメッシュ上で、複数のモーションを切り替えて再生することだったのです。
・モデル情報(Xファイル)はバイナリで編集不可、製作者は現在多忙で、テキスト化->編集で複数モーションを
もたせる手が使えません。
・仕方ないので、各モデル情報から
0358デフォルトの名無しさん
2006/05/26(金) 22:25:14{
static const wchar_t* stapFileName[ANIMSTATE_MAX] =
{
L"MODELA_ANIM0.X",
L"MODELA_ANIM1.X",
L"MODELA_ANIM2.X",
L"MODELA_ANIM3.X",
L"MODELA_ANIM4.X",
};
m_aSkinMesh[i].Load(&getD3DDevice().getDevice(), stapFileName[i]);
HRESULT hr = m_aSkinMesh[i].GetAnimeCtrl()->GetTrackAnimationSet(0, &m_apAnimationset[i]);
if(FAILED(hr))
_ASSERT(0);
}
}
みたいにして、m_apAnimationset[]に AnimationSet を回収することにしました。
0359デフォルトの名無しさん
2006/05/26(金) 22:36:26ここでは補間とかは考えず、単にAが終了->Bを再生->Bが終了->Cを再生みたいなことをします。
本当はモーションの再生イベントをチェックするのが筋なんでしょうが、再生終了時間を検出しました。
LPD3DXANIMATIONSET panimationset = m_apAnimationset[m_eAnimState];
double periodtime = panimationset->GetPeriod();
double delta = rDelta;
double time = m_aSkinMesh[0].GetAnimeCtrl()->GetTime();
time = fmod(time, periodtime);
if(periodtime <= time + delta)
{
delta = periodtime - time;
m_eAnimState = m_eNextAnimState;
m_aSkinMesh[0].GetAnimeCtrl()->ResetTime();
m_aSkinMesh[0].GetAnimeCtrl()->GetTrackAnimationSet(0, &panimationset);
m_aSkinMesh[0].GetAnimeCtrl()->UnregisterAnimationSet(panimationset);
m_aSkinMesh[0].GetAnimeCtrl()->RegisterAnimationSet(m_apAnimationset[m_eAnimState]);
m_aSkinMesh[0].GetAnimeCtrl()->SetTrackAnimationSet(0, m_apAnimationset[m_eAnimState]);
m_aSkinMesh[0].GetAnimeCtrl()->GetMaxNumTracks();
m_aSkinMesh[0].GetAnimeCtrl()->GetNumAnimationSets();
}
0360デフォルトの名無しさん
2006/05/26(金) 22:40:06あるモデルのアニメーションセットの差し替えって、アニメーションコントロールから
GetTrackAnimationSet()
UnregisterAnimationSet()
でアニメを外して、
RegisterAnimationSet()
SetTrackAnimationSet()
で再登録って流れを踏めばいいんでしょうか?
ある程度はちゃんとうごくっぽいんだけど、一部のスキンに
妙なスケールがかかっちゃったりして、元データの問題なのか
プログラム側が強引過ぎるのか、問題が掴めずにぼーぜんとしております。
どなたか詳しい方、ご教授くださいぃ。
0361デフォルトの名無しさん
2006/05/27(土) 00:30:29自己解決してしまいました
っつーか、上のやり方で普通に正しかったみたい。
m_aSkinMesh[0].GetAnimeCtrl()->GetMaxNumTracks();
m_aSkinMesh[0].GetAnimeCtrl()->GetNumAnimationSets();
はいらないけど。
モデルデータの問題だったーよ…
少し構造の違うモデルが紛れ込んでただけだった。
お騒がせしましたー。
0362デフォルトの名無しさん
2006/05/27(土) 09:47:060363デフォルトの名無しさん
2006/05/27(土) 13:00:45「0x80040154 クラスが登録されていません」とのことですが、よくわかりません。
CoInitializeもやっています。
0364デフォルトの名無しさん
2006/05/27(土) 21:58:15使ってるよって話を全く聞いたことがない。
0365デフォルトの名無しさん
2006/05/27(土) 22:14:35そもそもMSは外部からきた奴が提案したものは短命
0366デフォルトの名無しさん
2006/05/27(土) 23:09:30ビュー行列とプロジェクション行列をセットして
m_pd3dDevice->SetTransform(D3DTS_VIEW, (D3DMATRIX*)&m_mView);
の文のD3DTS_VIEWをD3DTS_WORLDにしてD3DXMatrixTranslationで
座標を変えたいのですが原点(0,0,0)から動きません。
どうすればワールド座標で座標を変えられますか?
0367デフォルトの名無しさん
2006/05/27(土) 23:14:28skinnedmeshを固定機能で実装してる奴って存在しないんじゃないかと思うが
どうだろう
0368デフォルトの名無しさん
2006/05/28(日) 00:44:36腐るほどあると思うが。
0369デフォルトの名無しさん
2006/05/28(日) 00:56:41>>366
skinned meshの場合(インデックス付き頂点ブレンディングが有効の場合)は、
ボーンごとにワールド(ローカル)行列をセットする必要があるよ
例えば0番目のボーンのワールド行列をセットするには
device->SetTransform( D3DTS_WORLDMATRIX( 0 ), &matrix_world );
0370デフォルトの名無しさん
2006/05/28(日) 02:50:05FFXI
0371デフォルトの名無しさん
2006/05/28(日) 13:03:06どうしたらいいんでしょう?
0372371
2006/05/28(日) 14:06:12どうもすいませんでした
0373デフォルトの名無しさん
2006/05/28(日) 14:34:300374デフォルトの名無しさん
2006/05/28(日) 15:40:27VisualStudio2005でV++ディレクトリでインクルードとライブラリを設定して
プロジェクトのプロパティ[リンカ]→[入力]→[追加の依存ファイル]を設定しても
LINK : fatal error LNK1104: ファイル 'C:\Program Files\Microsoft DirectX SDK (April 2006)\Lib\x86.obj'
を開くことができません。
とエラーがでます。ググりましたがぜんぜん原因がわからないので、わかる方は教えていただけないでしょうか?
V++のライブラリファイルにインクルードしてるファイル↓
「C:\Program Files\Microsoft DirectX SDK (April 2006)\Lib\x86」
V++のインクルードファイルにインクルードしてるファイル↓
「C:\Program Files\Microsoft DirectX SDK (April 2006)\Include」
プロジェクトのプロパティ[リンカ]→[入力]→[追加の依存ファイル]設定しているファイル
「"C:\Program Files\Microsoft DirectX SDK (April 2006)\Lib\x86"」
0375デフォルトの名無しさん
2006/05/28(日) 15:43:30>「"C:\Program Files\Microsoft DirectX SDK (April 2006)\Lib\x86"」
これってフォルダじゃないのか?
ファイルの設定するところにフォルダ書いたら、そりゃエラー出るだろう。
0376374
2006/05/28(日) 16:26:39指摘されたところを修正したらうまく行きました。ありがとうございます。
V++ディレクトリのライブラリと同じものを設定すればいいと勘違いしてました。
<修正前>
"C:\Program Files\Microsoft DirectX SDK (April 2006)\Lib\x86"
↓
<修正後>
"C:\Program Files\Microsoft DirectX SDK (April 2006)\Lib\x86\d3d9.lib"
"C:\Program Files\Microsoft DirectX SDK (April 2006)\Lib\x86\d3dx9.lib"
"C:\Program Files\Microsoft DirectX SDK (April 2006)\Lib\x86\dxerr.lib"
"C:\Program Files\Microsoft DirectX SDK (April 2006)\Lib\x86\dxguid.lib"
0377デフォルトの名無しさん
2006/05/29(月) 00:43:05g_pFrameRoot、g_pAnimController、g_vObjectCenter、g_fObjectRadius
これらのグローバル変数を名前を変えて自作のクラス内に入れ、実行すると
「Unexcepted error encountered」
「SetupBoneMatrixPointers()」
というダイアログが出てストップしてしまいます。
尚、グローバル変数でもう一度試したところ問題なく実行できました。
どうにかしてクラスor構造体で動作させたいのですがどうすればいいのでしょうか?
一応下に作ったクラスを書いておきます(コン・デストラクタは省略です)
class Objects{
public:
Objects();
~Objects();
LPD3DXFRAME FrameRoot;
ID3DXAnimationController* AnimController;
D3DXVECTOR3 ObjectCenter;
FLOAT ObjectRadius;
Objects* NEXT;
};
0378デフォルトの名無しさん
2006/05/29(月) 01:19:020379377
2006/05/29(月) 01:28:000380デフォルトの名無しさん
2006/05/31(水) 06:48:32現在2D系のゲームを作っていて、会話画面と体力の表示画面とで文字出力のフォントの大きさを変えたいのですが、
Draw()
{
logFont.Height = 25; //フォントの文字セルまたは文字の高さ
logFont.Width = 10; //フォントの文字の幅 (論理単位)
D3DXCreateFontIndirect(lpD3DDEV, &logFont, &g_pFont);
DrawText(会話画面描画命令)
logFont.Height = 50; //フォントの文字セルまたは文字の高さ
logFont.Width = 20; //フォントの文字の幅 (論理単位)
D3DXCreateFontIndirect(lpD3DDEV, &logFont, &g_pFont);
DrawText(体力の表示画面描画命令)
}
とやるとプログラムが滅茶苦茶重くなります。
D3DXCreateFontIndirect(lpD3DDEV, &logFont, &g_pFont);
で毎フレームフォントの設定をしなおしているからなのですが、
このような方法以外に、フォントの大きさを別々に設定する方法はないでしょうか?
0381デフォルトの名無しさん
2006/05/31(水) 06:49:58もう見飽きた質問だな
0382デフォルトの名無しさん
2006/05/31(水) 20:11:28GetGlyphOutline でググってみるといいかも。
0383デフォルトの名無しさん
2006/06/01(木) 00:15:48Xファイルを読み込んで表示した所、奥に隠れて見えないはずの部分も表示されてしまいました。
深度テストとやらが上手くいってなさそうな雰囲気なのですが・・・
EnableAutoDepthStencil = TRUE;
AutoDepthStencilFormat = D3DFMT_D16;
の後にデバイスを作っていてSetRenderStateで深度バッファを有効にしています。
もう何が原因なのやらさっぱり。D3DRS_ZFUNCを色々いじった結果、全部同じ深度にある事になってるっぽいです。
SetRenderState深度バッファ書き込みを有効にしてみたり色々やったんですが解決しませんです。。。
なんか他に原因があるんでしょうか?
ちなみに使ってるのは2003summer C++6.0です
0384デフォルトの名無しさん
2006/06/01(木) 01:08:02射影行列(D3DXMatrixPerspectiveFovLHとか)のパラメータは
どうなってるのかしら。
0385デフォルトの名無しさん
2006/06/01(木) 01:16:14現在2D系のゲームを作っていて、会話画面と体力の表示画面とで文字出力のフォントの大きさを変えたいのですが、
Draw()
{
logFont.Height = 25; //フォントの文字セルまたは文字の高さ
logFont.Width = 10; //フォントの文字の幅 (論理単位)
D3DXCreateFontIndirect(lpD3DDEV, &logFont, &g_pFont);
DrawText(会話画面描画命令)
logFont.Height = 50; //フォントの文字セルまたは文字の高さ
logFont.Width = 20; //フォントの文字の幅 (論理単位)
D3DXCreateFontIndirect(lpD3DDEV, &logFont, &g_pFont);
DrawText(体力の表示画面描画命令)
}
とやるとプログラムが滅茶苦茶重くなります。
D3DXCreateFontIndirect(lpD3DDEV, &logFont, &g_pFont);
で毎フレームフォントの設定をしなおしているからなのですが、
このような方法以外に、フォントの大きさを別々に設定する方法はないでしょうか?
0386デフォルトの名無しさん
2006/06/01(木) 01:38:222種類のフォントをあらかじめ生成しておけばいいんじゃないの?
(g_pFont1とg_pFont2とか)
というか"設定"じゃなくて"生成"だから、それだと生成されまくりよ。
0387デフォルトの名無しさん
2006/06/01(木) 04:47:23射影行列のパラメーターを聞かれたので関係あるのかと色々いじってみました。
そんでどうも、前方投影面と後方投影面の距離差を小さくすると上手くいきました。
これは、前方投影面と後方投影面の距離差が大きすぎると計算誤差が出てダメになるって事ですよね?
良く考えたら当たり前ですね深度バッファの計算範囲は0.0f〜1.0fみたいですし。
記憶が正しければfloat型の精度ってそこまで良くなかったような気がしますし。
0.01〜1000くらい取ってたんですが今考えると大変愚かしい。0.01ってなんだ0.01って。
どうもありがとうございます。助かりました。
0388デフォルトの名無しさん
2006/06/01(木) 10:36:37D3DRS_ZWRITEENABLEもTRUEにしてるのに
Zバッファが有効にならない状態って
なんか心当たりある人いない?
Zバッファは毎回クリアしてます。
EnableAutoDepthStencilはTRUEです。
AutoDepthStencilFormatはD3DFMT_D16です。
0390380
2006/06/01(木) 11:41:10後で調べてみます、情報ありがとうございます。m(_ _)m
>>386
なるほど!!生成しまくってたのですね!!
重くなった理由がわかりました!!
フォントを2種類作る方法もわからなかったのですが、
g_pFontを2種類作れば良かったんですね!!
試してみたら成功しました。
ありがとうございましたm(_ _)m
0391デフォルトの名無しさん
2006/06/01(木) 14:29:45OS:WindowsXP
IDE:VisualStudio2002
SDK:DirectX9(December 2005)
言語:C++
上記の環境で開発しています。
DirectXでSurfaceなどを取得して、Releaseせずに終了した際に、メモリリークが発生しますよね。
その時に、デバッグモードだと出力ウィンドウに下記のような表示がされるんですが、
Direct3D9: (ERROR) : [0] : Address 0047A3A5
Direct3D9: (ERROR) : [1] : Address 0047A3A5
開発マシンによって出たり出なかったりするんですよね。
適当に設定したので、なにを設定したらメモリリークなどのエラー表示をするのか分かりません。
どなたかご教授願いませんか?
よろしくお願いします。
0392デフォルトの名無しさん
2006/06/01(木) 14:33:59コンパネ>DirectX>Direct3D>
Debug Output Level
Use Debug Version
他
0393デフォルトの名無しさん
2006/06/01(木) 14:38:46設定してみたら出来ました、
色々みてみます。
ありがとうございました!
0394デフォルトの名無しさん
2006/06/01(木) 20:14:10重大な誤りとかが無ければ買おうと思ってるけど、
どんなもん?
0395デフォルトの名無しさん
2006/06/01(木) 20:19:420396デフォルトの名無しさん
2006/06/02(金) 22:31:43恥ずかしくて今更人に聞けないような事もきちんと書かれていていいんじゃね
0397デフォルトの名無しさん
2006/06/02(金) 22:40:220398デフォルトの名無しさん
2006/06/03(土) 02:03:230399デフォルトの名無しさん
2006/06/03(土) 02:20:080400デフォルトの名無しさん
2006/06/03(土) 06:08:050401デフォルトの名無しさん
2006/06/03(土) 11:05:06どうやったら見られるのかがわかりません
フォルダをみると得体のしれない拡張子のファイルはいくつかあるのですが
0402デフォルトの名無しさん
2006/06/03(土) 15:21:420403デフォルトの名無しさん
2006/06/03(土) 16:01:570405デフォルトの名無しさん
2006/06/04(日) 01:17:57縦画面をサポートしたビデオカードで画面を縦にしている環境で、EnumAdapterModes()の
結果はやっぱ横画面の時と変わるの?
あと、現在の画面が縦か横かを判断するのはGetSystemMetrix()で画面サイズ拾って
縦横比調べるのでおk?
DirectX的にもっとスマートな方法はないもんかと
0406デフォルトの名無しさん
2006/06/04(日) 16:32:36書き込む方法とかない?
0407デフォルトの名無しさん
2006/06/04(日) 16:34:27D3DRS_COLORWRITEENABLE
0409デフォルトの名無しさん
2006/06/05(月) 00:39:52正しいレンダーターゲットの「戻し方」を教えて下さい。
SetRenderTarget()で描画先を変えた後で元に戻したい場合にどう戻せばよいのか判りませぬ。
SetRenderTarget()で変える前に元々のレンダーターゲットをGetRenderTarget()で取得しておいて、
用が済んだらこの値を使ってSetRenderTarget(0,元の値)とかするのかと思ったけど、GetRenderStateって
参照カウント上がるし、使った(SetRender…で戻した)後は解放するしなきゃならんのでちょっと違和感。
この辺の作法について教えて下さい。
コノトオリ orz
0410デフォルトの名無しさん
2006/06/05(月) 00:46:540411デフォルトの名無しさん
2006/06/05(月) 00:48:570412デフォルトの名無しさん
2006/06/05(月) 06:08:08再設定すりゃいいだけじゃね?
0413デフォルトの名無しさん
2006/06/05(月) 06:13:360414デフォルトの名無しさん
2006/06/05(月) 06:20:030415デフォルトの名無しさん
2006/06/05(月) 10:52:50http://www.c3.club.kyutech.ac.jp/~sukiyaki/index.php?%A5%C6%A5%AF%A5%B9%A5%C1%A5%E3
void DeEncry(char *pcIn,char *pcOut,int iSize){(略)}
void Init(){
(略)
g_pd3dTexture = CreateTextureInMemory(pBuffer,size);
(略)
}
LPDIRECT3DTEXTURE9 CreateTextureInMemory(void *pBuffer,int size){(略)}
これって、Initよりも前に、CreateTextureInMemory作っておかなきゃマズくないですか?
それとも、DirectXの仕様で、後に置いても大丈夫だったりするんですか?
0416デフォルトの名無しさん
2006/06/05(月) 11:16:18「作っておく」ってなんだよ。
関数の宣言のことなら、プロトタイプ宣言でググれ。
プロトタイプ宣言さえしてあれば、関数の定義の順番なんてどうでもいい。
DirectXは関係なく、C言語の話。
0417デフォルトの名無しさん
2006/06/05(月) 14:59:25容量に関係なく曲によってそういった現象がおこるものとそうでないものがあります
いったい何がおかしいのでしょうか 助けてくださいm(_ _)m
0418デフォルトの名無しさん
2006/06/05(月) 15:55:450419デフォルトの名無しさん
2006/06/05(月) 15:59:050420デフォルトの名無しさん
2006/06/05(月) 17:47:44DirectShow Filter Toolでロクに考えもせずにフィルタ登録を解除していったら、
DirectShow Filter Tool自体が機能しない上に、
メディアプレイヤーも全く機能しなくなってしまいました
起動はするのですが、メディアファイルを読み込む時点でエラーが起きます
・WMP→不明なエラー
・リアルプレイヤー→エラー報告すらなし
・GOMプレイヤー
→「ダイレクトシヨーを初期化できません。
このソフトウェアはダイレクトX 7.0以上が
インストールされていないと動作しません。」
と出ます。
DirectXは9.0Cがインストールしてあるので、
あとは認識させることが必要だと思うんですが…方法が分かりません。
どなたか分かる方、ご教授お願いします…。
0421デフォルトの名無しさん
2006/06/05(月) 17:59:450422デフォルトの名無しさん
2006/06/05(月) 21:20:550423420
2006/06/06(火) 00:40:43他を当たってみます…。
0424デフォルトの名無しさん
2006/06/06(火) 15:40:04うっひょーー
0425デフォルトの名無しさん
2006/06/07(水) 14:22:14DirectX9で3000*3000といった大きな画像を読み込んで等倍で表示する場合、
元画像は1024*1024サイズ毎に切り分けないとダメなのでしょうか?
できるだけ元の画像はいじらないでDirectX上から大きな画像を扱うにはどうすればよいのでしょう。
0426デフォルトの名無しさん
2006/06/07(水) 14:38:41そうはいっても4096x4096の32Bit画像を1つ持つだけでも
64MBのメモリが必要になるわけだが・・・
そんなでかい画像を使う必要あんのか?
256x256をタイル上にしてレンダリングしてもバイリニア+回転とか
やらない限りつなぎ目なんてそうそう見えないはずだが。
0427425
2006/06/07(水) 15:54:10>そんなでかい画像を使う必要あんのか?
まぁ、そうなんですけどチト仕事上で必要なので
元画像を複数枚に分けてってのはできるだけ避けたいのです。
0428デフォルトの名無しさん
2006/06/07(水) 15:58:000429デフォルトの名無しさん
2006/06/07(水) 16:15:060430425
2006/06/07(水) 16:32:03ようは会社間の力関係です。
上から頂戴した画像素材様をこちらの都合で切り分けたりすることはもってのほか。
自分はひ孫以下の階層に位置しますので、もちろん画像の仕様について口を出せません。
またプログラム作成後も画像がさし変わるので、切り分けの手間も入れたくないのです。
・・・という理由です。 orz
0431デフォルトの名無しさん
2006/06/07(水) 16:37:420432デフォルトの名無しさん
2006/06/07(水) 16:38:350433デフォルトの名無しさん
2006/06/07(水) 16:44:52>>432が正解。ファイルを一気に読む必要などない。分割して読み込めばいいだけ。
0434デフォルトの名無しさん
2006/06/07(水) 16:44:57読み込む時に内部でバラせばいーじゃないの?
int size_x = 256;
int size_y = 256;
for ( int y = 0; y < 3000; y += size_y )
{
for ( int x = 0; x < 3000; x += size_x )
{
pTex[y/size_y][x/size_x] = テクスチャ作成( size_x, size_y );
int Sx = 3000 - (x * size_x);
int Sy = 3000 - (y * size_y);
if ( Sx > size_x ) Sx = size_x;
if ( Sy > size_y ) Sy = size_y;
RECT Dst = { 0, 0, Sx, Sy };
RECT Src = { x, y, x+Sx, y+Sy };
D3DXLoadSurfaceFromFileInMemory( 色々, &Src, &Dst)
}
}
こんな感じでどーよ。
0435デフォルトの名無しさん
2006/06/07(水) 16:46:38>int Sy = 3000 - (y * size_y);
ココ間違ってた・・・
0436425
2006/06/07(水) 17:20:08なるほど、プログラム内部で2のn乗サイズに切り分ければいいんですね。
この方法でなんとかなりそうです。(^^;
どうみても初心者質問です。本当にありがとうございました。
0437デフォルトの名無しさん
2006/06/08(木) 19:19:583Dでパースをつけないように描画する方法があれば教えてください
DirectXのバージョンは8です
0438デフォルトの名無しさん
2006/06/08(木) 19:28:32DirectXだとかOpenGLだとかは関係ない。
透視変換時のマトリックスの違いだけだ。
0439デフォルトの名無しさん
2006/06/09(金) 01:06:57Zバッファの比較がぐちゃぐちゃになるのですが、
そういうものなんですか?
まあ、ツールのワイヤーフレーム画面ならそれでも問題なく動きそうではあるけど。
0440デフォルトの名無しさん
2006/06/09(金) 08:27:220441デフォルトの名無しさん
2006/06/09(金) 14:03:57使い方について質問です。
今まで頂点シェーダのみで描画していたモデルにピクセルシェーダを
適用してみようと思って以下のコードを書いてみたのですが…。
(頂点シェーダの内容は省きます)
// ピクセルシェーダ
float4 PS_HDRShader( VS_OUTPUT In,uniform int NumBones ) : COLOR0
{
float4 s = In.Diffuse;
float4 a = tex2D( MeshTextureSampler, In.Tex0 ) * s;
return a;
}
technique t0{
pass p0{
VertexShader = compile vs_1_1 VShade(1);
PixelShader = compile ps_2_0 PS_HDRShader(1);
}
}
このように記述すると、スキンメッシュモデルの形状等は正常に描画されてるのですが
テクスチャが真っ黒な状態で描画されてしまいます。
テクスチャの色を出す良い方法はないでしょうか?
(ピクセルシェーダの部分を削ればテクスチャ含め正常に描画するのですが…)
DirectX9.0 9.0c
WindowsXp
VisualC++ Express にて開発をしています。
0442デフォルトの名無しさん
2006/06/09(金) 14:18:31IDirect3DDevice9::SetTexture()じゃシェーダーにはテクスチャ送られないぞ?
0443デフォルトの名無しさん
2006/06/09(金) 15:14:11DirectX9で円や矩形といった基本的な図形を描画するにはどうすればよいのでしょうか?
ID3DXLineというのは見つけたのですが、四角や円を描く方法が分かりません。
多分ものすごく初心者質問だと思うんですが、ヘルプやGoogleで調べても分かりませんでした。
ご存知の方いらしたら、よろしくお願いします。
0444デフォルトの名無しさん
2006/06/09(金) 15:19:16三角関数を使って座標を計算しながら1周つなげれば円になります。
0445デフォルトの名無しさん
2006/06/09(金) 15:23:29「そんなのねぇよ!板ポリで描けや。」
ということでしょうか・・・(´;ω;`)
0446デフォルトの名無しさん
2006/06/09(金) 15:33:59と思っておけばよい。
0447デフォルトの名無しさん
2006/06/09(金) 15:34:46事前に円や矩形のテクスチャ用意してそれを表示するだけで済む場合もあるし・・・
でも DrawPrimitive の類を使って自前で描くのが全ての基本。
GetDC 使えばデバイスコンテクストもゲットできるから GDI の描画関数も使えるけど、
それだと DirectX 使う意味があまりないかもね。
0448デフォルトの名無しさん
2006/06/10(土) 17:45:310449デフォルトの名無しさん
2006/06/10(土) 18:19:06http://pc8.2ch.net/test/read.cgi/tech/1103998649/
ここでお願いします
0450デフォルトの名無しさん
2006/06/10(土) 18:25:50URLまで貼ってくれて・・・丁寧な案内さんくすです。
0451デフォルトの名無しさん
2006/06/11(日) 05:57:02徹夜で検索したけどどこにもないよ・・・
0452デフォルトの名無しさん
2006/06/12(月) 13:10:420453デフォルトの名無しさん
2006/06/14(水) 11:14:25D3DXCreateTextureFromFileExを使って読み込んだテクスチャを、四角ポリゴンに貼り付けて使おうとしています。
いわゆる2Dゲーム用の描画を作っているところです。
テクスチャを2の乗数とし、かつ四角ポリゴンの表示場所を-0.5fし、フィルタをD3DX_FILTER_POINTEにすることで、ドット絵も綺麗に(アンチがかからずそのままという意味)表示することができました。
で、次のステップとして「640*480のような画像であっても、1サイズ上(1024*512)の領域を確保して、そこにロードすることによって対応したい。使わない領域ができて無駄だけど…」と思いました。
D3DXCreateTextureFromFileExの第二、第三引数に、テクスチャサイズを指定するところがあるので、早速1024, 512と入力してみたのですが、変化がありません。
(四角ポリゴンの設定は変えていないので、予想では「左上にファイル画像が。右と下に余白がある画像」が描画されるつもりでした)
大きめのテクスチャに、ファイルから読み込んだ画像を配置する方法は、D3DXCreateTexureFron〜ではなく、別にあるのでしょうか?
(逆に256,256などを指定することで、画面が粗くなることは確認しました)
0454デフォルトの名無しさん
2006/06/14(水) 11:39:28DirectXのヘルプでD3DXCreateTextureFromFileExを見たところ
Width
[in] Width in pixels. If this value is zero or D3DX_DEFAULT, the dimensions are taken from the file and rounded up to a power of two. If the device supports non-power of 2 textures and D3DX_DEFAULT_NONPOW2 is specified, the size will not be rounded.
とありました。つまり2の乗数じゃなくても、2の乗数に自動的に大きくして領域を確保するよ。
とあるのですが、はて、うまくいっていません。
そこで56*64という中途半端な画像を用意して、同じく64*64のサイズを指定しつつ読んでみました。
画像が微妙に乱れます。
ですが128*128を指定すると綺麗にうつりました。
それならと、640*480の画像を1024*512のさらに二倍。2048*1024で確保してみました。
綺麗にうつりました。
つまり、2段階大きいサイズを指定すると綺麗にうつるようです。
なんて物凄い無駄…。
一応解決したにはしたのですが、せめて1段階大きいサイズですませる(60*17→64*32)方法はないものでしょうか?
0455デフォルトの名無しさん
2006/06/14(水) 11:47:12D3DX_FILTER_NONE
0456デフォルトの名無しさん
2006/06/14(水) 11:56:28ありがとうございます。
解決することができました。
FILTER_POINTについて誤解していたようですね。再度調べてみます。
0457デフォルトの名無しさん
2006/06/14(水) 14:59:49DirectX7 において、CreateSurfaceを使ってビデオメモリにオフスクリーンサーフェスを作成するとき、
1024x1408(16ビット、32ビット共)からメモリ不足が返ってきて作成できなくなります。
1024x1407までは作成できます。
システムメモリには問題なく作成できます。
ビデオメモリの残りが30Mと十分に余っているのになぜ作成できないのでしょうか?
同じような症状で困った方や、解決した方がおられましたら、教えていただければ助かります。
0458デフォルトの名無しさん
2006/06/14(水) 15:23:59素直に縦長のサーフェイスは分割しましょう。
0459デフォルトの名無しさん
2006/06/14(水) 18:02:09事故解決しましたので僕と同じ症状が出ている方はためしてくださいな
DirectAudio初期化の際のCoInitialize(NULL);を呼びますが、私はこれを
ウィンドウの設計図
こんなやつ
WNDCLASSwndclass;
memset( &wndclass, 0, sizeof( WNDCLASS ) );
// ウィンドウの設計図
wndclass.hInstance= hInstance;
以下続く
の前呼んでいたから音飛びなどが出ていたようです。
なぜだろう・・バグが直る要因がわからないのってすっきりしませんね
バグ直ったからとりあえず良しとしますが、今後調査します
0460デフォルトの名無しさん
2006/06/14(水) 21:58:59それにハードウェアblitって今でもやるメリットあるんですか?
普通の2Dゲームなら、ソフトウェアでも滅多に処理落ちしないんじゃないですか?
0461デフォルトの名無しさん
2006/06/14(水) 22:02:10半年ロムってろ
0462デフォルトの名無しさん
2006/06/14(水) 23:33:32全く見当違いのこと聞いてたらごめんなさいorz
0463デフォルトの名無しさん
2006/06/14(水) 23:46:00マジレスするとそんなことも調べられないようじゃ2Dなんかに手をださないほうがいい。
はっきりいって2Dゲームってのは鬼門だ。
鬼門であることを理解するのもまたそれなりの期間がいる。
0464デフォルトの名無しさん
2006/06/15(木) 01:10:07んなこたーねえだろw
>>462みたいなことを聞いてくるやつには、
3Dのリソースを簡単に作れねえ以上、2Dゲームの方がまだ作りやすい。
>>462
今時2Dでも、DirectDrawは使うやついないとして、、
Direct3D+DirectInput+DirectMusic(DirectSound)じゃね?
0465デフォルトの名無しさん
2006/06/15(木) 01:18:17メタセコでも使えば一発で作れるじゃん>XFile
別にアニメーション(3D的な)しなくてもいいっしょ?
2Dだから単純なポリ板作ってテクスチャ貼り付けるだけだし。
0466デフォルトの名無しさん
2006/06/15(木) 02:48:29D3DPRESENT_PARAMETERS の Windowed に false を与えて
デバイスをリセット、全画面化の後、Alt+TAB キーなどで他のアプリに
フォーカスを移動させてからの復元を考えています。
この時点では最小化状態になっているので、ウインドウのプロシージャから
WM_SYSCOMMAND の SC_RESTORE をフックして、その内部で
もう一度デバイスをリセットすることで復元できるかと考えたのですが、
まだウインドウが復元しきっていないからなのか、リセットに失敗してしまいます。
こういう場合、どのタイミングでリセットするべきなのでしょうか?
ウインドウが復元されてから(といっても表示は失われてしまっている状態ですが)
改めてリセットを行えば全画面状態が復元されるため、D3DPRESENT_PARAMETERS の
パラメータ指定違いなどは多分無いと思います。
ShowWindow() の呼び出しも試したのですが、SC_RESTORE の中からでは意味が無い様でした。
どなたかアドバイスいただけませんか?
0467466
2006/06/15(木) 03:32:58描画ループのIDirect3DDevice9::Present() に失敗したら、
IDirect3DDevice9::TestCooperativeLevel() を呼び出して
返り値に D3DERR_DEVICENOTRESET が戻ってきた時点で
改めてリセットをかけることで、問題なく復元はできました。
とはいえ、これが本当に正しい復元方法なのかは判断つきかねるところです。
引き続き、どなたか詳しい方のアドバイスをいただけたらと思います。
0468デフォルトの名無しさん
2006/06/15(木) 04:28:55全部含まれているよ。
それを解析すればおk
0469466
2006/06/15(木) 06:21:46DXUTの長大さに恐れをなして、読むのを諦めてました…
デバッガで追ってみたら、やってることはほとんど変わらない
(Present() の結果で判断するのではなく、レンダリング前に
TestCooperativeLevel()を呼び出してチェックしているくらい)
みたいなので、この辺についてはこのまま行こうと思います。
ありがとうございましたorz
マルチディスプレイの時はウインドウを表示しているディスプレイに合わせて
デバイスのアダプタを切り替えてたり、本当にここまでしないといけないのかってくらい
色々やってますね、DXUT。
そのまま流用してもいいんだろうけど、隠蔽されすぎで何がなにやらなので
もうしばらくは蹴ッ躓きながら読み進めていこうと思います。
重ね重ねありがとうございましたorz
0470デフォルトの名無しさん
2006/06/15(木) 12:00:54その文字列がどれくらいの幅、かつ高さなのか取得する方法はありませんでしょうか?
Microsoft DirectX 9.0 SDK (Summer 2004)をつかっております
0471デフォルトの名無しさん
2006/06/15(木) 16:00:00どうでもいいことだけど
ここでのorzって挫折じゃなくてお辞儀の意味か?
礼というより土下座で謝ってるように見えるが。
0472デフォルトの名無しさん
2006/06/15(木) 17:26:440473デフォルトの名無しさん
2006/06/15(木) 19:27:100474デフォルトの名無しさん
2006/06/15(木) 20:44:27三跪九叩頭の礼
0475デフォルトの名無しさん
2006/06/15(木) 20:53:23馴れ合いが好きで、鬱スレのウナギとかつまらないことに興じ、
同じ嗜好を持たない者がめについたら、罵倒でたたみ掛け
村八分にして喜ぶ。
0476デフォルトの名無しさん
2006/06/15(木) 21:07:33馴れ合いが好きで、鬱スレのウナギとかつまらないことに興じ、
同じ嗜好を持たない者がめについたら、罵倒でたたみ掛け
村八分にして喜ぶ。
0477デフォルトの名無しさん
2006/06/15(木) 21:58:330478デフォルトの名無しさん
2006/06/15(木) 22:01:490479デフォルトの名無しさん
2006/06/15(木) 23:29:03vside[0].p = D3DXVECTOR3( 0f, 0f, 1f );
vside[1].p = D3DXVECTOR3( 0f, 0f, 0f );
vside[2].p = D3DXVECTOR3( 1f, 0f, 0f );
vside[3].p = D3DXVECTOR3( 1f, 1f, 0f );
vside[4].p = D3DXVECTOR3( 0f, 1f, 0f );
vside[5].p = D3DXVECTOR3( 0f, 0f, 0f );
// D3DPT_TRIANGLESTRIP
vbottom[0].p = D3DXVECTOR3( 0f, 0f, 0f );
vbottom[0].p = D3DXVECTOR3( 0f, 1f, 0f );
vbottom[0].p = D3DXVECTOR3( 1f, 1f, 0f );
vbottom[0].p = D3DXVECTOR3( 1f, 0f, 0f );
ゴメンたい。>>472
0480デフォルトの名無しさん
2006/06/16(金) 02:13:27SDKが使えないようなことをどっかで見たようなきがするんですけど
最新のやつでも問題ないですか?MSのページ見たけどよくわからん
0481デフォルトの名無しさん
2006/06/16(金) 02:17:050482デフォルトの名無しさん
2006/06/16(金) 02:20:540484デフォルトの名無しさん
2006/06/16(金) 03:20:461. 読まない ・・・説明書などを読まない。読む気などさらさらない。
2. 調べない ・・・過去スレ、ググるなど最低限の内容も自分で調べようとしない。
3. 試さない ・・・めんどくさいなどの理由で実行しない。する気もない。
4. 理解力が足りない ・・・理解力以前の問題で理解しようとしない。
5. 人を利用することしか頭にない ・・・甘え根性でその場を乗り切ろうとする
0485デフォルトの名無しさん
2006/06/16(金) 08:13:05480は態度で損しているが
0486デフォルトの名無しさん
2006/06/16(金) 08:18:210487デフォルトの名無しさん
2006/06/16(金) 09:39:200488デフォルトの名無しさん
2006/06/16(金) 18:52:24しかも初心者質問スレだし。
0489デフォルトの名無しさん
2006/06/17(土) 00:09:220490デフォルトの名無しさん
2006/06/17(土) 02:32:290491デフォルトの名無しさん
2006/06/17(土) 02:39:54慰めてくれ。
0492デフォルトの名無しさん
2006/06/17(土) 03:05:09童貞暦27年です
0493デフォルトの名無しさん
2006/06/18(日) 14:53:58Direct3D を用いて 2D の描画を行っています。
あるテクスチャの貼られた 2D ポリゴンがフェードアウトする
(α値が 255->0 に変化する)様子を描きたいのですが、いい方法が思いつきません。
1.CreateVertexBuffer 時に得られた頂点バッファのインターフェイスをロックし、ディフューズ色を書き換える
→ロックに時間がかかってしまう
2.SetTextureStageState でα値の計算方法を、テクスチャの値×自分で計算した透明度に設定
→「特定の値との乗算」という方法が見つからない
3.ライト/マテリアル/法線を FVF に追加し、ライティング処理を利用する
→透明になるわけではないので、後ろが透けるわけではない
このような処理は、何を使って行うものなのでしょうか?
よろしくお願いします。
0494デフォルトの名無しさん
2006/06/18(日) 14:59:570495493
2006/06/18(日) 15:03:102D ポリゴンと言うのは、FVF にD3DFVF_XYZRHW を指定しているということです。
そもそもライトは効きませんね・・・。
>>494
2D ポリゴンでは上手く行かないのでしょうか?
0496デフォルトの名無しさん
2006/06/18(日) 16:42:580497デフォルトの名無しさん
2006/06/18(日) 16:46:44全部用意して切り替えるでFA
0498デフォルトの名無しさん
2006/06/18(日) 18:18:19> →ロックに時間がかかってしまう
どのくらい時間がかかったのか、測定条件と結果を言ってみ。
0499デフォルトの名無しさん
2006/06/18(日) 18:25:14α値やなんかは頂点シェーダで渡せばいいんじゃん。
頂点シェーダってのは別にハードでサポートしてなくても勝手に動かしてくれんだよ。
その辺は心配すんな。
ロックしてなにやらする必要も無いぞ。
俺は矩形の描画でも頂点バッファなんかいちいち弄らずにシェーダにマトリクス情報渡してサイズも確定させちゃうけどね。
0500デフォルトの名無しさん
2006/06/18(日) 21:08:36>1.CreateVertexBuffer 時に得られた頂点バッファのインターフェイスをロックし、ディフューズ色を書き換える
> →ロックに時間がかかってしまう
Lockに大して時間なんてかからない。
そんなにLockが嫌ならDrawPrimitiveUPを使う。
>2.SetTextureStageState でα値の計算方法を、テクスチャの値×自分で計算した透明度に設定
> →「特定の値との乗算」という方法が見つからない
D3DRS_TEXTUREFACTOR
>3.ライト/マテリアル/法線を FVF に追加し、ライティング処理を利用する
> →透明になるわけではないので、後ろが透けるわけではない
???
透明になるけど?
0501デフォルトの名無しさん
2006/06/18(日) 21:35:48テクスチャの透明度と頂点に設定したαを使うなら
マルチテクスチャ(?)を使って、>>500が言ってる奴と頂点のどの値からとってくるのか指定しないと駄目じゃなかったっけ?
例えばマルチテクスチャ2のときって
1枚目の色をどっからとってくるか?
2枚目の色をどっからとってくるか?
1枚目と2枚目の計算をどうしたいのか?
って必要じゃなかったっけ?
この場合だと、
1枚目の色:テクスチャの色
2枚目の色:マテリアルの色
1枚目と2枚目の計算:テクスチャのαで計算した後の色をさらにマテリアルのαで計算する。
みたいな感じじゃなかったっけ?
超うろ覚え。間違ってたら腹切って責任とるわw
0502デフォルトの名無しさん
2006/06/18(日) 21:36:430503デフォルトの名無しさん
2006/06/18(日) 22:12:11X:1枚目と2枚目の計算:テクスチャのαで計算した後の色をさらにマテリアルのαで計算する。
○:1枚目と2枚目の計算:テクスチャのαと頂点のαで計算する。
0504デフォルトの名無しさん
2006/06/18(日) 22:36:21そんなもの、常に設定するのが当然だけど。
○○のときは指定するとかいうものではなく、常に明確に指定するもの。
デフォ設定を利用するなんて、描画オブジェクトが1つしかないようなデモくらい。
0505493
2006/06/19(月) 00:18:04お教えいただいた D3DRS_TEXTUREFACTOR を用いて、透明度の設定ができました。
SetRenderState(D3DRS_TEXTUREFACTOR, 0x80******);
SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_BLENDFACTORALPHA);
SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
として、DIFFUSE 色を 0 にすることで、透明度 0x80 を実現できました。
ロックが遅いのは、テクスチャをロックし、ビットデータを直接書き込むという処理を昔やってみたところ、
目視で確認できるほど遅かったため、ロック=遅いという風に思い込んでしまっていました。
ロックして書き込む方法、DrawPrimitiveUP を使う方法、色々試してみて最適なのを探してみます。
ありがとうございました。
0506デフォルトの名無しさん
2006/06/19(月) 00:36:360508デフォルトの名無しさん
2006/06/19(月) 10:08:14いわゆるロックの遅さって、処理そのものの重さの問題じゃなくって、
描画に使用される段になってロックがかかっていると、そこでロックが開放されるまで
処理がストールしちまうことにあるわけであって、回避したければダブルないしは
トリプルバッファリングすればいいってことになるんだろうけど、そういう認識であってる?
ドライバ側の実装次第なんでなんともいえない?
ビデオ側への散発的なメモリ転送がやたらコスト食う遅いことも考えられるか。
0509デフォルトの名無しさん
2006/06/19(月) 18:02:54それによって得られる利点(効果)は何なのですか?
0510デフォルトの名無しさん
2006/06/19(月) 18:17:18内積も外積も水や空気みたいに大事なものなんで、利点は何と聞かれると困るけど。
ぶっちゃけ無いと死ぬ。
世界が成り立たない、
0511デフォルトの名無しさん
2006/06/19(月) 18:44:18数学的知識盛り沢山ですね^^;
>>510
どうもありがとうございました!
0512デフォルトの名無しさん
2006/06/19(月) 20:12:573Dの世界?2Dで必要ないとか思ってるの?
とりあえず、平面上で自分の進行方向からみて
敵が右にいるか左にいるか?って外積使って出してみ?
それができたら、平面上に玉と直線の当り判定用意して、
玉が直線に当たって跳ね返る方向を内積使って出してみ?
0513デフォルトの名無しさん
2006/06/19(月) 20:56:56おぁ・・・それが出来れば確実にステップアップとなりそうです。使いどころが前よりかは
見えてきました。重ねて御礼申し上げます。
0514デフォルトの名無しさん
2006/06/19(月) 22:59:44ピクチャーコントロールのサイズが変わってもビューポートの値変わってないようです.
ハンドルから?再取得するような関数ってありますか?
0515デフォルトの名無しさん
2006/06/19(月) 23:28:210517デフォルトの名無しさん
2006/06/20(火) 21:09:01効率的に描画するアルゴリズムで有名なものある?
0518デフォルトの名無しさん
2006/06/20(火) 22:08:57意味わからん。
効率的ってどう効率的なのがいいの?
つーか、効率も糞もやっぱ、始めはクリッピングじゃねぇの?
0519デフォルトの名無しさん
2006/06/20(火) 22:18:51幹から順にビューフラスタムでカリングしていけばいいだけの気がする。
いきなりOBBで判定する前にスフィアで絞り込めばちょっと早くなるかの。
0520デフォルトの名無しさん
2006/06/20(火) 23:48:41ツリーになってるといっても幹がクリッピングされたとしても
枝の方がクリッピングされるかどうかはわからないから
結局、すべてのオブジェクトをカメラ座標までもってこないとわからないんじゃね?
効率的もなにもないような・・・
0521デフォルトの名無しさん
2006/06/20(火) 23:54:350522デフォルトの名無しさん
2006/06/21(水) 00:18:22すまん。
実は8分木で表現される物体ってのがよくわからん状態でレスしたw
つまりただの8分木の描画について聞きたかっただけなんだな・・・orz
物体っちゅーからなんか別のモンだと思った。
0523デフォルトの名無しさん
2006/06/21(水) 00:48:41>>512
ついでに教えてくれ
hsin や hcos って何に使う3D、2Dだと何に使う?
0524デフォルトの名無しさん
2006/06/21(水) 01:24:48アークサインとかアークタンジェントは使ったことあるけど
双曲線サインなんて使ったことないな。(俺は)
まあ、サインとかコサインとかタンジェントとか内積とか外積とかよりは
ポピュラーには出てこないんじゃね?
とりあえず、数学は高校数学+αぐらい押さえときゃいいんじゃね?
物理も高校物理+αぐらいで十分っぽいし。
あとは気合でなんとかなる。
意外とよく使うのが直線の方程式だ。(y=ax + bの方じゃなくてなんか凝ってる方w)
0525デフォルトの名無しさん
2006/06/21(水) 02:53:32次世代機になると流石にテーブルのメモリアクセスより
関数呼び出した方が遥かに早そうだがなー。
まぁライブラリのシステム部分とかシェーダー周りを触らない限り
三角関数も基本的な内容で事足りるんだよな。
普通にゲームを作る上ではソレらしく見えればいいからやりようはいくらでもある。
>>524
3Dやるなら直線と平面の方程式はおさえておかないと厳しいよなw
0526デフォルトの名無しさん
2006/06/21(水) 04:18:41整数系か固定少数系で弾幕シューティングでも作ってるなら、まあ使うのかも知れないけど、
現行のコンシューマー機でも、自前でテーブル持つメリットってほとんど無くね?
ライブラリ側の実装自体、テーブル+補間程度だったりするしなあ。
0527デフォルトの名無しさん
2006/06/21(水) 06:21:30サンクス
とりあえず>>519について調べてみる。
効率的ってのは見えない面を描画しないアルゴリズムとかです。
8分木でやると視点が変わっても絶対に見えない面だとがが出てくるんで。
0528デフォルトの名無しさん
2006/06/21(水) 07:34:56ほとんどベクトルだけで用が足りる。
0529デフォルトの名無しさん
2006/06/21(水) 08:52:030530デフォルトの名無しさん
2006/06/21(水) 08:55:28回転量とかも大抵Quaternionで保持して終了だし。
明滅とかのためのちょっとしたカーブの取り出しに sin や cos 使うことは多いんだけど、
俺も大して使わないかも。
>8分木でやると視点が変わっても絶対に見えない面だとがが出てくるんで。
これなんかおかしくね??
8分木の構造自体が間違ってるか、使い方を間違えてない限り、そういうことは起きないと思うんだけど。
0531デフォルトの名無しさん
2006/06/21(水) 09:08:52そもそも角度という単位を、ユーザへの情報表示以外であまり使ってない。
0532デフォルトの名無しさん
2006/06/21(水) 11:14:43それって屋内マップの場合じゃないか?
屋内マップなら8分木じゃなくBSPツリーの方が一般的のような気も。
4/8分木構造は基本的に屋外マップのような広大なフィールド向けの構造だと思うけど。
>>526
コンシューマーの中でも特にダメな黒箱はテーブルの方がいいと思われ。
とはいってもメモリ結構使うし、メモリのアクセス速度考えるとVU0で書いた方がいいかもな。
0533527
2006/06/21(水) 13:32:52http://www.co0.net/upload/src/0006521309.png
こういうところは外側から見えないんで
これを判別するにはどうしたらいいかなぁと思いまして。
0534デフォルトの名無しさん
2006/06/21(水) 19:27:38テーブルをつかった小細工が使えるときがある。>テーブル
0535デフォルトの名無しさん
2006/06/21(水) 20:55:15いい方法はありませんか?
円柱は底面の中心の座標と軸方向ベクトルが与えられ、
立方体は原点から(w,w,w)の大きさです。
0536デフォルトの名無しさん
2006/06/21(水) 22:40:08そりゃ、まあ、そうだろうけどさあ。
だから何よって感じだぞ、流石に。
0537デフォルトの名無しさん
2006/06/22(木) 22:12:53要するにCreateRenderTarget又はCreateTextureでD3DUSAGE_RENDERTARGETを
指定して作るレンダーターゲットの上限数は、D3DCAPS9.NumSimultaneousRTsの
値の数という事なのでしょうか?
つまりこの値が1ならレンダーターゲットは1つしか作れないという事でしょうか?
0538デフォルトの名無しさん
2006/06/22(木) 22:57:06レンダーターゲット対象自体はメモリが許す限りいくらでも作れるよ。
0539デフォルトの名無しさん
2006/06/22(木) 23:32:01あー、やっと理解できますた。
ありがとうございます。
0540デフォルトの名無しさん
2006/06/23(金) 13:02:560541デフォルトの名無しさん
2006/06/23(金) 23:01:13ネット上のサンプルコードを実行したいためDirectX8.1も入れてみたいのですが、
共存ってできるのでしょうか?
0542デフォルトの名無しさん
2006/06/23(金) 23:38:389を入れると8も動くようになる仕様でな・・・
っていっても9以降はちょっと大変なことになってるが・・・
8なら9いれてありゃ動くよ。
0543デフォルトの名無しさん
2006/06/23(金) 23:52:59そうなんですか。でも、サンプルコードにある
#include <D3DX8.h>
とか、D3DX8.hとかが見つからない、となるのですが・・・。8関連のヘッダは
DirectX9.0cには含まれて居ないんでしょうか?
0544デフォルトの名無しさん
2006/06/24(土) 00:25:28うっそまじで?
そうだっけ?
そんな感じだったっけ?
バージョン定数設定するだけだと思ったけど・・・
最新のヘッダで8が動くだけだったっけか?・・・
0545デフォルトの名無しさん
2006/06/24(土) 01:28:54DirectX7から10までのヘッダは含まれてるし、インターフェイスも取得できるみたい。
0546デフォルトの名無しさん
2006/06/24(土) 01:37:26おっしゃるとおりD3D8.hは入ってました。しかし、D3D8X.hがないというのは一体・・・?
D3D9X.hの方を使え、ということでしょうか?
0547デフォルトの名無しさん
2006/06/24(土) 01:40:10インクルード自体はD3D9X.hを指定して、バージョン定数を定義してやればいいんじゃね?
0548デフォルトの名無しさん
2006/06/24(土) 02:55:36#include <D3D9X.h>
するまえに
#define DIRECT3D_VERSION 0x0800
としろ、という事でしょうか?
0549デフォルトの名無しさん
2006/06/24(土) 08:38:37そんな感じでよかったと思うんだけど、駄目だった?
0550デフォルトの名無しさん
2006/06/24(土) 13:24:55D3DXMatrixPerspectiveFovRH って描画空間を x=[-1,1] y=[-1,1] z=[0,1]に変換するってことでいいんですよね?
実際やってみたところ値がこの範囲に収まらなくて…
0551デフォルトの名無しさん
2006/06/24(土) 13:54:48そんなこといわれたって・・・
0552デフォルトの名無しさん
2006/06/24(土) 14:33:33エスパーでもないとパラメータなしじゃ答えられん。
0553デフォルトの名無しさん
2006/06/24(土) 14:36:45それを答えるかわりに、簡単な計算を教えてください。
10+x=y
xは不明です。yの答えを一つの整数でお願いします。
0554550
2006/06/24(土) 14:58:26改めて読んだらほんとに意味不明な質問でした。
D3DXMatrixPerspectiveFovRHで作られる射影変換行列による座標変換によって描画される範囲(視錘台)は先ほどの直方体に変換されるのでしょうか?
やはり具体的なパラメータなしではわからないですね。大変失礼いたしました。スルーでお願いします。
0555デフォルトの名無しさん
2006/06/24(土) 21:12:28メッセージが出てきて実行できません 一度、DLLサイトで落としたd3drefをx86のフォルダに入れたのですが
結果は同じでした。格納場所が違うのでしょうか
0556デフォルトの名無しさん
2006/06/24(土) 22:14:09とかに入れればいいとは思うけど、その前にDirectXSDKをインスコしないで
SDK内のExeを実行しようとしているのか聞いてみたい。
素直にSDK入れた方が早くね?
0557555
2006/06/25(日) 04:27:18再インストールは3回くらいやったのですが・・・・なんだったんだろう
0558デフォルトの名無しさん
2006/06/25(日) 05:28:160559デフォルトの名無しさん
2006/06/25(日) 09:56:530560デフォルトの名無しさん
2006/06/25(日) 09:57:55向こうでも思ったが礼くらい書けw
0561デフォルトの名無しさん
2006/06/25(日) 13:09:54DirectInputとjoyGetPosExではどちらが使い勝手いいのでしょうか?
また、これらは、OpenGLと組み合わすことできますか?
0562デフォルトの名無しさん
2006/06/25(日) 13:44:490563デフォルトの名無しさん
2006/06/25(日) 14:13:32DirectInputの方が多少面倒だが、潰しは利くだろ。
やっつけ仕事用にはjoyGetPosExで十分だが。
OpenGLとは完全に別レイヤなんでいくらでも同棲可能。
DirectSoundでもDirectPlayでも同棲可能。
好きなだけハーレムをこさえるがよい。
0564555
2006/06/25(日) 18:48:25しかしながら、DXtexも無事起動できたし気になるところは全てクリアできました
改めてお礼を言わせて頂きます 本当にありがとうございました
0566デフォルトの名無しさん
2006/06/26(月) 05:31:37Service Pack 2 (2600.xpsp_sp2_gdr.050301-1519)
DirectX Version: DirectX 9.0c (4.09.0000.0904)
Description: SoundMAX Digital Audio
Default Sound Capture: Yes
Default Voice Capture: Yes
Driver Name: smwdm.sys
Driver Version: 5.12.0001.3665 (English)
Driver Attributes: Final Retail
ゲームやウィンドウズ起動音などの音がでなくて困ってます。mp3やCD−Rなどの音はでます。
診断ツールではサウンドでエラー0x00000000 (エラー コード)がでます。ミュージックは正常なのですが・・・
ドライバの入れ替え、ミュート、BIOSなど調べてわかったことは全部したのですがなおりません。
どなたか力をかしてください。お願いします。
0567デフォルトの名無しさん
2006/06/26(月) 06:34:13プログラムを使う側の質問スレじゃない。
君にとっては二度手間かもしれないが、Windows板でもう一度聞きなおしてきなさい。
http://pc8.2ch.net/win/
『WindowsXP質問スレ』てのがあるはずだから、そこがいいだろう。
0568デフォルトの名無しさん
2006/06/26(月) 12:40:25そこにいって聞いてみたいと思います。
ありがとうございました。
0569デフォルトの名無しさん
2006/06/26(月) 18:50:12ピクチャーコントロールのサイズを変更しても,DirectXの描画のアスペクトなり座標系なりを適応したいときって
pic = (CStatic*)GetDlgItem(IDC_MAINPIC);
pic->MoveWindow(x, y, wide, height);
pD3DDevice->GetViewport(&ViewPort);
ViewPort.Height = height;
ViewPort.Width = wide;
pD3DDevice->SetViewport( &ViewPort );
こうすれば良いと思ってたんだけど,うまくいかない
どうやれば良いのでしょうか?
0570デフォルトの名無しさん
2006/06/27(火) 00:30:100571569
2006/06/27(火) 19:53:32遅レスすみません.
カメラって座標と注視点,画角以外要素があるのでしょうか?
アスペクト比などは後でビューポートから算出しています.
ちなみに,ピクチャーコントロールと一致しない領域で描画されている状態です...
0572デフォルトの名無しさん
2006/06/28(水) 21:28:320573デフォルトの名無しさん
2006/07/01(土) 04:19:09Windows2000+VC6
ではどうやっても使えないのですか?
あと
Windows2000+VC2005
ではどうでしょうか?
0574デフォルトの名無しさん
2006/07/01(土) 04:53:51全画面でBMP画像を数枚表示してパラパラアニメにしたいのですが、
似たようなサンプルコードは無いでしょうか?
0575デフォルトの名無しさん
2006/07/01(土) 06:24:47使えないなんてことないでしょ。
>>574
今、どんな状況なの?
もう、ゲーム1本作れるレベル?
ヘルプのチュートリアルは終わらした?
0576573
2006/07/01(土) 11:27:21やっぱだめみたいですね
最新版のSDKwin2000に入れようとしたら
not supportと蹴られました
はぁぁ、Vista出るの待つかなぁ
0577デフォルトの名無しさん
2006/07/01(土) 11:39:04素直にSDK(Octorber 2004)を使うべし。
0578574
2006/07/01(土) 19:16:26DirectXに精通しようとは思ってません。目的の機能の実装が達成できればよいと
思っています。すみません。
0579デフォルトの名無しさん
2006/07/01(土) 19:57:05BitBltで十分でしょ。
0580デフォルトの名無しさん
2006/07/01(土) 20:12:260581デフォルトの名無しさん
2006/07/01(土) 20:12:47Flashで十分でしょ。
0582デフォルトの名無しさん
2006/07/01(土) 20:15:45Gifで十分でしょ。
0583デフォルトの名無しさん
2006/07/01(土) 20:17:410584デフォルトの名無しさん
2006/07/01(土) 20:17:49ノートで十分でしょ。
0585デフォルトの名無しさん
2006/07/01(土) 20:21:18ニートで十分
0586デフォルトの名無しさん
2006/07/01(土) 21:58:0630fpsとは言わなくても、秒数コマ程度のパラパラアニメができますか?
これで低い負荷で実用に耐えるなら何も問題ありません。
BitBltよりかはDirectXのほうがいいかな、と思ったので…。
0587デフォルトの名無しさん
2006/07/01(土) 22:07:41下手なコード書くと負荷激増パフォーマンス激落ちる
0588デフォルトの名無しさん
2006/07/01(土) 22:17:050589デフォルトの名無しさん
2006/07/01(土) 22:17:570590デフォルトの名無しさん
2006/07/01(土) 22:33:15クリッピングを切って転送の負荷を軽量化、もしくはオーバーレイを使用した場合だけ。
Win32APIの方でもビデオカードのアクセラレーションは普通に使われるし、
メインメモリー上の動的なデータを転送するだけならどちらでも差はない。
3Dの場合と違って2Dのベタデータは、ほとんどメインメモリからVRAMまでの転送速度に依存する。
0591デフォルトの名無しさん
2006/07/01(土) 22:38:170592デフォルトの名無しさん
2006/07/01(土) 23:04:51dxdiagで診断しましたが、問題は見つかりませんでした
一体、何が原因なんでしょうか…?
ちなみに9.0cです
0593デフォルトの名無しさん
2006/07/01(土) 23:19:420594デフォルトの名無しさん
2006/07/01(土) 23:29:070595デフォルトの名無しさん
2006/07/01(土) 23:31:01ol
0596デフォルトの名無しさん
2006/07/01(土) 23:34:150597デフォルトの名無しさん
2006/07/02(日) 05:56:450598デフォルトの名無しさん
2006/07/02(日) 06:53:18あー、そういう意味じゃなくてどんなフレームワーク使ってるのかを知りたかった。
DirectXみたいなのを使って全画面書き換えを使ってるのとWin32APIのDCを使ってるのとではパラパラアニメのやり方が違う。
(いや、Win32APIでもエロゲとかはそうやってるなぁ・・・そういやw)
前者と後者の違いはそれ用の画面を用意してもうほんとアニメアニメした画面をこさえてしまうのか?
それともGIFアニメみたいなのを想像してるか?の違いなんだけど・・・。
まあ、認識レベルで聞きたいのが
ただ、絵を動かしたいからゲームスレに聞きにきたのか?
それともホントにゲームのシステム上でのパラパラアニメが作りたいのか?
って話。
ゲームってゲーム用の画面作って、ゲームにしてるのよ。
でも、ウィンドウズ上でアイコンっぽいのがちょろちょろ動くっていうのだと
用意する土台が違うっていうかなんていうか・・・。システムが違うっていうかなんていうか・・・。
いや、同じっちゃそうなんだけど、そこまでする必要ないっつーかなんつーか。
まあ、用は別物なんですよ。やり方も得られる結果も。
0599デフォルトの名無しさん
2006/07/02(日) 07:50:28{
private:
DWORD dwNext,dwPeriod;
int ThisSprite, MaxSprite;
public:
void Start(DWORD period, int maxSprite) {
dwNext = dwPeriod = period;
ThisSprite = 0;
MaxSprite = maxSprite
}
void Draw(int x,int y) {
DrawSprite( Sprites[ThisSprite], x, y );
// DrawSprite( Sprite, x, y, sprite_x + SPRITE_X_*ThisSprite, 0 );
}
void Do() {
dwNext--;
if(dwNext <= 0 ) dwNext = dwPeriod;
ThisSprite++;
if( ThisSprite == MaxSprite ) ThisSprite = 0;
}
};
0600デフォルトの名無しさん
2006/07/02(日) 10:51:30一応詳しく説明しておくけど、CreateCompatibleBitmapに
ディスプレイデバイスコンテキストを渡して作ったビットマップは
VRAM上に確保される場合が多く(ドライバによる)、そのときの
BitBltの転送速度はDirectDrawのBltとほとんど変わらない。
ピクセル単位での描画や、カラーキーが必要なければDirectXを
使用する必要はない。
>>598
ここはゲームスレではないと思うがw
0601デフォルトの名無しさん
2006/07/02(日) 19:28:12いや、でも、DirectXのスレじゃん。
Win32APIのBitBltだとちょっと違うじゃん。
DirectXをどういうものとして認識してるかで扱い変わってくるじゃん。
DirectXってもうほんとゲームシステムを作るモン向きであって
ちょっとしたパラパラアニメ動かすもんには向いてないじゃん。
0602デフォルトの名無しさん
2006/07/02(日) 21:08:350603デフォルトの名無しさん
2006/07/02(日) 21:16:340604初心者名無し
2006/07/02(日) 21:17:07って出た場合、これはどう対処したらいいのですか?
0605デフォルトの名無しさん
2006/07/02(日) 21:20:330606初心者名無し
2006/07/02(日) 21:22:140607デフォルトの名無しさん
2006/07/02(日) 21:22:22とりあえずHALにするとかソフトウェア頂点処理にするとか
D3DPRESENT_PARAMETERSの設定をデバイスに合ってるものにするとか
色々。
0608初心者名無し
2006/07/02(日) 21:24:18…すみません;本当に初心者なんで、、。
0609デフォルトの名無しさん
2006/07/02(日) 21:25:16なんかのライブラリ?
0610初心者名無し
2006/07/02(日) 21:27:20インストール後にそれをはじめようとしたら↑の表示がでるんです;
0611デフォルトの名無しさん
2006/07/02(日) 21:28:23何のライブラリ使ってるか言ってもらわんと何もいえん。
言ってもらっても何か言える訳じゃないがね。
0612デフォルトの名無しさん
2006/07/02(日) 21:28:540613初心者名無し
2006/07/02(日) 21:30:03あぁ、、こんなん話にならないですね;すみません、、
0614デフォルトの名無しさん
2006/07/02(日) 21:31:41それはここで聞くよりはゲームの作者とかに聞くほうがいいよ。
もしくはそのゲームのスレとか。
0615デフォルトの名無しさん
2006/07/02(日) 21:31:59そのゲームを作った人間にしか原因はわからない。
PCゲームならどっちみちサポセンに問い合わせるしかない。
ここで聞いたところで意味はまったくないっつーか邪魔。
0616初心者名無し
2006/07/02(日) 21:35:29というか、Direct3Dってのをどうしたらいいのかがわからないんです。
一応ここはそれをいくとこっぽいし。。
0617デフォルトの名無しさん
2006/07/02(日) 21:58:34自分でプログラムの勉強をして出直せ。
0618デフォルトの名無しさん
2006/07/02(日) 22:32:48フルスクリーンの時ウィンドウキーを押すとプッチンてなるじゃないですか。
その後の復帰のさせ方がいまいちわからないのです。
レンダーターゲットテクスチャを作るとデバイスのリセットが失敗してしまうのです。
どなたかわかるかたいますか?
0619デフォルトの名無しさん
2006/07/02(日) 22:34:45つーかVRAM上に作成したデータはデバイスリセット前に全部解放汁。
0620デフォルトの名無しさん
2006/07/02(日) 22:35:14SDKのサンプル参考に汁
0621デフォルトの名無しさん
2006/07/02(日) 22:49:260622デフォルトの名無しさん
2006/07/02(日) 22:52:27解放したデータを解放前の状態に戻すにはどうすればいいでしょうか。
>>620
探してみます。
0623デフォルトの名無しさん
2006/07/02(日) 22:55:40自分でもう一回作る。
0624デフォルトの名無しさん
2006/07/02(日) 23:04:47たとえば3D空間を散歩して写真を撮るように風景をテクスチャに置いておく場合は
そのときのデータを全て記憶しておいて、また描画し直さなければならないのでしょうか。
0625デフォルトの名無しさん
2006/07/02(日) 23:13:07最初にやっている処理なんだから、大した問題ではない。
0626デフォルトの名無しさん
2006/07/02(日) 23:15:080627デフォルトの名無しさん
2006/07/02(日) 23:18:07詳しくお願いします
0628デフォルトの名無しさん
2006/07/02(日) 23:36:27StrechRectでシステムのテクスチャに転送する。
デバイスがロストした。
レンダリングターゲットテクスチャを作り直す。
システムのテクスチャをレンダリングターゲットにStrechRectする。
おしまい。
0629デフォルトの名無しさん
2006/07/02(日) 23:58:43ありがとうございます。
試してみます。
0630デフォルトの名無しさん
2006/07/03(月) 13:10:19256×256のテクスチャー何個かに分割して表示するしかない?
0631デフォルトの名無しさん
2006/07/03(月) 14:26:220632デフォルトの名無しさん
2006/07/03(月) 16:49:010633デフォルトの名無しさん
2006/07/03(月) 19:28:41よりデカイテクスチャを用意してUVで調節するんだ!
0634デフォルトの名無しさん
2006/07/03(月) 23:52:04DirectPlay において、プロシージャに届いたメッセージを全て独自のキューに保存しようとしています。
ですが、例えば DPN_MSGID_CREATE_PLAYER メッセージでは DPNMSG_CREATE_PLAY 構造体、など
メッセージの種類によって、データ長が異なります。
これらの構造体を見る限り、どれも先頭に DWORD で構造体のサイズが格納されているようですので、
受け取ったメッセージを pMessage として、
DWORD messageSize = *(DWORD *)pMessage;
と行っているのですが、どうも自信がもてません。
他に、自然なデータ長の受け取り方はありますでしょうか?
よろしくお願いします。
0635デフォルトの名無しさん
2006/07/03(月) 23:58:39なんで、構造体を使わないの?
0636デフォルトの名無しさん
2006/07/04(火) 00:14:48全てのメッセージデータを保存したいのですが、
どのメッセージに対しても、データサイズを取得して、そのサイズ分の領域を確保し、データをコピーし、キューに入れる、という共通の処理にも関わらず、
switch(messageType)
{
case DPN_MSGID_CREATE_PLAYER:
dataSize = ((DPNMSG_CREATE_PLAY *)pMessage)->dwSize;
// キューに追加
break;
case DPN_MSGID_SEND_COMPLETE:
……
}
と、全てのメッセージタイプに対して記述するのは冗長だと思ったからです。
0637デフォルトの名無しさん
2006/07/04(火) 00:24:36unionでキューに持たせればいいじゃん。
0638デフォルトの名無しさん
2006/07/04(火) 00:32:25すみません、union でキューに持たせる、とは? 何と何を共有するのでしょうか。
データサイズが分からないと、キュー以前に、データを保存しておく領域の確保すらできません・・・。
0639デフォルトの名無しさん
2006/07/04(火) 01:09:34使うメッセージの種類全部をunionにすれば
最長のメッセージ構造体の分だけメモリを確保できる。
もちろんメモリ効率はそれぞれに対してやるよりは効率悪いけど
たいした問題じゃない
0640デフォルトの名無しさん
2006/07/04(火) 01:10:19それ、捨てられた機能だから使わない方がいいよ。
0641デフォルトの名無しさん
2006/07/04(火) 01:15:470642デフォルトの名無しさん
2006/07/04(火) 01:17:340643デフォルトの名無しさん
2006/07/04(火) 01:22:23俺は最初DirectPlayでTCP/IPの通信やろうとしたけど
挫折してWinSockでやった口なんだが・・・。
通信相手がPS2だったからかもしれんが。
0644デフォルトの名無しさん
2006/07/04(火) 01:29:22そりゃ困難だろw
↓コピペ
>DirectPlay は、基本となるネットワークからアプリケーションを大きく隔離するレイヤを提供する。
0645デフォルトの名無しさん
2006/07/04(火) 01:31:39ただDirectPlayはサポート外になってしまったので
Socket使ったほうがいいと思うよ。
(でもDirectPlayとほぼ同等層を自分で作る羽目になる)
0646デフォルトの名無しさん
2006/07/04(火) 13:54:22GeForce6600で使えてる人いる?
0647デフォルトの名無しさん
2006/07/04(火) 20:01:20性能のいいPCではスムーズに表示されて
そうでないPCでは描画オブジェクトを省いたりとか
そんなことってありえる?
同じexeでもオブジェクトが欠落してたりするんだが...
そんな風に書き分けた覚えはないのに...
0648デフォルトの名無しさん
2006/07/04(火) 20:14:510649デフォルトの名無しさん
2006/07/04(火) 20:21:04いや,あるときは描画されてたり,あるときは描画されなかったり.
でも性能の良いほうだと常に描画されているという...
よくわからんです..
0650デフォルトの名無しさん
2006/07/04(火) 20:24:43・精度割れ
まあ、色々考えられる罠。
あるか無いかと言えば、無いわけじゃない。
0651デフォルトの名無しさん
2006/07/04(火) 21:58:01どうしようもないってことかな...
とにかくありがとうございました
0652デフォルトの名無しさん
2006/07/05(水) 00:47:46それはわからない。
俺も本当はバグっているのに
性能のいいマシンで開発してたからなんか動いてしまっていて、
いざスペックの低いマシンで動かしてみたらバグバグだったことはある。
そんときはαテストとかZテストとか設定がめちゃくちゃで正常に動くはずもないのに
開発マシンではなんか上手くいってるように見えたな。
0653デフォルトの名無しさん
2006/07/05(水) 15:25:43GPUによってステートなどの初期値が異なるから注意。
自分で使うものは全部自分で初期化したほうがいい。
0654デフォルトの名無しさん
2006/07/05(水) 23:59:44スレ違いでしたら誘導お願いします
C++とDirectX9で開発してます
ゲームを作ろうと思っているのですがまだ経験不足のようで、
プログラムの構造をどうすればいいのかで迷っています
前に読んだ本に、描画処理とメッセージ処理は分離してスレッド化するほうがいい
その程度は書いてあったのですが、ほんの数行で終わってしまい
構造はどうなるのかなどがいまいちわかりません。
作ろうとしているプログラムは、
ユーザーが1対1でネットワークごしに接続しあって、
キャラクターを操作したり、送られてきたデータからオブジェクトを同期したりするだけで、
RPG程度のものと考えてもらって結構です
よろしければ、皆さんのプログラムの流れを書いていただけると助かります
参考になりそうなHPなどでもいいのでよろしくお願いします
0655デフォルトの名無しさん
2006/07/06(木) 07:13:49>ユーザーが1対1でネットワークごしに接続しあって、
>キャラクターを操作したり、送られてきたデータからオブジェクトを同期したりするだけで、
自分の実力と不釣合いなもん作ろうとするなw
無理だってわかるだろw
一歩一歩刻んでいくしかねぇんだよ。
0656デフォルトの名無しさん
2006/07/06(木) 07:21:49テトリスあたりから作りなさい
0657デフォルトの名無しさん
2006/07/06(木) 17:50:14それを左手座標の行列にに変換する方法を教えてもらえないでしょうか?
0658デフォルトの名無しさん
2006/07/06(木) 18:06:570659デフォルトの名無しさん
2006/07/06(木) 18:21:31なんて醜いんだ。
0660デフォルトの名無しさん
2006/07/06(木) 18:29:23ベクトルの変換ではなく、マトリクスの変換でお願いします。
0661デフォルトの名無しさん
2006/07/06(木) 18:58:430 1 0
0 0 -1
0662デフォルトの名無しさん
2006/07/06(木) 22:09:31線形代数の基礎くらいは習得してからプログラミングとか始めた方がいいんじゃないのか。
0663デフォルトの名無しさん
2006/07/06(木) 22:22:200664デフォルトの名無しさん
2006/07/06(木) 23:18:370665デフォルトの名無しさん
2006/07/06(木) 23:30:080666デフォルトの名無しさん
2006/07/07(金) 00:13:42ノ /,.-‐'"´ `ヾj ii / Λ
,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
ノ/,/ミ三ニヲ´ ゙、ノi!
{V /ミ三二,イ , /, ,\ Yソ
レ'/三二彡イ .:ィこラ ;:こラ j{
V;;;::. ;ヲヾ!V ー '′ i ー ' ソ
Vニミ( 入 、 r j ,′
ヾミ、`ゝ ` ー--‐'ゞニ<‐-イ
ヽ ヽ -''ニニ‐ /
| `、 ⌒ ,/
| >┻━┻'r‐'´
ヽ_ |
ヽ _ _ 」
ググレカス [ Gugurecus ]
( 2006 〜 没年不明 )
0667デフォルトの名無しさん
2006/07/07(金) 01:26:480668デフォルトの名無しさん
2006/07/07(金) 11:30:14小柔らかの人達セキュリティー対策に嫌気がさした?
0669デフォルトの名無しさん
2006/07/07(金) 11:31:290670デフォルトの名無しさん
2006/07/07(金) 11:34:03実際必要なくね?
0671デフォルトの名無しさん
2006/07/07(金) 11:35:18なんでかなあとおもって
0672デフォルトの名無しさん
2006/07/07(金) 11:40:17おれはヘボだからぜんぜんやってないけど(データ生のまま垂れ流して受け取る)、
プレイならそのへんちゃんとしてくれてたのかな
0673デフォルトの名無しさん
2006/07/07(金) 12:44:41実際にはどーなんだろね。詳しい人解説プリーズ。
0674デフォルトの名無しさん
2006/07/07(金) 13:34:39僕らはみんなwinsock大好き
0675デフォルトの名無しさん
2006/07/07(金) 15:51:08C++とDirectShowでビデオキャプチャ+圧縮保存のコードを書いております。
ボタンクリック時に、圧縮に使用するコーディックのプロパティ画面を開くようにしたいのですが、方法が検討つきません。
WindowMediaVideo9とMEPG4
ご存知の方、いらっしゃいましたらご助力願います。
宜しくお願い致します。
0676デフォルトの名無しさん
2006/07/07(金) 21:36:10http://www.kumei.ne.jp/c_lang/
猫でもわかるプログラミング
0677デフォルトの名無しさん
2006/07/08(土) 17:01:430678デフォルトの名無しさん
2006/07/08(土) 22:12:19これは回避できますか?
0679デフォルトの名無しさん
2006/07/08(土) 22:12:520680デフォルトの名無しさん
2006/07/08(土) 22:22:59256ドット*256ドットのbmpから96ドット*96ドット分だけレンダリングしたら
画像が綺麗に表示されないのです。
0681デフォルトの名無しさん
2006/07/08(土) 23:00:220682デフォルトの名無しさん
2006/07/08(土) 23:00:550683デフォルトの名無しさん
2006/07/08(土) 23:02:450684デフォルトの名無しさん
2006/07/08(土) 23:03:52それ以外の数値でやると変な表示になるんです。
0685デフォルトの名無しさん
2006/07/08(土) 23:04:230686デフォルトの名無しさん
2006/07/08(土) 23:15:260687デフォルトの名無しさん
2006/07/08(土) 23:19:390688デフォルトの名無しさん
2006/07/08(土) 23:35:52いっぱい漏れちゃいます
0689デフォルトの名無しさん
2006/07/09(日) 00:00:14遅いけど互換もまちまちとかだったら最悪だ
0690デフォルトの名無しさん
2006/07/09(日) 00:03:45あとはわかるな?
0691デフォルトの名無しさん
2006/07/09(日) 00:09:180692デフォルトの名無しさん
2006/07/09(日) 00:11:110693デフォルトの名無しさん
2006/07/09(日) 00:23:000694デフォルトの名無しさん
2006/07/09(日) 00:31:190695デフォルトの名無しさん
2006/07/09(日) 00:34:000696デフォルトの名無しさん
2006/07/09(日) 02:02:06( ゚ρ゚)パカーン
0697デフォルトの名無しさん
2006/07/09(日) 06:14:130698デフォルトの名無しさん
2006/07/09(日) 08:10:46それ漏れだ。
口あけてるか、ぶつぶつ言ってるかの二択。なんて怪しい。
0699デフォルトの名無しさん
2006/07/09(日) 12:46:590700デフォルトの名無しさん
2006/07/09(日) 12:49:17同僚に指摘されて気付いた。
0701デフォルトの名無しさん
2006/07/09(日) 13:06:17うそです。
0702デフォルトの名無しさん
2006/07/09(日) 17:02:20スクリーンセーバーで画面全体を使っている状態と、DirectXで画面全体を
使っている状態って、2Dのアクセラレーションとか関係ありますか?
マウスのup/down/ドラッグのイベントを拾ったり拾えなかったりするので
しょうか?
0703デフォルトの名無しさん
2006/07/09(日) 17:10:03ウィンドウを生成するってことはメッセージが(ry
そういうことだ。
0704デフォルトの名無しさん
2006/07/09(日) 18:34:26もしかしてパラパラ漫画の人かな?
ビデオカードの仕事が追いつかない状況下だと、イベント拾って画面に変化を与えようとしても
残ってる仕事が先だからラグが発生する。
それが「拾ったり拾えなかったり」と関係あるのかは不明だけど。
0705デフォルトの名無しさん
2006/07/09(日) 18:36:39キュー方式だから来ないって事はないと思う。
大幅に遅延してくることは普通にあるが。
0706デフォルトの名無しさん
2006/07/09(日) 18:40:12DirectInputを使っていなければ、何も変わらないよ。
メッセージループに問題があるんじゃない?
1フレーム描画する毎に1メッセージしか処理しないような
書き方をする人がいるけど、それだと問題がある。
0707デフォルトの名無しさん
2006/07/09(日) 21:35:23MSG msg;
while(true)
{
while(::PeekMessage(&msg, hWindowHandle, 0, 0, PM_REMOVE))
{
if(WM_QUIT == msg.message)
goto Exit;
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
::Sleep(0);
}
Exit:
PeekMessage()、TranslateMessage()とDispatchMessage()が
1ループ1セットしか呼ばれないとかだと遅延が起こりまくるな。
0708デフォルトの名無しさん
2006/07/09(日) 21:53:050709デフォルトの名無しさん
2006/07/09(日) 22:03:36while(PeekMessage())
のところが
if(PeekMessage())
になっちゃって、1更新ループごとに1回しか呼ばれないとかになるのが問題なんじゃ
0710デフォルトの名無しさん
2006/07/09(日) 22:10:280711デフォルトの名無しさん
2006/07/09(日) 22:11:460712デフォルトの名無しさん
2006/07/09(日) 22:26:050713デフォルトの名無しさん
2006/07/09(日) 22:53:330714デフォルトの名無しさん
2006/07/09(日) 23:05:550715デフォルトの名無しさん
2006/07/09(日) 23:12:58if(WM_QUIT == msg.message)
goto Exit;
のコードっているの?
goto云々じゃなくて・・・。
0716デフォルトの名無しさん
2006/07/09(日) 23:23:290717デフォルトの名無しさん
2006/07/09(日) 23:24:160718デフォルトの名無しさん
2006/07/09(日) 23:30:180719デフォルトの名無しさん
2006/07/09(日) 23:39:12いや、そこまでするのは無駄だ。
もっとサンプルをたくさんみて該当箇所だけ色々みるだけでいいっしょ?
ここでWin32APIの勉強はじめるような奴は目的を見失ってる奴にしかみえない。
印象悪いよ。
0720荒らし希望
2006/07/09(日) 23:44:000721デフォルトの名無しさん
2006/07/10(月) 00:04:330722デフォルトの名無しさん
2006/07/10(月) 01:38:57メッセージループをどこに置くか次第だとは思うが、
そのコード自体はペトゾルトでも同じだったぞ。
GetMessageで済むならそっちのがいいんだろうが。
ここではSleepしてる部分に更新コードを書く感じかな。
>>715
PeekMessageを使ってる場合は要る。
GetMessageとは返り値が違うから。
Win32APIの知識はなんだかんだで地味に必要じゃね?
ほとんどの処理がDirectXだけで完結するとは言え、
せめてWindow作ったりループ回したりの理屈はわかってないと
色々と立ち行かないと思う。
まあ、スレ違いだって言ったらそれまでだけどね。
0723デフォルトの名無しさん
2006/07/10(月) 01:45:23いや、だから、すでに公開されて動いてるサンプルもその辺にたくさんあるのに
いまから、Win32APIの勉強をするのはハズレじゃね?
もっといえば、別にWin32APIを知らなくてもDirectXのサンプル通りにやれば正常にいくのにだよ?
こんなんでいちいちちょっと関わるだけのライブラリをいちいち習得してたら目的のモンに中々辿り付けない
と、俺は思うんだけどね。
DirectX勉強するのに、まず、COMの知識が必要とかいいだしかねない勢いで怖いね。
0724デフォルトの名無しさん
2006/07/10(月) 02:19:51今あることで悩んでいます。
1.
グローバル・Systemクラス(シングルトン)
Graphicクラスのポインタ
Inputクラスのポインタ
Audioクラスのポインタ
中でnewで確保して中の3つの各public宣言関数はSystemクラスの関数の中で呼び出される。
Systemクラスの関数で上の3つのクラスで提供される処理は全て行う。
・思うこと
Systemという区切りで3つのクラスをまとめたことでグローバルに置くクラスを1個にできた。
Systemクラスの関数でしか中のクラスの関数にアクセスできないので少し遅くなってない?
2.
上の3つのクラスをシングルトンでグローバルにおいてアクセスする
C++の設計の問題だと思うのですが皆様アドバイスよろしくお願いいたします。
0725デフォルトの名無しさん
2006/07/10(月) 02:49:58おめー、設計下手糞だからわかんねぇんだろうけど、
ゲーム部分とデバイス部分でわけとかないと大変だぞ。
そんなもんグローバルにしてもってゲームのソース中に散りばめたら大惨事よw
結局さ、それをグローバルにしてどっからでもアクセスできるようにしようなんて
いうのはゲームのどこでどうそのクラスが必要になるかわからないからだべ?
なんかどこでも必要になる気がするんだよなw
正直、アホだ。アフォまるだし。でも、いまはそれでいいと思う。
誰かの言葉に説得させられるんじゃなくて、自分でやってみて理解したほうがいいと思う。
今はたくさんゲームを作るとき。百万の言葉より1つの経験。
ゲームを作らないでライブラリを作ってもそれは独りよがりなもんにしかならない。
知識だけでも駄目だし、経験だけでも駄目。バランスが大事。
それとプログラムの基本は
グローバル変数・関数は駄目だ。
どっかからとってきたインスタンスへのポインタをメンバ変数に保持するのも駄目だ。(Alt+Tabで問題になるな)
gotoも駄目だ。
ってのはわすれないようにw
0726デフォルトの名無しさん
2006/07/10(月) 02:52:47言葉遊びだと思うな。
サンプルの中にも鵜呑みにしていいものと悪いものがあるし、
見分けるにはやっぱり基礎知識はある程度あった方がいいし。
なんだかんだでタイマー周りの制御とか、デバイスのロスト時の処理なんかを
ちゃんと実装するには、それなりにWinの知識が必要だよ。
それこそ既存のサンプルからコードぱくってくりゃ済む話だけどさ。
どこまで踏み込むかは、程度問題でしかないだろうけどね。
まあ、好き好きで。
0727デフォルトの名無しさん
2006/07/10(月) 02:54:15でもクラスのstaticメンバは良かったりするんだよなw
0728デフォルトの名無しさん
2006/07/10(月) 02:56:06それはかまわねぇと思うけど。
目的がはっきりしてれば。
ただ、あんまりやらないな。
0729デフォルトの名無しさん
2006/07/10(月) 02:57:06>それこそ既存のサンプルからコードぱくってくりゃ済む話だけどさ
なんでぇ。文句ねーじゃねーかw
0730デフォルトの名無しさん
2006/07/10(月) 03:11:54namespaceと一緒で、変数や機能の所有者がはっきりするから
いわゆるグローバル変数だだ並べに比べれば格段に危険度は減るんだよな。
でも、実際には忌避される理由の大半は宗教上の問題だと思う。
プログラマって信心深い人多いから。
どーでもいいけどスレ違いですねそうですね。
0731デフォルトの名無しさん
2006/07/10(月) 03:25:26グローバルアレルギーか?
>724
>Systemという区切りで3つのクラスをまとめたことでグローバルに置くクラスを1個にできた。
まとめることに何の意味があるのか?
むしろ機能の独立性が下がるほうが気になる。
0732デフォルトの名無しさん
2006/07/10(月) 03:27:260733デフォルトの名無しさん
2006/07/10(月) 06:35:32勝手な解釈して逃げてるけど、そりゃお前がなにも学んで無いから、
ちゃんとグローバル変数・関数の問題と向き合ってとことん考えなきゃ次のステップには進めないぞ。
てか、グローバル変数・関数の問題を諦めた時点で設計を語る資格は無い。
もう、どうにだって組めるじゃん。こんなもんちょっとでも許した時点ですべてが崩れちまう。
何が悪くて、何が良いのかも判断できないっしょ。
0734デフォルトの名無しさん
2006/07/10(月) 09:30:100735デフォルトの名無しさん
2006/07/10(月) 09:31:47まさか、これからくるニカ!
0736デフォルトの名無しさん
2006/07/10(月) 11:01:34ウィンドウの管理とかD3Dデバイスの管理なんて普通はstaticでいいと思うが?
安全性と可読性が保障されてるならグローバルもgotoもぜんぜんありだと思うがなぁ。
0737デフォルトの名無しさん
2006/07/10(月) 14:03:04問題なのはグローバル変数剥き出しそのものじゃなくって
管理権限がはっきりしない変数が改変可能な状態で
放り出されていては、何処で何が起きても責任が取れないってだけのこと。
これはたかだかカプセル化の問題に過ぎない。
正しくOOPが適用されれば自ずと無闇なグローバル変数云々なんぞは消えていくが、
そこを経験則上の解釈だけで止めてしまってる人も結構多いって言いたいだけなんだけど、
俺、そんなに間違ってること言ってるか?
0738デフォルトの名無しさん
2006/07/10(月) 14:04:47某所にコード貼り付けたら、以降のレスが多重ループを抜けるのに使ってた
gotoにだけ集中してて吹いたよ。
おまいらそこ争点違うからとw
0739デフォルトの名無しさん
2006/07/10(月) 14:52:51おめー、設計下手糞だからわかんねぇんだろうけど、
ゲーム部分とデバイス部分でわけとかないと大変だぞ。
そんなもんグローバルにしてもってゲームのソース中に散りばめたら大惨事よw
0740デフォルトの名無しさん
2006/07/10(月) 16:50:09マルチウインドウ、マルチモニタに対応出来ないじゃないか。
0741デフォルトの名無しさん
2006/07/10(月) 16:55:48そんなゲーム作るのか?
0742デフォルトの名無しさん
2006/07/10(月) 16:57:25>>740ね
0743デフォルトの名無しさん
2006/07/11(火) 13:54:48指定した座標の値を取得する方法ありませんか?
0744デフォルトの名無しさん
2006/07/11(火) 14:25:24ピクセルシェーダー3.0なら出来んのかな。
0745デフォルトの名無しさん
2006/07/11(火) 14:27:07調べてみる
サンクス
0746デフォルトの名無しさん
2006/07/11(火) 21:39:32if (えらー1)
break;
if (えらー2)
break;
... // 正常な処理
return;
}
while (0);
.. // エラー処理
return;
0747デフォルトの名無しさん
2006/07/11(火) 21:51:07if (えらー1) //7月11日 今日はハンバーグを食べた
break;
if (えらー2)
break;
... // 正常な処理
return;
}
while (0);
.. // エラー処理
return;
0748デフォルトの名無しさん
2006/07/11(火) 21:55:48つまりgotoいらないよな
0749デフォルトの名無しさん
2006/07/11(火) 22:04:520750デフォルトの名無しさん
2006/07/11(火) 22:09:510751デフォルトの名無しさん
2006/07/11(火) 22:12:370752デフォルトの名無しさん
2006/07/11(火) 22:14:190753デフォルトの名無しさん
2006/07/11(火) 22:14:290754デフォルトの名無しさん
2006/07/11(火) 22:15:300755デフォルトの名無しさん
2006/07/11(火) 22:15:53{
return 0;
}
文句つけようが無いってことで
〜終了〜
0756デフォルトの名無しさん
2006/07/11(火) 22:18:33美しい
0757デフォルトの名無しさん
2006/07/12(水) 00:38:06これこそ究極。なにせこれ書くだけで数レス消費しはじめる魔法のコード。
0758デフォルトの名無しさん
2006/07/12(水) 00:41:320759デフォルトの名無しさん
2006/07/12(水) 01:06:380760デフォルトの名無しさん
2006/07/12(水) 15:08:17__PERGMAIN すりゃいいだけな話だろうに。
0761デフォルトの名無しさん
2006/07/12(水) 15:28:430762デフォルトの名無しさん
2006/07/12(水) 15:30:58デバイスの生成元のD3Dインターフェイスは1つでOK?
脊髄反射でシングルトンにしちゃって、とりあえず問題なさそうなんで
そのままにしてるんだけど、誰かにゴルァされない?
0763デフォルトの名無しさん
2006/07/12(水) 17:39:52作らない
0764デフォルトの名無しさん
2006/07/12(水) 18:18:480765デフォルトの名無しさん
2006/07/12(水) 20:47:41画面のPresent時には描画対象のウィンドウのハンドル渡せる。
0766デフォルトの名無しさん
2006/07/12(水) 22:57:46PresentParameter と CreateDevice 時の FocusWindow にハンドル渡す必要があるね。
これも最初に作るときだけぶちこめば、あとは使いまわせる理屈?
個々の Window にフルスクリーン化を仕込むとか(そんなのがどの程度必要かはわかんない)だと
引っかかりそうな気がするんだけど…。
0767デフォルトの名無しさん
2006/07/12(水) 23:56:18その無駄な時間で使う機能を練りこんだ方がいいと思うお。
まぁ2ch見てる時間が無駄なんだがorz
0768デフォルトの名無しさん
2006/07/13(木) 00:02:26質問の答えになってねえずら。
0769デフォルトの名無しさん
2006/07/13(木) 00:08:480770デフォルトの名無しさん
2006/07/13(木) 07:58:120771デフォルトの名無しさん
2006/07/13(木) 15:09:050772デフォルトの名無しさん
2006/07/13(木) 15:25:03バーン
0773デフォルトの名無しさん
2006/07/13(木) 22:26:010774デフォルトの名無しさん
2006/07/14(金) 00:14:010775デフォルトの名無しさん
2006/07/14(金) 14:36:02フレームとどう違うんでしょうか?
0776デフォルトの名無しさん
2006/07/14(金) 19:00:44スキニングでググってみれば、解説が見つかるかもしれない。
0777デフォルトの名無しさん
2006/07/14(金) 19:15:17ttp://www.twin-tail.jp/contents/vsdx8/d3d/031/index.htm
0778デフォルトの名無しさん
2006/07/14(金) 21:01:55capsでしっかりvs1.1と返すビデオカードでシェーダを使用した所、異常なく表示できました。ハードウェア頂点処理です。
そのHLSLに、SDKサンプル通りのスキニング処理だけを加えたら動かなくなりました。
しょうがないので同じHLSLを、ソフトウェア頂点処理に変えて実行してみたら、問題なく動きました。
サンプル通りですし、吐かせたアセンブラみても、使っている命令は1.1以内だと思います(そもそもcompile vs_1_1ですし)。
どの辺でひっかかってソフトウェア頂点処理が必要になったのでしょうか。分かる方いらしたら是非。
0779デフォルトの名無しさん
2006/07/14(金) 21:27:45そういう守秘義務を課せられている奴は、危険だから二度とこのスレに書き込まない方がいいよ。
0780デフォルトの名無しさん
2006/07/14(金) 21:28:30げふぉ3だとUBYTE4が使えないとかいうたわけた仕様があったきもするけど。
0781778
2006/07/14(金) 21:48:56ビンゴっす!見事にレジスタ絡みでした。いやはや、行列を取りすぎてたようで。
一体何時間悩んでいたんだろ・・・適確な助言ありがとうございました。感謝っす。
0782デフォルトの名無しさん
2006/07/14(金) 21:52:390783デフォルトの名無しさん
2006/07/15(土) 16:07:49ネット上ってあんまり参考になるサイトないですよね?(あれば教えてくださいm(__)m)
そこで本を買おうと思って家が田舎なものでネットで買おうと検索してみたところ
はじめての3Dゲーム開発―「DirextX9」の使い方から「1人称3Dフィールド・ゲーム」の制作まで
DirectXゲームグラフィックスプログラミング Ver. 2.0
DirectX 9実践プログラミング―「グラフィック」「オーディオ」「ネットワーク」「入力」--ゲーム作りに役立つ機能の基礎から応用まで (単行本)
この辺がよさそうかなぁ、と思いましたがどうでしょうか。
また、このほかにオススメの本などありましたら教えてください、よろしくお願いします。
0784デフォルトの名無しさん
2006/07/15(土) 17:11:30一番上のは俺はもってない。
下の2つはもってるけどいい本だよ。
はじめとしてはいいんじゃないだろうか?
できれば見比べて勉強するのに2つともほしいが・・・どっちか選ばないと駄目なんだろうか?
0785デフォルトの名無しさん
2006/07/15(土) 17:43:24そうですか〜。いいんですね。
お金に余裕が・・・(笑)
でもがんばって買ってみましょうかね〜。
0786デフォルトの名無しさん
2006/07/15(土) 18:09:07ここの推薦図書を見ておくのもよいかも
0787デフォルトの名無しさん
2006/07/15(土) 19:04:11一番上は、筆者の自分語りが少しうざいけど、内容は
悪くはない。
お薦めの本は特にないけれど、入門書は1〜2冊に
しておいて、さっさと本物の専門書に挑戦すべき。
0788デフォルトの名無しさん
2006/07/15(土) 19:37:390789デフォルトの名無しさん
2006/07/15(土) 23:24:272つとも買っちゃいました(^_^;)
アドバイスありがとうございます。
0790デフォルトの名無しさん
2006/07/15(土) 23:27:14なるほどー。
検討してみます。
そうですね、買った2冊をマスターしたら専門書に挑戦してみます。
どーいうのがいいですかねー。
>>788
なかなか使い勝手のよさそうな本ですが初心者より上が対象って感じですね。
基礎ができてきたら検討します。
0791デフォルトの名無しさん
2006/07/16(日) 01:29:390792デフォルトの名無しさん
2006/07/16(日) 02:01:26あー、考えもしませんでした。
でもまぁ期限付きだとすきなときにみれませんしね。
それにこの田舎の県の図書館にそんな本があるかどうか・・・w
0793デフォルトの名無しさん
2006/07/16(日) 02:22:44ていうか俺の最寄り図書館
0794デフォルトの名無しさん
2006/07/16(日) 02:57:14そうそう!
県で一番おっきい図書館でもしょっぼいですからね!
勉強するにも買い物するにも就職するにも不利な田舎・・・(T_T)
0795デフォルトの名無しさん
2006/07/16(日) 07:41:37バイトして買いあさった方が早そうだなあ。
学校の図書館とかは駄目なの?
大学なり専門なりの図書館なら、多少はマシだと思うんだけど。
0796デフォルトの名無しさん
2006/07/16(日) 09:30:11いや、逆引き大全は初心者対象だよ?
ソースコード付きで500のTIPSが載ってるから
0797デフォルトの名無しさん
2006/07/16(日) 09:37:07まぁ需要が高いのは確かだと思うけどさ
>>795
専門学校で図書館開放してるとことかあるの?kwsk
0798デフォルトの名無しさん
2006/07/16(日) 10:09:58ワラタ、あるあるw
0799デフォルトの名無しさん
2006/07/16(日) 10:17:41一般解放している学校が多かった。
あと、市内の住民なら利用できるってところもあったよ。
例えば千代田区民で18歳以上なら日大理工の図書館が使える。
0800デフォルトの名無しさん
2006/07/16(日) 14:45:01勝った、俺の所はコアJAVAがあるぜ
初版の
0801デフォルトの名無しさん
2006/07/16(日) 22:44:14各フレームが一つ持つ、TransformationMatrixは
子である自分の座標系から、親の座標系に変換するための行列なのか、
自分の親の座標系から、子である自分の座標系に変換する行列なのか
どちらが正しいのでしょうか?
あと、オフセット行列は、ローカル座標におかれている頂点の座標を
特定のボーンの座標系に変換するためのモノであるという認識でよろしいのでしょうか?
よろしくおねがいします。
0802デフォルトの名無しさん
2006/07/17(月) 04:59:17TransformationMatrixは、子の座標系から親の座標系に変換する行列。
オフセット行列についてはその通りだったかと。
D3Dの結合法則なら最終的にこうなる
BoneMatrix = OffsetMatrix * Frame::TransformationMatrix
0803デフォルトの名無しさん
2006/07/17(月) 10:54:33なんか紛らわしくね?
BoneMatrix = OffsetMatrix * Frame::TransformationMatrix
このFrame::TransformationMatrixってボーンの行列でしょ。
0804デフォルトの名無しさん
2006/07/17(月) 11:23:57ごめんややこしいどころか間違ってた…
Frame::CombinedTransformationMatrixだった(SkinnedMeshサンプルの場合)
0805801
2006/07/17(月) 12:26:08回答サンクス
あやふやな所だったけど、これではっきりしました。
確かに、数式をみれば
TransformationMatrixは「子の座標系から親の座標系に変換する行列」
ですね。
0806デフォルトの名無しさん
2006/07/17(月) 15:40:46縁取りをした文字のテクスチャを用意したのですが
(透明色にしたい部分を紫、縁取りの色は黒、文字色は白、紫と黒の部分がアンチエイリアスがかかっています)
これを出力するのに困っています。
ただの縁取り文字(アンチエイリアス無しの境界線)はD3DXCreateTextureFromFileExで透明色(紫)を指定すると出来ますが
アンチエイリアスがかかっているテスクチャなのでこの場合紫と黒の混合の色が出てしまいます・・
なのでアルファブレディングを使えばいけるかな?と思ったので色々やってみたのですが、
白か黒しか透明色に出来ないみたいで、透明色を紫にしたいので(縁取りが黒で文字本体が白にするので)
どうやっても縁取りか文字も透けてしまいます
そもそもアンチエイリアスをかけたテクスチャを出力するには上記の方法以外に普通なやり方があるのでしょうか
よろしくお願いします。
0807デフォルトの名無しさん
2006/07/17(月) 16:02:37そりゃカラーキーじゃねぇの?
0808デフォルトの名無しさん
2006/07/17(月) 16:04:560809デフォルトの名無しさん
2006/07/17(月) 16:05:42アルファチャンネルって知ってるか?
0810デフォルトの名無しさん
2006/07/17(月) 16:11:41開発現場だと普通にフォトショップがあるけど、ないところってどうすんだろな。
0811デフォルトの名無しさん
2006/07/17(月) 16:14:44既存画像をそうするんだから他の方法も無いわけだが
0812デフォルトの名無しさん
2006/07/17(月) 16:18:14だからそりゃカラーキーじゃねぇのか?
0813806
2006/07/17(月) 16:28:42アルファチャンネルなんてものがあるなんて今知りました・・
アルファデータを持ってる画像が使えるんならプログラム側でごちゃごちゃする必要ないですね
アルファ使ったテクスチャを用意する事にします
SetRenderStateでSrcとDestに適当な値を入れて透明化を実装していたのですが
これがカラーキーなのかは知りませんが
ありがとうございました
0814デフォルトの名無しさん
2006/07/17(月) 16:31:06カラーキー
画像の中の色の一色だけ透過色として指定してその色の箇所を描画しないことで抜き色とする方法。
行われる計算は
Color = if(srcRGB == colorKey)destRGB else srcRGB
アルファブレンド
画像の1ピクセルの成分をRGBAとして、描画時にA成分を掛け合わせることで描画する方法。
行われる計算は
Color = srcRGB X A + destRGB X (1-A)
srcRGBは貼り付けたい絵の色
destRGBは背景の絵の色
0815デフォルトの名無しさん
2006/07/17(月) 16:38:56理解できるできないは別として、Directxのヘルプぐらい目を通しとけよ。
0816デフォルトの名無しさん
2006/07/17(月) 16:42:550817デフォルトの名無しさん
2006/07/17(月) 16:47:22>>813ではアルファブレンドを使ったみたいなこと言ってるような気がするが、じゃあ、>>806のレスってなんだったんだろ?
とか思ったり思わなかったり、まあ、アルファブレンドを知ればすべてがわかることだ。
0818デフォルトの名無しさん
2006/07/17(月) 16:56:010819デフォルトの名無しさん
2006/07/17(月) 17:00:470820デフォルトの名無しさん
2006/07/17(月) 17:04:06なんか聞きたいことあるのかね?
でも、俺の知識はスキンメッシュ、バンプ、反射、屈折あたりで止まってるので
それぐらいまでで頼むw
0821806
2006/07/17(月) 17:05:28806は最初にカラーキー同等の処理をD3DXCreateTextureFromFileExで読み込む際に透明色を指定する方法から入ったのですが
この場合紫しか透明化されないので、外の紫と文字本体の縁取りの黒との境目の黒と紫が混ざった色は
灰色のような透明化がされないので、アルファブレンドについての質問に移行しんです。
アルファチャンネルが無い画像でも黒地か白地にグラデーションのような描き方をすると
適当なSrc、Destの値により黒か白が透明化されるんです。
その場合透明化されたのが黒だとして、濃い赤などの黒い要素も少し透けるようになるんです・・(言葉で説明するより実際やってみると判ります
この延長線上の手法でやるのかと思っていたのです・・。
0822デフォルトの名無しさん
2006/07/17(月) 17:11:330823デフォルトの名無しさん
2006/07/17(月) 17:12:18なるほど。
仕組みを理解せずに実装するのはやっぱり怖いな。
0824デフォルトの名無しさん
2006/07/17(月) 17:14:20多分そうっていうかめちゃくちゃなステータスだろうな。
勘で>>814の形にもってくのははっきりいって神でも宿らないと無理だね。
0825デフォルトの名無しさん
2006/07/17(月) 17:14:47丁度、「隙間無く閉じているポリの集合」と、「ある一つの頂点」との、"厳密な"当たり判定で悩んでいたんだけど、どうすかね
頂点がポリにめり込んじゃ駄目なの
「隙間無く閉じているポリの集合」が凸型なら簡単なんだけどねえ
0826825
2006/07/17(月) 17:16:27「隙間無く閉じているポリの集合」は、まぁt-potみたいな一般的なポリっす
0827デフォルトの名無しさん
2006/07/17(月) 17:18:16DirectXのAPI使ってます.
テキスト,バイナリファイルの書き出しは可能なのですが,圧縮ファイルの書き出しがうまくいきませぬ.
APIリファレンスによると,
CreateSaveObject(LPCSTR szFileName,DXFILEFORMAT dwFileFormat,LPDIRECTXFILESAVEOBJECT* ppSaveObj)
関数を使用して,第2引数をァイルフォーマットの値を論理和,つまり,テキスト圧縮なら3, バイナリ圧縮なら2を与えているのですが,
通常のテキストファイル,バイナリファイルが書き出されてしまいます.原因がまったくわかりません.
0828デフォルトの名無しさん
2006/07/17(月) 17:18:17そんなの実装しねぇw
企画段階で自分のできる範囲の仕様になるようにごねる。
0829825
2006/07/17(月) 17:31:34定義見る限り、ビットフラグじゃ無い気が
試しに0と2でファイルサイズ比べるとどうなんだろ
>>828
たのむよ、とっつぁ〜ん
流れが止まった(ノД`)
0830デフォルトの名無しさん
2006/07/17(月) 17:32:54単に点の内外判定なら、
点から任意の方向にレイを飛ばして、衝突回数が奇数なら中よね。
0831827
2006/07/17(月) 17:34:06ファイルサイズ変化ナッシングです.
ちなみに,ヘッダも"bin"と通常のバイナリファイルになっとります.
0832デフォルトの名無しさん
2006/07/17(月) 17:35:29t-potが止まってて頂点が動いてて、
衝突する時間と衝突地点を調べるとかいう奴かい?
0833デフォルトの名無しさん
2006/07/17(月) 17:41:30Dx8からはαチャンネルとアルファテストで
カラーキーと等価な処理する自前でするようになったってだけで。
αチャンネルサポートしてないグラフィックツールでも、
グレースケールのα用画像とカラー画像を分けて作成して、
合成してTGAあたりを吐き出すコンバーターを作ればいいと思われ。
0834825
2006/07/17(月) 17:43:31ちょ、神現る!俺なんか今凄いドキドキしてる。
断面取って2Dにし、テッセレの応用で…とかやってましたよ。ええーこれで出来ちゃうの。
マジでありがとやんした!
>>832
仰るとおりっす。おかげで判定できそうなので、後は時間と地点まで持って行けるか頑張ってみるっす。レス感謝です。
0835デフォルトの名無しさん
2006/07/17(月) 18:35:38冷静になってヘルプ見たら…もの凄い適当な事言ってごめんよ
変換自体が目的なら、SDK\Utilities\mview.exeで3通りに変換できるね。実装自体が目的ならすまんです
0836827
2006/07/17(月) 18:44:09いえいえ.どうもです.でも実装が目的です.
同じように,圧縮ファイルの作成に手間取った人はいないですか‥
ヘルプ願います.
0837デフォルトの名無しさん
2006/07/17(月) 21:34:200838デフォルトの名無しさん
2006/07/17(月) 21:34:510839デフォルトの名無しさん
2006/07/17(月) 21:50:440840デフォルトの名無しさん
2006/07/17(月) 22:12:380841デフォルトの名無しさん
2006/07/17(月) 22:24:19何せ各地の掲示板を見歩くのを辞めた。
ここしか見てないからな。
0842デフォルトの名無しさん
2006/07/18(火) 01:41:08Diret3Dのウィンドウにかぶるとフレームレートが60→3くらいに激しく重くなるんだけど、
こういうものなんですか?
0843デフォルトの名無しさん
2006/07/18(火) 02:05:440844デフォルトの名無しさん
2006/07/18(火) 03:36:40そういうもの。
MSNメッセンジャーは「自分の連絡先カードを表示」っていうツールチップが
しばらく出っ放しになるバグ(?)があるけど、それがゲームのウィンドウに
重なると悲惨なことになる。
0845デフォルトの名無しさん
2006/07/19(水) 12:31:220846デフォルトの名無しさん
2006/07/19(水) 17:02:25DirectXの力でどうにかできませんか?
(男性・27歳・無職)
0847デフォルトの名無しさん
2006/07/19(水) 17:05:310848デフォルトの名無しさん
2006/07/19(水) 17:27:570849デフォルトの名無しさん
2006/07/19(水) 19:08:450850デフォルトの名無しさん
2006/07/19(水) 19:31:490851デフォルトの名無しさん
2006/07/19(水) 20:54:330852デフォルトの名無しさん
2006/07/19(水) 21:06:390853デフォルトの名無しさん
2006/07/19(水) 21:19:580854デフォルトの名無しさん
2006/07/19(水) 21:32:150855デフォルトの名無しさん
2006/07/19(水) 21:34:26歌います いい日旅立ち
0856デフォルトの名無しさん
2006/07/19(水) 21:38:090857789
2006/07/19(水) 22:11:02ゲームグラフィックスプログラミングのほうは丁寧でわかりやすくていいですね〜。
ただDirectX9実践プログラミングのほうはサンプルソースがコンパイルできない・・。
Spriteとかその辺でひっかかってるから仕様変更に対応してないんだろうけど・・・。
かなりがっかりです。どうしよう。
0858デフォルトの名無しさん
2006/07/20(木) 06:17:43そんなのちっと勉強すりゃすぐ動かせるようになるだろ。
どうしようも糞もないでしょ。
まあ、著者のほうもなげっぱなしじゃなくてサポートしてほしいもんだけど・・・。
0859デフォルトの名無しさん
2006/07/20(木) 06:19:54無理な話だ
0860デフォルトの名無しさん
2006/07/20(木) 06:36:20いや、サンプルを動かせるようにしてくれるだけでもいいんじゃね?
できる人間にとっちゃものの10分かからん作業なわけだし、
初めて触る初心者にとっちゃちょっと困るっちゃ困るだろ。
0861デフォルトの名無しさん
2006/07/20(木) 12:41:19ttp://www.microsoft.com/japan/msdn/directx/downloads.aspx
0862デフォルトの名無しさん
2006/07/20(木) 18:22:380863デフォルトの名無しさん
2006/07/20(木) 19:26:280864デフォルトの名無しさん
2006/07/20(木) 19:35:28最新のSDKにWizardは付いてない
DirectX Sample BrowserからEmptyProjectを開け
0865デフォルトの名無しさん
2006/07/20(木) 20:22:270866デフォルトの名無しさん
2006/07/20(木) 20:38:26何をアホなことを言っているんだ?
0867デフォルトの名無しさん
2006/07/20(木) 21:29:000868デフォルトの名無しさん
2006/07/21(金) 00:51:220869デフォルトの名無しさん
2006/07/21(金) 00:55:410870デフォルトの名無しさん
2006/07/21(金) 02:10:03なるほど、旧バージョンを入れるしかないんですね。
DirectXって同じ9の中でもライブラリが減ったり増えたりするだけじゃなくて
関数の仕様が変わったりするんですね。
もうちょっとどうにかならないのかな〜。
本にあわせて複数のバージョンをインストールしないといけないのが腑に落ちない・・・。
ま、そんなことしなくても書き換えられるくらい勉強しろってことかな。
0871デフォルトの名無しさん
2006/07/21(金) 07:47:090872デフォルトの名無しさん
2006/07/21(金) 08:13:260873デフォルトの名無しさん
2006/07/21(金) 09:51:49あなたを封印する!
0874デフォルトの名無しさん
2006/07/21(金) 11:53:400875デフォルトの名無しさん
2006/07/22(土) 04:35:39// マテリアル情報を取り出す
D3DXMATERIAL*mD3DXMaterials = (D3DXMATERIAL*)m_pD3DXMtrlBuffer->GetBufferPointer();
for( DWORD i =0; i<m_numMesh; i++){
// マテリアルのコピー
mMaterial = mD3DXMaterials[i].MatD3D;
// マテリアルのセット
pD3DDevice->SetMaterial( &mMaterial);
// 分割されたメッシュの描画
m_pMesh->DrawSubset( i );
}
と表示してるのですが、表示されるのは白いオブジェクトでマテリアルが効果を発揮してません。
何が原因かわかる人いませんか?
0876デフォルトの名無しさん
2006/07/22(土) 09:14:260877デフォルトの名無しさん
2006/07/22(土) 12:18:00いやそんなことは当たり前の話であって、このソースで効果ないのはなぜなのか聞いてるんですけど?
0878デフォルトの名無しさん
2006/07/22(土) 12:29:270879デフォルトの名無しさん
2006/07/22(土) 12:32:09やっぱりライティングじゃね?
0880デフォルトの名無しさん
2006/07/22(土) 13:11:180881デフォルトの名無しさん
2006/07/22(土) 13:31:590882デフォルトの名無しさん
2006/07/22(土) 13:40:50わかるよ
当たり前の話
0883デフォルトの名無しさん
2006/07/22(土) 13:48:18マルチになるんでここでは返答を求めません。
0884875
2006/07/22(土) 16:39:13書いた部分じゃないところでなにかやってない設定が有るような気もするのですが、
ちゃんとできてるソースと見比べてもどこがおかしいのか見つからなくて。
何かやっちゃいけないこととかあるんですかね?
0885デフォルトの名無しさん
2006/07/22(土) 16:49:230886デフォルトの名無しさん
2006/07/22(土) 16:56:210887デフォルトの名無しさん
2006/07/22(土) 17:00:130888デフォルトの名無しさん
2006/07/22(土) 17:01:21いやいや自己発光だろう
0889デフォルトの名無しさん
2006/07/22(土) 17:38:180890デフォルトの名無しさん
2006/07/22(土) 18:05:08そこからいろいろといじったやつで白くなるので、何かやっちゃいけないことをやっちゃったのかなと。
ちなみに、本のプログラムの方でライトをオフにしたら同じ感じになりました。
んで、非常に私事なのですが、そろそろ期末テストの勉強を開始しますので、
テストが終わり次第またやってみたいと思います。
またお世話になるかと思いますがその時はよろしくお願いします。
0891デフォルトの名無しさん
2006/07/22(土) 18:19:22すべてのDirect3Dでポリゴンの描画を強制的に白一色にする機能がある。
ただしOpenGLは許すのだという。
0892デフォルトの名無しさん
2006/07/23(日) 00:04:00ど真ん中向いてるとか。
0893デフォルトの名無しさん
2006/07/23(日) 00:16:220894デフォルトの名無しさん
2006/07/23(日) 00:21:03ポリゴンモデルに神が宿って、後光を発してる。
0895デフォルトの名無しさん
2006/07/23(日) 00:24:42生まれたときは誰だって一人だぜ?
0896デフォルトの名無しさん
2006/07/23(日) 00:34:100897デフォルトの名無しさん
2006/07/23(日) 01:07:40この関数にA*Bを行うつもりで
D3DXQuaternionMultiply(OUT, A, B)
とすると、出てくる結果がB*Aになってるんですが、これって仕様なんですか?
なぜ、この関数は積の順序を逆にしてるんでしょうか?
よろしくお願いします
0898デフォルトの名無しさん
2006/07/23(日) 01:15:16なんか同じ質問を1年くらい前にBBXあたりで見た記憶がw
0899デフォルトの名無しさん
2006/07/23(日) 01:43:27http://higeneko.com/diary.php?Date=2006-05-04#Date2006-05-04
>クォータニオンの掛け算の部分でD3DXQuaternionMultiplyがq1*q2ではなく、
>q2*q1の結果を返してくるという、変態仕様だったことが判明しました。
>これはD3Dでは、行列の積を使ったとき、M1*M2とすると意味的に
>M1の移動をしてから、M2の移動をすると同じ事なので、これと書き方を
>一緒にする為にクォータニオンの積の順序を変えてるというのが理由らしいです。
0900デフォルトの名無しさん
2006/07/23(日) 08:20:12なぜかと聞かれたらゲイツだからとしか答えようがない
0901デフォルトの名無しさん
2006/07/23(日) 10:29:37ありがとうございます
紛らわしい仕様になってるんですね。
0902デフォルトの名無しさん
2006/07/23(日) 11:04:290903デフォルトの名無しさん
2006/07/23(日) 11:07:09はっきりいってソースを晒さない限り原因が特定しない。つーか、できない。
それが固定機能を使ったときにでる意味不明な現象。(ほとんどステートの設定不備だと思うけどね)
それが嫌だからみんな頂点シェーダ使うし、固定機能もそのうち廃止になる。
ただでさえ、ライトOFFなのにアンビエントだけ有効なままとかわけわかんねーし。
もうね。固定機能作った奴はゴミ。これは確定。
0904デフォルトの名無しさん
2006/07/23(日) 11:07:47え?何?もう1回言って?
0905デフォルトの名無しさん
2006/07/23(日) 11:19:27許してあげてください。
0906デフォルトの名無しさん
2006/07/23(日) 11:40:53「数学の本とかOpenGLの行列が右作用(ベクトルを右から掛けて使う)なのに
DirectXは左作用(転置ベクトルを左から掛ける)で実装してややこしいねん、別物やん」
と脳内補完しとくわね。
0907デフォルトの名無しさん
2006/07/23(日) 11:41:49CreateDeviceでMIXEDを選ぶ人は残らずそういうタイプでしょ
0908デフォルトの名無しさん
2006/07/23(日) 11:47:41いい加減 2003 Summer から脱却したいのだが。
0909デフォルトの名無しさん
2006/07/23(日) 11:54:490910デフォルトの名無しさん
2006/07/23(日) 11:57:480911デフォルトの名無しさん
2006/07/23(日) 11:59:140912デフォルトの名無しさん
2006/07/23(日) 12:04:480913デフォルトの名無しさん
2006/07/23(日) 12:05:39こんなとこで恨みつらみ書くな、な?
0914デフォルトの名無しさん
2006/07/23(日) 12:27:53じゃあ、大好きな固定機能死ぬまでいじってれば?
俺はこんなんで苦労するのは嫌だけどね。
なんのステートが何に影響するのか一つ一つ表にでもまとめないととてもじゃないけど使えないよ。
0915デフォルトの名無しさん
2006/07/23(日) 12:35:330916デフォルトの名無しさん
2006/07/23(日) 12:38:32思って全然分からないんだけど、対応しないハードウェアの場合ソフトウェアで
エミュレートするって、極端に遅くならない?
DirectX10はXPには対応しないという話があるから、DirectX9はかなり長く
使いそうだし、当分は固定機能でいいかなぁと思ってる。
0917デフォルトの名無しさん
2006/07/23(日) 12:46:570918デフォルトの名無しさん
2006/07/23(日) 12:59:22それ使わないとやってられないとかひょっとしてDrawPrimitiveが各所に
散らばってるんだろうか
>>916
頂点シェーダーはHWT&Lが使えなくなるけどそこそこは動く。
ピクセルは糞重い。
0919デフォルトの名無しさん
2006/07/23(日) 13:02:02ありがとう。
だったら、後で勉強するってことでいいかな。
0920デフォルトの名無しさん
2006/07/23(日) 13:15:56固定機能のクセで悩むか、シェーダでグラボの対応具合で悩むか、結局どっちでも悩むわけか
そういや、固定機能っぽいのが復活するなんて記事をどこかで読んだけど、あれは何だったかな
0921デフォルトの名無しさん
2006/07/23(日) 14:06:55VerexShader2.0までしかサポートしてないビデオカードで
3.0の機能も使うアプリを動かすときにMIXEDにして切り替えないで、
「動きません」で終わらせるのか?
0922デフォルトの名無しさん
2006/07/23(日) 17:14:44お前は何を言っているんだ?
0923デフォルトの名無しさん
2006/07/23(日) 18:14:59固定機能でぼかし処理とか出来んのかいな?
0924デフォルトの名無しさん
2006/07/23(日) 18:43:000925デフォルトの名無しさん
2006/07/23(日) 20:18:46縮小して拡大でイナフ
0927デフォルトの名無しさん
2006/07/23(日) 22:56:12ハードウェアがVS2.0対応のとしてMIXEDにした場合
VS3.0のシェーダーを使う場合:頂点バッファをD3DUSAGE_SOFTWAREPROCESSINGでつくり、SetSoftwareVertexProcessingをTRUEにすればソフトで処理される。
VS2.0のシェーダーを使う場合:頂点バッファを作り、SetSoftwareVertexProcessingをFALSEにすることでハードウェアで処理される。
つまり使うシェーダー毎に頂点バッファの作成フラグも切り替えてソフト/ハード処理を分別するということではないのか?
LunaライブラリとかそうやってたしそのためのMIXEDじゃあないの?
0928デフォルトの名無しさん
2006/07/23(日) 23:04:19VS2.0以下を使うときまでソフトになっちまうじゃねーかって事ね。
0929デフォルトの名無しさん
2006/07/23(日) 23:55:370930デフォルトの名無しさん
2006/07/24(月) 00:06:200931デフォルトの名無しさん
2006/07/24(月) 01:20:580932デフォルトの名無しさん
2006/07/24(月) 06:35:200933デフォルトの名無しさん
2006/07/24(月) 10:30:230934デフォルトの名無しさん
2006/07/24(月) 10:59:54GDIで円を書いたり消したり15ミリセカンドでやってますが、
ディスプレイの書き込みとプログラムの書き込みが干渉するのか、
シマのようなものがチラチラします。
GDI描画をDirectXに差し替えると、
シマを消すことは出来るのでしょうか?
0935デフォルトの名無しさん
2006/07/24(月) 11:06:13円は裏バッファに書いてから、まとめてbitbltするんだ
0936デフォルトの名無しさん
2006/07/24(月) 11:10:410937デフォルトの名無しさん
2006/07/24(月) 11:13:59まぁそれでもチラつきは避けられないが
DirectXはフルスクリーンでなら垂直同期取れるから
チラつきは根絶できる
0938934
2006/07/24(月) 11:32:02おk、でつ。
これは16ミリセカンドの仕様と聞いていたのを、自分が質問するときに15に丸めて書いてしまっただけです。
>DirectXはフルスクリーンでなら垂直同期取れるから
>チラつきは根絶できる
え”−−−−。
まさに知りたい内容でつ。KWSK。
説明サイトでも説明本でも何でも良いから教えて下さい!!!
0939デフォルトの名無しさん
2006/07/24(月) 11:32:13理解出来るようになりますか?
0940934
2006/07/24(月) 11:36:18>チラつきは根絶できる
特にハッキリ知りたいのは、
GDI描画をDirectX描画に差し替えるだけで、DirectAPIの中の人が垂直同期を自動でやってくれるのか、
ということと、
フルスクリーンというのはDirectAPIで、
フルスクリーンモードみたいなものにするってことでしょうか(質問初歩杉?)?
0941デフォルトの名無しさん
2006/07/24(月) 11:39:590942934
2006/07/24(月) 11:54:070943デフォルトの名無しさん
2006/07/24(月) 12:44:16そのまえに最低限ダブルバッファはやっているのかぐらい答えろよ。
やってないなら同期以前の問題だぞ。
0944デフォルトの名無しさん
2006/07/24(月) 13:22:310945934
2006/07/24(月) 13:23:17それなら、一旦裏でデバイスコンテキスト画像作って、
それをCopyRectでコピーしています。
double Bufferedでググルと一杯ありますが、もしかして別のものですか?
>Delphi6で画像のちらつきをなくすには?
>ttp://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+200504/05040066.txt
>ダブル・バッファリングにより描画を行うには?(DoubleBuffered編)[2.0のみ、C#、VB]
>ttp://www.atmarkit.co.jp/fdotnet/dotnettips/449doublebufed/doublebufed.html
>OpenGL アプリケーションに3次元テキストを描画します。
>ttp://support.microsoft.com/default.aspx?scid=kb%3Bja%3B131024
0946デフォルトの名無しさん
2006/07/24(月) 13:29:48ウインドウモードではタイマーを使ってエミュレーションされるだけ。
ウインドウモードでちらつきを抑えるならFPSを合わせるよりも、逆に落とした方が効果的。
んで、フルスクリーン専用でいいの?
0947934
2006/07/24(月) 13:34:17あえて問題とすれば、BCBで作成していますので、
TFormを使うのをやめるのか、
TFormのボタンを押すとフルスクリーンモード(DirectAPIで?)切り替えにするか、
検討が必要ということです。
0948デフォルトの名無しさん
2006/07/24(月) 13:36:180949934
2006/07/24(月) 13:40:43>一旦裏でデバイスコンテキスト画像作って、それをCopyRectでコピーしています。
やっぱり、BitBltの方が速いでしょうか?
あと、グローバルでデバイスコンテキスト画像をコピー直前に作ってますが、
あらかじめ作ってプールしておいた方が良いのかな?
0950デフォルトの名無しさん
2006/07/24(月) 13:41:24# BitBlt() & SRCCOPY なら、ダブルバッファっぽいが
# WNDCLASS で hbrBackground にブラシ設定してたりして…
# さらに InvalidateRect() で再描画要求してたりして…
0951デフォルトの名無しさん
2006/07/24(月) 13:58:070952デフォルトの名無しさん
2006/07/24(月) 14:02:150953デフォルトの名無しさん
2006/07/24(月) 14:18:17/⌒ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ゜Θ゜)< そうでもないよ
| ∵ つ \__________
| ∵ |
\_/
リフレッシュレートに関する論争 だからスレど真ん中。
ttp://matsuzak.pobox.ne.jp/directx/faq/refresh-rate.html
0954934
2006/07/24(月) 14:38:33上サイトみると2000〜1年になってますが、最近のリフレッシュレート論争はどうなってるんでしょうか?
論争に決着が付いて解決方法がDirectXということですか?
0955デフォルトの名無しさん
2006/07/24(月) 15:14:570956デフォルトの名無しさん
2006/07/24(月) 15:42:14#define DIRECT3D_VERSION 0x0800
#include <D3D8.h> or #include <D3D9.h>
#include <D3DX9.h>
とするとd3dx9math.h等でエラーが出てしまいます。
古いSDKと併用するしかないのでしょうか?
0957デフォルトの名無しさん
2006/07/24(月) 16:02:20#include <D3DX9.h>
↓
#include <D3DX8.h>
0958デフォルトの名無しさん
2006/07/24(月) 16:11:07June 2006にはD3DX8.h入ってないのです・・
そこで>>541-549の通りにしてみたんですが・・
0959デフォルトの名無しさん
2006/07/24(月) 16:21:110960959
2006/07/24(月) 16:26:390961デフォルトの名無しさん
2006/07/24(月) 16:27:28ヽ(・ω・)/ ズコー
\(.\ ノ
0962デフォルトの名無しさん
2006/07/24(月) 16:51:47そもそも併用というのがわからん。
DirectX8で作るならDirectX9のSDK入れておく必要ないし。
0963デフォルトの名無しさん
2006/07/24(月) 19:39:20ある回転クォータニオンがあって、そのクォータニオンの半分の回転角を持つ
クォータニオンを作りたいんですが、どのような計算をすればいいんでしょうか?
0964デフォルトの名無しさん
2006/07/24(月) 20:33:000965デフォルトの名無しさん
2006/07/24(月) 20:51:47いや、ですからやり方とかを聞いているのではなくて、
どのような計算をすればいいのかソースとかを書いてほしいんです。
0967デフォルトの名無しさん
2006/07/24(月) 20:59:500968デフォルトの名無しさん
2006/07/24(月) 21:04:12線形であることがクォータニオンの最大の長所。
D3Dだと、D3DXQuaternionSlerpがまさにそれ。
0969デフォルトの名無しさん
2006/07/24(月) 22:00:08ありがとう!これなら出来そうです!まさにもとめていた答えです。
>>966
どちらさんですか?
0970964
2006/07/24(月) 22:16:370971デフォルトの名無しさん
2006/07/24(月) 22:23:370972デフォルトの名無しさん
2006/07/25(火) 00:14:383Dの勉強も兼ねているので9のサンプルをビルドする事もあるので・・
9のSDK入れても互換があるので9,8,7…のSDKとして使えるとどこかで見た気がするんです。>>542さんもそう言ってますし
実際d3d8.hとかは含まれてますし・・
0973デフォルトの名無しさん
2006/07/25(火) 00:16:580974デフォルトの名無しさん
2006/07/25(火) 00:19:43そもそも
#define DIRECT3D_VERSION 0x0800
#include <D3D9.h>
#include <D3DX9.h>
で、よかったはずだぜ。
これで動かないなら動かない仕様になっちゃったんじゃないか?
もしかしてw
0975デフォルトの名無しさん
2006/07/25(火) 00:20:43なんだ?バッファって?
遥か前にDirectInputを弄ったことがあるが覚えが無いな。
0976デフォルトの名無しさん
2006/07/25(火) 00:24:26動きません・・
そういう仕様になっちゃったんでしょうか;
0977デフォルトの名無しさん
2006/07/25(火) 00:25:14>>973
どっちでも
PushやDownのキー状態知りたいならBuffer
0978デフォルトの名無しさん
2006/07/25(火) 00:51:20ヘッダ見た感じだと
#include <D3D9.h>
#include <D3DX9.h>
共に、
#define DIRECT3D_VERSION 0x0900
以上で無いと拒否るようにできてやがんな。
おお、なんか思いだしてきたぞ。
やっぱりヘッダは
#include <D3D8.h>
じゃないと駄目だな。
で、バージョン定数は0x0800で無いと駄目。だな。
と、いうわけで>>974は大嘘だ。スマン。
で、肝心のD3DX8.hは無いな。確かにない。
でもハードディスク検索してみたら、どうやら
C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\prerelease
に入ってるっぽい謎w
とりあえず、これで通せない?w
0979デフォルトの名無しさん
2006/07/25(火) 01:14:19別にSDKインスコする必要はねぇ。
0980デフォルトの名無しさん
2006/07/25(火) 02:07:08うちのHDDには眠ってませんでした;
>>979
納得いきませんがそうします
皆さんお騒がせしました
0981デフォルトの名無しさん
2006/07/25(火) 02:33:290982デフォルトの名無しさん
2006/07/25(火) 02:33:35予期しないEOFというのが出るのですが 対処法わかりませんか?
0983デフォルトの名無しさん
2006/07/25(火) 02:40:53EOFといわれるとファイルIO周りぐらいしか思いつきませんわ
0984982
2006/07/25(火) 02:44:16ビルドをすると このメッセージがでます
デバッグをすると 〜exeファイルが見つかりませんて出ます。
対処法どなたかしりませんか?
0985デフォルトの名無しさん
2006/07/25(火) 02:52:36それはプリコンパイルヘッダをincludeしてないと出るエラーだったかな?
0986デフォルトの名無しさん
2006/07/25(火) 02:54:53俺あまり詳しくないから的外れな事言ってるかもしれんが
以前同じような事になったが、VSで同じミスしてるなら多分
ソースファイル中に、プリコンパイル用ヘッダがincludeされていないと予想
そうするとexeファイルが見つからないのはビルド失敗してるから実行できませんって意味
#include "stdafx.h"
全てのcpp(c/cxx)にこれ追加してもダメ?
0987986
2006/07/25(火) 02:58:560988デフォルトの名無しさん
2006/07/25(火) 08:24:27GetDeviceState/GetDeviceDataの話?
即時データを取得したいのか変化イベントを取得したいのか
開発の要求に合わせて選択すりゃいいんじゃね
0989デフォルトの名無しさん
2006/07/25(火) 19:31:08ポリゴン1つ分の領域(頂点3つ分)をLockして、DrawPrimitiveで描画するとうまくいくのですが、
メッシュ全部のポリゴンを一度にLockして描画すると、うまくいきません。
IDirect3DVertexBuffer9::Lock()はD3D_OKを返しているのですが、
確保した領域に書き込もうとするとなぜか落ちてしまいます。
VRAMもメインメモリも十分にあると思うんですが、
何か原因に心当たりのある方いましたらレスください。
0990デフォルトの名無しさん
2006/07/25(火) 20:49:570991デフォルトの名無しさん
2006/07/25(火) 20:57:470992989
2006/07/25(火) 21:06:45CreateVertexBufferでサイズの指定をポリゴン1つ分しかしてなかっただけでした。
>>991
勝手にレスしないでください。
0993デフォルトの名無しさん
2006/07/25(火) 21:14:300994デフォルトの名無しさん
2006/07/25(火) 21:27:54次スレでまた聞いてくれ。
0995デフォルトの名無しさん
2006/07/25(火) 21:39:29http://pc8.2ch.net/test/read.cgi/tech/1153831096/
0996デフォルトの名無しさん
2006/07/25(火) 21:50:380997デフォルトの名無しさん
2006/07/25(火) 22:06:330998デフォルトの名無しさん
2006/07/25(火) 22:22:090999デフォルトの名無しさん
2006/07/25(火) 22:26:36GOTOの日
1000デフォルトの名無しさん
2006/07/25(火) 22:32:20バーか死ねクズ
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。