【C++】 DirectX初心者質問スレ Part9 【C】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
後は面倒だから勝手にやってくれ頼むよ
2デフォルトの名無しさん:2006/04/13(木) 07:50:07
鬱だ、2get
3デフォルトの名無しさん:2006/04/13(木) 12:20:42
3ktkr
4デフォルトの名無しさん:2006/04/13(木) 13:04:30
糞スレに認定されました。
5デフォルトの名無しさん:2006/04/13(木) 13:36:00
前スレは凄いギャグで占めやがったな・・・
6デフォルトの名無しさん:2006/04/13(木) 13:39:39
999 名前:デフォルトの名無しさん[] 投稿日:2006/04/13(木) 01:49:02
お、なんかいいこと思いついたぞ。
DrawPrimitiveのVertexBufferを一括確保してる奴等さ、
一括確保するVertexBufferを2つ用意してフレームごとに交互に使えば
もしかして速いんじゃねぇの?

1000 名前:デフォルトの名無しさん[sage] 投稿日:2006/04/13(木) 01:51:41
フレームごとじゃないか。
DrawPrimitiveごとか。
7デフォルトの名無しさん:2006/04/13(木) 14:32:39
本気で言ってそうだから怖いよな。
8デフォルトの名無しさん:2006/04/13(木) 15:12:09
質問です。
C++/CLIでマネージドC++の検証を始めたのですが、
てっきりマネージドC++のDirectXもあるもんかと思ってたら見当たりません。

MDXってC#かVBオンリーなんでしょうか?
うーんC++/CLIとWindows Formで3Dツール作って見たかったんだけどなぁ。。
9デフォルトの名無しさん:2006/04/13(木) 15:34:43
.NETはよく知らんけど使えるんじゃない?
プロジェクトのプロパティの「参照設定」の「参照の追加」。
10デフォルトの名無しさん:2006/04/13(木) 15:49:51
ManagedのヘルプにC++も載ってるが。
11デフォルトの名無しさん:2006/04/13(木) 15:54:02
テンプレ

・ヘルプも読まない人はお帰りください
12デフォルトの名無しさん:2006/04/13(木) 19:21:56
テンプレもうやむやのうちに破棄されたし
もうDirectXだったら何でもありだろ
13デフォルトの名無しさん:2006/04/13(木) 23:39:32
前スレ2DSTG側の自演酷くない?
さすがにシェーダを切り替えない前提でしか効果がないなんて使いどころない。
14デフォルトの名無しさん:2006/04/14(金) 06:58:11
今までDirectXApplicationWizard使ってたけど乗り換えようと思う
最近のナウでヤングなDirectXフレームワーク教えてちょ
15デフォルトの名無しさん:2006/04/14(金) 08:43:05
CYamaD3DRM
16デフォルトの名無しさん:2006/04/14(金) 12:08:46
2DSTG側ってどっちだ?
・DP呼び出しは減らす方がいい、バッファにまとめて描画、DP減らすほうが速い派
・纏めるなんてCPUのやフィルレートの無駄、そんなんするならくらいならDP呼びまくるほうが速い派
だと思ったが。
17デフォルトの名無しさん:2006/04/14(金) 13:14:12
あの議論を2DSTG側、なんて見方をする人はつまり…
18デフォルトの名無しさん:2006/04/14(金) 13:29:35
8です。
>9
さん、参照を設定したらイケました。
これから勉強してみようと思います。ありがとうございました!
>10
さん
サンプルの詳細まで見てませんでした(C++のマネージなのかアンマネージなのかまで。。)
19デフォルトの名無しさん:2006/04/14(金) 18:41:19
質問です。

よく 「DirectX9.0 に対応したグラフィックカード」 という言葉を目にしますが、対応とは何の事を指すのでしょうか?
GeForce2 MX400 上でもDirectX9.0は動きますが、「GeForce2 MX400 は DirectX9.0 に対応したグラフィックカード」 とは呼べませんよね?
では対応とは何なのか。。。 そこが全く分かりません。

分かる方、お願いします。
20デフォルトの名無しさん:2006/04/14(金) 19:13:15
>>19
メーカーとかライターが勝手に言ってるだけで、明確な決まりはないよ。
MSはそんな基準を作ってない。
2119:2006/04/14(金) 19:21:22
なるほど。
ありがとうございました。
22デフォルトの名無しさん:2006/04/14(金) 21:38:41
>>16
上は2DSTGオンリーで下は視点が動く3Dゲー
23デフォルトの名無しさん:2006/04/14(金) 21:45:33
>>22
つ弾幕
24デフォルトの名無しさん:2006/04/14(金) 23:38:29
質問があります。
どうもいまいち2Dの使い方がわからないのですが。
25デフォルトの名無しさん:2006/04/14(金) 23:44:53
フーン。
26デフォルトの名無しさん:2006/04/14(金) 23:49:47
DirectXって今比較的詳しい参考書が出てるのは9.0なんでしょうか?

一応見よう見まね(変数以外ほぼ同じ)で2Dグラフィックのみ表示できたのですが…
それ以上があまり分からず簡単な参考書が知りたいのですが…
27デフォルトの名無しさん:2006/04/15(土) 00:13:22
君が持っているのが
一番簡単な参考書だと思うよ。

ほかのやつもどれも一緒だと思われる。
28デフォルトの名無しさん:2006/04/15(土) 00:20:13
>>26
簡単な参考書なんてない。
簡単そうに話してはいるものの役に立たない本はいっぱいあるけどw
やっぱり、成熟してない分野だから敷居は高いよ。資料もワードやエクセルとかと比べるとそんなねーし。

ので、まずやりたいことを書いて具体的に最短の道を探すのが最短じゃね?
3Dが必要なのかそうでないのかでもやることが違うし、
前に質問しにきた奴では実はプログラムでムービー再生したかっただけみたいな人もいたし。
発展として3Dを望むならある程度きついもんが必要になるだけに中途半端な出だしはさせたくない
っていうのはあるね。
ただ、資料とか今後のサポートとかを考えるとDirectXのバージョンはまちがいなく9がいい。
29デフォルトの名無しさん:2006/04/15(土) 05:50:43
上司が社内ライブラリしか認めてくれません。
DirectSoundは使うけれどDirectDrawも駄目で、それが業界の常識らしいです。
30デフォルトの名無しさん:2006/04/15(土) 09:17:53
上司の弱みを握るか上司の奥さんを寝取るしかないな
31デフォルトの名無しさん:2006/04/15(土) 09:42:24
>29
エロゲ業界ではそれが常識です。
32デフォルトの名無しさん:2006/04/15(土) 09:43:38
それどんなエロゲ?
33デフォルトの名無しさん:2006/04/15(土) 10:05:19
そういえば、DrawPrimitiveで一括描画が言及されてる参考書ってあるのかな?

前作った3Dゲームは、ウィンドウとか文字とか2D周りの部分は一括描画、
3Dモデルだけモデル単位で描画やってたな・・・。
34デフォルトの名無しさん:2006/04/15(土) 12:49:12
>>33
弾幕STGみたいにたくさんでないなら。

2D部分の不透明->3D部分の不透明->3D部分の半透明->2D部分の半透明

って順番で描画するとZBufferが助けてくれるかな。
すくなくとも不透明と半透明はわけたほうがいいぞ。
不透明が前面にあればそっから後ろのピクセルは描かなくていいわけだから。
35デフォルトの名無しさん:2006/04/15(土) 19:48:54
>>27-28
成程、ちなみに自分がやりたいのはゲーム製作関連(2D、3D)とネットワーク通信です。

やっぱ「DirectX9 DirectX Graphics」と「DirectX9 実践プログラミング」が一番簡単なのかな?
36デフォルトの名無しさん:2006/04/15(土) 20:03:20
簡単ってーか手を付けられやすいって漢字じゃない?
チュートリアルも併せて進行させればいい感じじゃない?
37デフォルトの名無しさん:2006/04/15(土) 20:14:30
>>35
3Dもやるならいきなり3Dから入ったほうがいい。
3Dができれば2Dを勉強してる期間なんて無駄だと思えるぐらいに実力がつく。
まずはチュートリアルどおりにプログラムを組んで実行してみれば次のステップが自然とわかる。
38デフォルトの名無しさん:2006/04/15(土) 20:17:18
>>35
いちいちこんな所で聞いてる暇があったら、さっさと買ってきて嫁
39デフォルトの名無しさん:2006/04/15(土) 20:31:27
>>37
成程、3Dからですね。ありがとうございます。
40デフォルトの名無しさん:2006/04/16(日) 00:11:57
DirectX7の質問ですがよろしいでしょうか。

DDSURFACEDESC2 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;}

でプライマリサーフェイスを作ろうとしてるのですが、ことごとく失敗します。
要因はどこにあると思いますか?
41デフォルトの名無しさん:2006/04/16(日) 00:38:40
>>40
やっぱ、エラーコードみるしか・・・。
それとDirectDrawオブジェクトの初期化にそもそも失敗してるとかない?
4240:2006/04/16(日) 00:52:52
試しにフリップしないでやる方法やってみたらできたんで、ここが問題だと思います。
43デフォルトの名無しさん:2006/04/16(日) 01:07:11
あ、もしかしてウィンドウモードで実行してない?
44デフォルトの名無しさん:2006/04/16(日) 01:08:58
ウィンドウモードだと無理なんですか?
なんと根本的なミスだったんだ・・・
どうもありがとうございました。
45デフォルトの名無しさん:2006/04/16(日) 01:16:02
>>44
まだ、DirectX7なんてやるきなのー。
ウィンドウモードとフルスクリーンで処理別々にしなきゃいけないし、
無駄に疲れるだけでいいことないと思うけどナー。
せっかくシステム整えてもいつ切られるかわからないぞ。
もう、はじめに気合入れて最新のDirectX習得しちゃってあとは更新されるごとに
差分だけ覚えていくほうが楽だと思うんだけどなぁ・・・。
46デフォルトの名無しさん:2006/04/16(日) 01:22:00
>>45
どうせ2Dのゲームしか作らないだろうからと思ったんですけど、
DirectX9の方がいいですかね?
ノートPC使ってるんで速度がちゃんとでるか心配だったのもあるのですが。
47デフォルトの名無しさん:2006/04/16(日) 01:34:32
>>46
>ノートPC使ってるんで速度がちゃんとでるか心配だったのもあるのですが
最近のハードは大体3Dアクセラレータがついてると思われるのでDirectX9でいいと思われ。
それに2Dだと画像の回転とか拡大縮小とかも簡単にはできないかも。
まず、何をやるにも(今回のことにしても)情報が少ないしいいことないと思うよ。
DirectX7の日本語ヘルプはどっかで手に入るかもしれないけどそれで終わりじゃないわけだし。

あと、どういう状況におかれてるのか知らないけど
「2Dのゲームしか作らないだろうから」とかなんでそんなカッキリきめちゃえるのかわからないな。
とりあえず、あまりよく知らない人が当然2Dの機能でできる(と思われる)ことがことごとくできないのが2D機能だよ。
ホント単純な矩形の描画しかできない。アドベンチャーゲームの人物を表示して後ろに背景があってって処理もちょっと苦労する。そんな世界。
48デフォルトの名無しさん:2006/04/16(日) 01:40:59
そうですね。
DirectX7のこともどんなもんかわかりましたし、DirectX9の方を勉強したいと思います。
どうもありがとございました。
49デフォルトの名無しさん:2006/04/16(日) 15:01:54
rhwって何ですか?
50デフォルトの名無しさん:2006/04/16(日) 15:04:03
RedHat Windows
51デフォルトの名無しさん:2006/04/16(日) 15:14:21
>>49
3DCG講座 - 第17回 - rhwとは何か
glossary.tank.jp/t0A17.html
52デフォルトの名無しさん:2006/04/16(日) 19:41:28


チラシの裏

ボーン無しのメッシュとはD3DXIntersectで正常に当たり判定できたけど、
ボーン付き(アニメーション)ではメッシュが変化するのでうまくできない。
53デフォルトの名無しさん:2006/04/16(日) 19:48:38
>>52
XYZの要素が1,1,1のバウンディングボックスのマトリックスをアニメーションさせるモデル(ボーン付きの)につっこんで
デザイナさんに回転要素なしでキーフレームごとに調節してもらえ。
そうすればいっしょにアニメーションさせれば、アニメーションにあわせて変化するバウンディングボックスの出来上がり。

XYZの要素を111にするのは計算しやすくなるからってただそれだけ。
こうしておけばマトリックスだけとれば平行移動と拡大縮小だけをみれば範囲がとれて計算が非常に楽。
54デフォルトの名無しさん:2006/04/16(日) 19:55:50
ここ↓ちょっとわかりずらかった

XYZの要素が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で構成される立方体のモデルで
アニメーションさせるのはその立方体のマトリックスな。
55デフォルトの名無しさん:2006/04/16(日) 21:56:40
Xflieから、ボーンごとに主成分分析してボックス生成がデフォ
絵心ない奴は全部計算でやるしかない
56デフォルトの名無しさん:2006/04/16(日) 22:20:53
>>55
はぁ?
立方体の拡縮のアニメーションをつけるのがそんなにやっかいか?
>>53-54のレスの意味わかって言ってるのかと。
57デフォルトの名無しさん:2006/04/16(日) 22:25:42


//! 頂点ブレンド
m_pd3dDevice->SetRenderState(D3DRS_VERTEXBLEND, NumBlend);

で座標を変換したいのだが
これってレンダーのみなのね。
58デフォルトの名無しさん:2006/04/17(月) 17:11:10
キー入力のエミュレート方法をお教えt
keybd_eventでは限界なので、DirectXに手を出そうとしてる・・

そもそも、DirectXで実現可能なのかどうかさえ分からない
GetDeviceDateに対して、SendDeviceData使えばいいのか・・って
ものでも無さそうだし、大体”使ってはならない”って一体・・

ゲームそのものではなくて、ゲーム用のツール作成が目的なんds
59デフォルトの名無しさん:2006/04/17(月) 17:18:52
日本語で頼む
6058:2006/04/17(月) 17:55:27
キーマクロを実行するプログラムを作りたい。

WinAPIのkeybd_eventでは動作しないソフトに
DirectXからキー入力を送信できれば、どうか?
・・という動機なんだけど。。。

>>59 まだオカシイデスカ?
61デフォルトの名無しさん:2006/04/17(月) 19:06:30
DirectXでそんなことはできない。
62デフォルトの名無しさん:2006/04/17(月) 23:44:05
>>54-56
地面みたいなでかいメッシュとはどうすればいい?
BOX作ると、地面には合わなそう 精度高めるとBOXがかなり増えるし。低いと地面にめり込むし。


それと、
ボーン変換って普通ソフトでやるの?
頂点ブレンド を使えばハードできるので負荷減らせるけど変換後の座標取得ができないので当たり判定できないYO、
やっぱ、ソフトで変換していくしかないのかな・・・いろいろ出来るし 重いけど。
頂点ブレンドって実際はソフトで計算してたりしてw
63デフォルトの名無しさん:2006/04/17(月) 23:51:48
>>62
お前が何をいっているのかまったくわからない。
64デフォルトの名無しさん:2006/04/18(火) 00:01:44
下のほうはチラシの裏でおk。

変化する地面との当たり判定の方法が知りたい。
65デフォルトの名無しさん:2006/04/18(火) 05:34:36
対戦格闘ゲームは境界ボックス単位の判定でいける。
変形するハイトフィールドは別として、
ワンダと巨像っぽいのであれば、判定用モデルが
ボーンの変形を伴わない多間接モデルで結構できそうな気がする。

66デフォルトの名無しさん:2006/04/18(火) 05:36:30
いや、格闘ゲームならむしろモデルの動きと関係ない判定付けるかもな
67デフォルトの名無しさん:2006/04/18(火) 07:12:14
>>64
ハイトフィールドだったら多少頂点が上下に動いたところでなんでもねーじゃん。
68デフォルトの名無しさん:2006/04/18(火) 07:43:06
DirectSoundを参考書どおりに組んでみたら何故かdsound.hにエラーが…
69デフォルトの名無しさん:2006/04/18(火) 08:14:19
>>68
本とバージョンを合わせろ
70デフォルトの名無しさん:2006/04/18(火) 08:41:10
>>69
Direct9のDirectSound8インターフェイスで同じ…だと思う。

構文エラーばかり出るけど。
71デフォルトの名無しさん:2006/04/18(火) 11:20:43
>>70
年度と季節も合わせたか?
書籍に付属してるならそれを入れろ

エラーと書籍名ぐらい書け
もしVS2005で文字コード云々なら保存しなおせ
72デフォルトの名無しさん: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を変えても変わりませんでした。
想定される原因がわかれば教えて下さい。
73デフォルトの名無しさん:2006/04/18(火) 12:36:18
>>72
その移動ってのは SetTransform じゃなくて
頂点データを直接書き換えてるの?
それなら、そこが間違ってるとかロックの仕方が変とか
じゃないかしら。
あと一応REFでも確認するべきね。
74デフォルトの名無しさん:2006/04/18(火) 13:20:47
>>72
ドライバ
7572:2006/04/18(火) 16:17:06
>73
>頂点データを直接書き換えてるの?

そうです
ただ、回転とかでもなく、単純にY座標を0.001加算して描画するだけのテストでも
発生するので丸め誤差とかの問題ではないはずなのですが…

>74
それもちょっと疑ってます
テストで使ってるのがRivaTNTなもんで

実はcodesampler.comのコードをいじって勉強中なんだけど、このコード
REFで初期化したら何も描画されなくなった ナンダコレ orz
7672:2006/04/18(火) 17:24:16
855GEMでも駄目だった…
頂点書き換え止めてSetTransformなら継ぎ目は出ないのになぁ
自力変換してる人は同じ現象は出ないんだろうか
77デフォルトの名無しさん:2006/04/18(火) 20:39:49
>>71
なんかdsound.hをincludeした時点でエラー出てるや。
dmusiciにしときます。
78デフォルトの名無しさん:2006/04/18(火) 22:13:44
>>76
やっぱなんか計算間違ってんじゃねーの?
7972:2006/04/18(火) 23:42:38
>>78
疑心暗鬼にかられて計算値を検証しますた。流石に間違ってなかったです。
フレーム切替え時に継ぎ目が見え、静止状態では出ないので、フレーム更新
のタイミングに問題があるのかな、と

現象が出る最小コードをうぷしました
http://gamdev.org/up/img/5335.zip

切り分けたら画像を「上から下」に移動させた時と「右から左」に移動させた場合に発生し、
それぞれ「下から上」、「左から右」に移動させた場合には問題ないんだよな…
マジでわからん
80デフォルトの名無しさん:2006/04/18(火) 23:57:12
見たけど、これは高度なネタなのかしら…
81デフォルトの名無しさん:2006/04/19(水) 00:07:48
>>79
とりあえず299行〜313行をforの外に出せば
MissionCompleteみたいよ。
82デフォルトの名無しさん:2006/04/19(水) 00:08:04
>80
つ[【C++】 DirectX初心者質問スレ Part9 【C】]

答える気が無いなら煽らない
8372:2006/04/19(水) 00:10:23
>>80-81
ワカタ…首吊りたい


誰か首吊りスレ教えれ
84デフォルトの名無しさん:2006/04/19(水) 13:05:56 BE:29115353-
>>83
鬱だ氏のう DirectX (Part 16)
http://pc8.2ch.net/test/read.cgi/tech/1133007002/
85デフォルトの名無しさん:2006/04/19(水) 16:22:31
今日からDirectX始めてみようと思います!
よろしくお願いします!
押忍!
86デフォルトの名無しさん:2006/04/19(水) 16:52:12
>>85
よし、まずはパン買ってこい
87デフォルトの名無しさん:2006/04/19(水) 20:00:38
昔、DirectXのステンシルバッファ使って
ブーリアン演算してたサイト見たんだけど知らない?
88デフォルトの名無しさん:2006/04/19(水) 22:02:46
89デフォルトの名無しさん:2006/04/21(金) 01:04:41
誰か,SLIかCrossFireでDirectXいじっている人いねーっすか?
色々と特殊なプログラミングしないといけないのかしら.
二枚のカードを別々に叩けるのかしら.

……まぁ,二枚別々に叩いても,何に使うんだろうって感じなんだけど.
使えるなら使えるで,何かネタっぽい使いかたが思いつくかもしれん.
90デフォルトの名無しさん:2006/04/21(金) 01:06:43
( ゚д゚)ポカーン
91デフォルトの名無しさん:2006/04/21(金) 03:02:41
無知が行き過ぎて知ったかになったという珍奇な症例
92デフォルトの名無しさん:2006/04/21(金) 10:01:26
ワラタ
93デフォルトの名無しさん:2006/04/21(金) 19:07:44


チラシ

ハードとソフトのボーンアニメーション比べたら
20%ぐらいハードの方が早かった、ハードでアニメーションできるとは
94デフォルトの名無しさん:2006/04/21(金) 19:50:36
( ゚д゚)ポカーン
95デフォルトの名無しさん:2006/04/21(金) 21:02:34
釣りなら釣りとメーr
96デフォルトの名無しさん:2006/04/21(金) 22:25:58
ハードでも♪ソフトでも♪コンタクトレンズをつけたまま♪
97デフォルトの名無しさん:2006/04/21(金) 22:34:11
せーのっ!

ば・び・ぶ・べ・ぼーん!
98デフォルトの名無しさん:2006/04/21(金) 23:10:02
>>93
Radeon9600proではスキンメッシュのサンプルで
ソフト→130fps
ハード→796fps
ですがなにか?
99デフォルトの名無しさん:2006/04/21(金) 23:10:46
>>98
で?
100http://delphi-delphi.tripod.com/delphi.htm:2006/04/21(金) 23:12:25
delphi
101デフォルトの名無しさん:2006/04/21(金) 23:17:21
>>99
20%なんてどこに目ぇつけてんの?死ねば?
だってさw
102デフォルトの名無しさん:2006/04/22(土) 00:17:45
ハードとソフトの差は、CPUとビデオカード次第だしなぁ・・・
103デフォルトの名無しさん:2006/04/22(土) 00:19:22
>>98
うわはぁ
爆速、うちのボード弱いのか・・。
104デフォルトの名無しさん:2006/04/22(土) 11:34:11
まぁ普通に考えてソフトのが速いなんて状況はないわな・・・
105デフォルトの名無しさん:2006/04/22(土) 11:48:34
( ゚д゚)ポカーン
106デフォルトの名無しさん:2006/04/22(土) 12:40:56
>>103
ゲーPGなのにノート買って失敗した馬鹿だろ?
大変だな。
こんな失敗1つで就職する機会すら逃しちまうんだから。
いっとくけど、今の時代シェーダも使ってないような就職作品作ってくる奴なんか
すくなくともうちじゃいらないから。
入門書みればだれでもできると思うけど、ハードがサポートしてないんじゃしょうがないよね。
まあ、運が無かったとあきらめればいいよ。
107デフォルトの名無しさん:2006/04/22(土) 13:39:22
2DSTGを送ってくる場合、コミケでいうと、100作って\1000で売って完売なレベルじゃないと門前払いですね。
評価する側からすれば、むしろ敷居が高いんですよ。
108デフォルトの名無しさん:2006/04/22(土) 14:24:42
>>106
見事にノート。
ゲーPGではない。
最近、就職、就職とかいってるけど落ちたの?がんばれ。
俺は、PGにはなりたくないな、低賃金 過酷な労働条件・・・
趣味でさえつらいのに 職には出来んなw

109デフォルトの名無しさん:2006/04/22(土) 15:22:26
コミケで売れるかどうかとプログラムの腕はあまり関係ないような・・・・・・
110デフォルトの名無しさん:2006/04/22(土) 16:04:59
頂点シェーダーなら別にハードで対応してなくてもそこまで酷いことにはならないんだが。
そもそもノートPCだからシェーダー対応ボード乗ってないなんてこと無い。
MobilityRadeon9700搭載とかのノートは普通にハードウェアで対応してるよ。

PGの利点は仕事中に2ch徘徊できることだろうw
休日出勤してて言ってもむなしいだけだがな・・・
111デフォルトの名無しさん:2006/04/22(土) 16:31:13
>頂点シェーダーなら別にハードで対応してなくてもそこまで酷いことにはならないんだが。

シェーダーの処理内容や容量などの前提条件すら出さず、勝手に脳内で結論を出す典型的な馬鹿。
112デフォルトの名無しさん:2006/04/22(土) 17:20:16
国内のゲームでVertexShaderの能力を使い切ってるゲームなど存在しない件について
>>106あたりも脳内開発者
113デフォルトの名無しさん:2006/04/22(土) 17:26:12
日本だとオリジナルで3DゲームなんてPCじゃろくに出てないしな
114デフォルトの名無しさん:2006/04/22(土) 17:27:55
必用な処理を必用なだけ処理させればいいだけの話なのに、
何故使い切るとか頓珍漢な言葉が出てくるんだろう?
115デフォルトの名無しさん:2006/04/22(土) 17:34:07
>>112
はぁ?
PS2で出てるゲームだって頂点処理なんてかかってるじゃん。
どこみてるんだ・・・マジで。
116デフォルトの名無しさん:2006/04/22(土) 17:35:47
>>115
VertexShaderの話してるのになんでVUの話になってるんだ?
どこみてるんだ・・・マジで。
117デフォルトの名無しさん:2006/04/22(土) 18:03:55
>>116
はぁ?
要は頂点処理ができるかどうかをみたいってところだろ。
118デフォルトの名無しさん:2006/04/22(土) 18:15:04
それならシェーダーじゃなくても別にソフトウェアレンダラーでもなんでもよくね?
119デフォルトの名無しさん:2006/04/22(土) 18:21:55
>>118
俺もそれで頑張ってたけど、それだと実用的な速度がわからない。
ハードやるのとソフトでやるのとじゃ7〜8倍も違っちゃうからゲームで実際に使うと
すごく差がでる。
120デフォルトの名無しさん:2006/04/22(土) 18:30:32
ゲーム作るならソフトウェアレンダラーは厳しいだろうな・・
レンダラーはレンダラーで作品のひとつとして提出すれば評価対象になるからいーんでね。
121デフォルトの名無しさん:2006/04/22(土) 20:16:40
ところで作品を審査するPCってどんなスペック?
122デフォルトの名無しさん:2006/04/22(土) 20:29:40
( ゚д゚)ポカーン
123デフォルトの名無しさん:2006/04/22(土) 20:38:06
J( ゚д゚)しオカーン
124デフォルトの名無しさん:2006/04/22(土) 20:53:41
 (;;゚;;) ミカーン
125デフォルトの名無しさん:2006/04/22(土) 21:01:03
作品を見る可能性が高いのは開発現場のプログラマではなく、総務部の人事担当だからね
その彼に割り当てられたデスクトップPCを想定してください
126デフォルトの名無しさん:2006/04/22(土) 21:04:19
確かに、例えばDirectXでシェーダばりばりのプログラムを送ったとして、
それなりの環境で実行してくれるのかしらね。

家に持って帰ってハイエンド環境で実行してくれる
お茶目な担当さんだといいわね。
127デフォルトの名無しさん:2006/04/22(土) 21:12:26
学校のテストじゃないんだから・・・
128デフォルトの名無しさん:2006/04/22(土) 21:41:22
>>121
マヂレスしちゃうけど、うちの会社で動作確認するPCはこれ。

社長用:P4-3/1GB/GF5700/XP
人事用:P4-2/512MB/RADE9200/2000、Cele-1.?/512MB/オンボード/XP(ノート)
最低環境用:P2-266/192MB/オンボード/98、P3-1/256MB/TNT/ME

一次通過したものはグラマさんらも手があいたら確認してくれる。
グラマ志望の場合、限られた環境でどれだけ動作するものが作れるかを見ている。
129デフォルトの名無しさん:2006/04/22(土) 21:42:55
>例えばDirectXでシェーダばりばりのプログラムを送ったとして、

いくら頑張った所でそんな所は評価されない
見るところはコンテンツとしての出来であって瑣末なコーディングではない
130デフォルトの名無しさん:2006/04/22(土) 21:45:09
>最低環境用:P2-266/192MB/オンボード/98、

その世代のオンボードはD3Dは無いワケだが
さてはエロゲ屋だな
131デフォルトの名無しさん:2006/04/22(土) 21:54:22
別にプロにならなくてもいいと思うよ。
多分理想とのギャップに幻滅するよ。
「プロの仕事≒やっつけ」だからな。
132デフォルトの名無しさん:2006/04/23(日) 00:54:30
あ、あの、なんか変な雰囲気だけど質問してもいい…?
オクトツリーって単純な空間分割(軸沿の格子に登録)と比べて
どんなところがいいの?
今後者でやってるんだけどオクトツリーにした方がいいのかな
ちなみにオクトツリーについて知っているのは8分割の再帰構造って
ことくらい…
133デフォルトの名無しさん:2006/04/23(日) 01:04:18
線形サーチ O(N)
バイナリサーチ O(log2(N))

134デフォルトの名無しさん:2006/04/23(日) 01:09:03
>>132
正直、洋ゲーみたいなかなり広大な敷地でも作らない限り
オクトツリーなんていらないと思う。
格子状の分割の方がゲームで扱うときにどの格子がどれなのかわかりやすいから
俺はこっちのが便利だったけどな。(アクション)
ただ、レースゲームなんかとなるとどうだろな?
作ったことないけど・・・w
135デフォルトの名無しさん:2006/04/23(日) 01:14:12
>>132
つーか、格子状の奴って2Dマップのチップ並べるときみたいな
1マスの縦横のサイズがいくらいくらでXZ座標がわかるとそれぞれの要素を
サイズでわるといっぱつで範囲が確定する奴だろ?
速さ的には一番速いんじゃね?
136デフォルトの名無しさん:2006/04/23(日) 01:19:25
octtreeにしないと、
ものがあんまり無いとこはスカスカのくせに物が
いっぱいあるとこは1マスの中に物が沢山あって分割した意味なくなるじゃん。
  ↓
ピコーン! (AA略)
  ↓
いっぱいあるとこはさらに分割すればいい!
  ↓
オクトツリー
137デフォルトの名無しさん:2006/04/23(日) 01:28:01
>>136
いや、そこまでする状況ってそんなないと思うんだけど・・・
とりあえずテキトウな数に分割されてりゃいいわけだから。
処理的に理解しやすいし、楽だからおれは格子状の分割でもいいと思うよ。
ただ、オクトツリー使うのも自由だけど。
でも、オクトツリーでなきゃ駄目ってのはかなり立派なゲームじゃないとただのオナニーで終わると思う。
138デフォルトの名無しさん:2006/04/23(日) 01:54:56
なーんだ、みんな大したもの作ってないんだね
安心した
139デフォルトの名無しさん:2006/04/23(日) 02:37:42
この流れでにナニに安心してるのかわからん。
140デフォルトの名無しさん:2006/04/23(日) 07:48:24
>>130
「元」エロゲ屋なので、当時の名残りで同じPCが使われている。
店頭デモ用PCは競い合いが激しいので、たまにハズレ引いたこと考えて古いPCを残してあるわけ。
141デフォルトの名無しさん:2006/04/23(日) 08:30:32
エロゲ屋はriva128でも対応してろw
142デフォルトの名無しさん:2006/04/23(日) 11:31:44
ITmedia +D LifeStyle:情報過多が作り出す「Level1飛空艇」症候群 (1/3)
http://plusd.itmedia.co.jp/lifestyle/articles/0604/17/news012.html
143デフォルトの名無しさん:2006/04/23(日) 11:40:09
Visual Studio .NET 2003 と
DirectX の SDK を入れると、
144間違えました:2006/04/23(日) 11:41:17
Visual Studio .NET 2003 と Visual Studio 2005 を使っています。
DirectX の SDK を入れると DirectX を使ったプログラムを
作成するための専用のプロジェクトテンプレートが
用意されるのでしょうか?
145デフォルトの名無しさん:2006/04/23(日) 12:03:09
されないよ
146デフォルトの名無しさん:2006/04/23(日) 17:25:52
されるよ馬鹿
147デフォルトの名無しさん:2006/04/23(日) 17:38:50
>>145 >>146 う〜む、どっちなんでしょう。
http://www.microsoft.com/japan/msdn/directx/japan/dx9/wizard1.gif
の様に VB の AppWizard が出るのは VB.NET 2003 のみということですか?
148デフォルトの名無しさん:2006/04/23(日) 17:39:55
ちなみに、VS.NET 2003 は VC++ / VC# のみインストールしていて、
VB.NET はインストールしていないのでちょっと確認できません。
いま手元に VS.NET 2003 のインストールCDが見あたらないので。
149デフォルトの名無しさん:2006/04/23(日) 17:51:03
されないよ
150デフォルトの名無しさん:2006/04/23(日) 17:54:28
一応 VS.NET 2003 と VS 2005 の両方をインストールした
環境に DirectX 9 SDK を入れると、両製品にそれぞれ

DirectX extensions for Visual Studio
DirectX extensions for Visual Studio .NET

が追加されているので、ちゃんとインスコされてる見たいです。
>>147 の画像見てもしやなんらかの便利なウィザードが!?
と妙な期待を持ってたので混乱していたようです。
お騒がせしました。
151デフォルトの名無しさん:2006/04/23(日) 18:04:31
されるよ馬鹿
152デフォルトの名無しさん:2006/04/23(日) 18:08:10
お前が馬鹿
153デフォルトの名無しさん:2006/04/23(日) 18:36:29
俺が馬鹿
154デフォルトの名無しさん:2006/04/23(日) 18:38:50
されないよ
155デフォルトの名無しさん:2006/04/23(日) 19:37:02
うるさい!
そんなに喧嘩ばかりするならプログラムなんて組まなくてよろしい!
PCなんて捨てちまえ!
156デフォルトの名無しさん:2006/04/23(日) 19:39:23
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
                        |
       ____.____    |
     |        |        |   |
     |        | ∧_∧ |   |
     |        |( ´∀`)つ ミ | <うるせーな!ちくしょう!やめてやる!ほらよ!
     |        |/ ⊃  ノ |   |
        ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄    | \\\

                         PC
157デフォルトの名無しさん:2006/04/23(日) 20:15:07


OBBの当たり判定の計算の仕方教えてくれ。
細かくではなくて、流れだけでもいい。
158デフォルトの名無しさん:2006/04/23(日) 20:17:55
ここは初心者スレであって、教えてクンスレではありません。
159デフォルトの名無しさん:2006/04/23(日) 20:20:20
>>157
http://www.amazon.co.jp/exec/obidos/ASIN/493900791X/
ぐぐったらこの本に書いてあるって書いてあった。
知識が無いなら金だせよ。
それも嫌なら辞めちまえw
160デフォルトの名無しさん:2006/04/23(日) 21:39:51
>>158-159

ありがとう。

中心間の距離

分離軸の算出

長さの比較

分離軸同士の外積

さらに分離軸同士で外積。

ってすれば、いいんですね。

 
161132:2006/04/24(月) 02:38:42
>>134-137
どうもです。
オクトツリーは広大な敷地の時、メモリコストで勝るって感じでしょうか?
(単純な分割では最低でも分割格子分だけのジャンプ先アドレス情報が必要になるわけで。)
…あとは単純な分割だと大きい当たり判定の登録が効率わるいって感じでしょうか…。
オクトツリーだと格子をまたぐものの登録は階層を下にたどらないわけですよね?
162デフォルトの名無しさん:2006/04/24(月) 02:43:50
DirectXと何の関係が?
163デフォルトの名無しさん:2006/04/24(月) 21:36:42
性的な意味で
164デフォルトの名無しさん:2006/04/24(月) 21:38:56
GDC2006でDirectseX出てたみたいだなw
165デフォルトの名無しさん:2006/04/25(火) 12:23:35
DirectShowでmp3再生しているのですが、
音量の指定ってできないのでしょうか?
166デフォルトの名無しさん:2006/04/25(火) 12:51:21
できる。
MP3は権利関係めんどいからうっかり同人や商業で出すなよー。
167デフォルトの名無しさん:2006/04/25(火) 12:58:15
>>166
ありがとうございます
権利関係大変なのですね、mp3の方が容量も小さく良いかと思ったのですが
wavファイルで音質下げることにします
168デフォルトの名無しさん:2006/04/25(火) 13:01:09
>>167
wavなんかにするならwmaとかにしたら?
169デフォルトの名無しさん:2006/04/25(火) 13:01:30
そんな君にogg超オススメ。
170デフォルトの名無しさん:2006/04/25(火) 13:15:13
>>168-169
現在DirectSoundでwav再生でやってるのですが、
その辺りのフォーマットを再生するには、DirectShowだと何の指定も無しに柔軟に再生できますよね
とりあえずサンプル見ながらmp3の再生はできたのですが、音量の指定で躓いています
とりあえずできるということなので、もうちょっと色々見てみます。
171デフォルトの名無しさん:2006/04/25(火) 13:41:21
習作という意味でやってるのなら別だが
なんらかのソフトを作るのに必要というのであれば
素直に既存DLLなりライブラリなりで再生しちまうのも手。
172デフォルトの名無しさん:2006/04/25(火) 17:47:06
oggってやっぱりおじじって読みますよね?
173デフォルトの名無しさん:2006/04/25(火) 17:48:56
DirectSoundに限らないかもしれませんが、
同じサンプリング周波数、Bit等の設定で、
マイク入力、スピーカ出力のリングバッファの
進み方に差が生じてきて、出力が足りなくなってしまいます。
時間辺りで計算してみると、入力が微妙に少ないみたい…
このようなとき、どうやって補正するのが正しいんでしょうか?
これはDirectSoundのバグでしょうか?ドライバ等のバグでしょうか?
174デフォルトの名無しさん:2006/04/25(火) 17:49:23
おぐぐ
175デフォルトの名無しさん:2006/04/25(火) 22:01:52
きわめて微弱ではありますが地球の各所で重力は異なるのです。
常人のレベルを超えた鋭敏さを持つことは時に不幸であると、
私は幼少の頃サイボーグ009で教えられました。
176デフォルトの名無しさん:2006/04/25(火) 22:59:34
DirectShowでmp3再生できるだけでも、同人で出したらやばいの?
曲自体はオリジナル&差し替え自由でも。
177デフォルトの名無しさん:2006/04/25(火) 23:08:25
別にやばくないよ。国内なら個人では99.9%ぶっちできる。
0.1%もライセンス料を払えば良いのです。

178デフォルトの名無しさん:2006/04/25(火) 23:41:58
つっても、oggの再生が楽にできるサンプルコードがそのへんに落ちてっからどうでもいいんだけどなw
エロゲ屋はoggで統一されてるっぽいな。
179デフォルトの名無しさん:2006/04/26(水) 12:27:04
メッシュ作成の際、作成関数からしばらく帰って来なくなり困っています。
メッシュのストリーム作成って出来るんでしょうか?

分かる方、お願いします。
180デフォルトの名無しさん:2006/04/26(水) 13:32:38
スレッドを分ける。
181179:2006/04/26(水) 17:59:16
>>180
それって本当に可能でしょうか?
過去に試した事があります。
その時はデバイスの使用でバッティングが起きたように思います。
(原因は結局分かりませんでした)

もし可能な場合、クリティカルセクションで何処を囲めば良いのでしょうか?
182デフォルトの名無しさん:2006/04/26(水) 18:11:29
>>181
デバイス作る時にマルチスレッド用のフラグ立ててないとかじゃないよな?
183179:2006/04/26(水) 19:50:39
>>182
すいません。立ててません。。。(汗
というか、そういうのが存在する事自体知りませんでした。

D3DCREATE_MULTITHREADED っすね。
出直してきます。。。orz
184デフォルトの名無しさん:2006/04/26(水) 21:12:22
普通のゲームのメッシュのロードにでかめのXファイルを使っているのだったら、
Xファイルを止めて、自作のベタのバイナリ形式にすることでも読み込みとデータの加工の速度の問題は解決したりする。
185デフォルトの名無しさん:2006/04/27(木) 10:00:01
DirectX9のウィザードで作ったプログラムなんですが、
ウインドウモードでALTキーを押したとき、メニューバーに
フォーカスが行ってしまうのを止めたいのですが、
どうすればいいんでしょうか?

いろいろ試してみたところWS_OVERLAPPEDWINDOWから、
WS_SYSMENU をはずすと、Altを押してもメニューは表示されないようですが、
ウインドウ右上の×ボタンも表示されなくなってしまいました。
186デフォルトの名無しさん:2006/04/27(木) 10:31:07
>>185
WS_OVERLAPPEDWINDOW
でググるとヒントが一杯出てくるぞ。

メニューバーについては
WNDCLASSかEXかの
lpszMenuNameがNULLになってるか
CreateWindowかEXかの
HMENUがNULLになってるかどうか
これで消えるでしょう。たぶん。じゃないかな?おそらく。

WS_SYSMENUは
タイトルバーにシステムメニュー(閉じるボタンとアイコン)つける
とある。見当違いだったな。
187デフォルトの名無しさん:2006/04/27(木) 22:12:21


OBBツリー難しい・・・orz
あきらめて円での当たり判定にしようかな。
188デフォルトの名無しさん:2006/04/27(木) 22:20:01
つ[ チラシの裏 ]
189デフォルトの名無しさん:2006/04/29(土) 07:39:18
DirectXのCD-ROM販売のページが見つかりません。
いつからなくなったのか、教えてください。
http://www.microsoft.com/japan/msdn/directx/default.aspx

それと、DirectX 9.0c SDKが入手できる雑誌を教えてください。
190デフォルトの名無しさん:2006/04/29(土) 07:44:22
普通にダウンロードしてCDに焼け。
191デフォルトの名無しさん:2006/04/29(土) 09:43:38
ヒント:割れ
192デフォルトの名無しさん:2006/04/29(土) 17:06:55
>>186
できました。ありがとうございます。
でも、Altを押すと、もう一度Altを押すまで、画面更新が止まってしまいます。
アクションゲームをつくりたいので少々問題です。
193デフォルトの名無しさん:2006/04/29(土) 17:40:13
>>192
Altキーを押してフォーカスが変わるのは正常な動作なんだから
アクションゲームだからって別に気にしなくて良いんじゃないの?
むしろウィンドウモードで起動してるのに、デフォルトのキーがちゃんと機能しないアプリは怖いと思うんだけど

どうしても止めたくないなら、フォーカスが変わっても画面更新の処理を止めないとか
って方法でもいいんじゃないの?
194デフォルトの名無しさん:2006/04/29(土) 17:57:02
>>193

ZキーとXキー、カーソルキーを使おうと思っているのですが、Altも間違って押してしまいそうです。

>>どうしても止めたくないなら、フォーカスが変わっても画面更新の処理を止めないとか

この方法ってどうやるのでしょうか?
メニューが表示されると、WM_ENTERMENULOOP、非表示になるとWM_EXITMENULOOP
というコマンドが送られてくることはわかったので、そのタイミングで何か処理をすれば
回避できるかと思うのですが良くわかりません。


それと、リソースファイルには、メニューの項目は見当たらないのに、

元のサイズに戻す(R)
移動(M)
サイズ変更(S)
最小化(N)
最大化(X)
閉じる(C) Alt+F4

というプルダウンメニューが出たりすることがあるのが、これはどこで定義されているものなのでしょうか?

よろしくお願いします。
195デフォルトの名無しさん:2006/04/29(土) 18:51:52
ゲームを作ろうと思ってます。
ただ、オブジェクト指向で考えると表示部分をどうすればいいかわかりません。
例えば、キャラAを描くときは
キャラA->Draw(pD3DDevice)
のようにキャラクラスに自分自身を描画するメソッドを用意してデバイスのポインタを渡すのか、
描く際は別に、
Draw(キャラA)
のように描画クラスや描画関数を用意してそちらで処理するのか
一般的にどうするのでしょうか?
196デフォルトの名無しさん:2006/04/29(土) 18:53:30
オブジェクト指向で考えなければ良い。
197デフォルトの名無しさん:2006/04/29(土) 18:55:36
>>195 ゲーム作ったこと無いんだけど、
作ったことある人はどうやって作ってんの?
あ、専門学校の課題でオセロは作ったこと有ったけど、
さすがに「コマ」を表現するオブジェクトに
描画メソッドを持たせて、なんてことはやらなかったなぁ。
あたりまえか
198195:2006/04/29(土) 19:02:24
C言語で書いてあるゲームエンジンなどはソースが沢山あるのでだいたいわかるのですが、
C++で書いた場合のオブジェクト指向のソースっていうのがなかなか見当たらなくて、
入門書などもグラフィックの表示の仕方とかをクラスで表現しているだけなので、
実際にキャラとかとグラフィックスを関連させるところをどのようにしているかを知りたいのですが。
誰か!愛の手を!
199デフォルトの名無しさん:2006/04/29(土) 19:03:24
キャラごとに、表示する方法が全然違ったら
キャラA->Draw();
の方がいいんじゃないかな?
200デフォルトの名無しさん:2006/04/29(土) 19:04:37
Draw(キャラA)の方が良いと思うよ?
201195:2006/04/29(土) 19:12:53
いきなり、意見が割れた・・。
ん〜、スレ違いなんですかねぇ〜・。
202デフォルトの名無しさん:2006/04/29(土) 19:15:39
はっきりってどうでもいい。好きなほうでやれ。
いちいち普通は、普通は、って聞く奴はうざい。
203デフォルトの名無しさん:2006/04/29(土) 19:16:25
たとえば、キャラごとに、レンダリングステートを変える必要があるとするじゃん。
Draw(キャラA)とかしたら、そういう設定ごとに
SetRenderState(キャラA)とかしないとだめになるお。
キャラA->Draw()ならその中で一気に設定できてパーヘクトだぜぃ。
204デフォルトの名無しさん:2006/04/29(土) 19:26:10
グラフィッククラス->Draw(リスト);
205195:2006/04/29(土) 19:31:30
ふむふむ、参考になりやす。
やはり、キャラAにもたしたほうが融通がききますか。
グラフィックスクラス->Draw(リスト)も
一応自分でも考えたんですよね。
グラフィックスポインタをいちいち移さなくて最終的にリストを網羅する方法。
しかし、203の意見を考えるとキャラごとにステートを変えたりすることを考えるとやはり
キャラA->Drawですかね!
とりあえず、それでいきます。ありがとうございました。
206デフォルトの名無しさん:2006/04/29(土) 19:38:10
それだと、キャラごとに、不透明、半透明の描画をするとして、
各キャラの不透明の描画を先にして、その後半透明を描画したいとかなると困らないか?
DrawNormal()
DrawTransparent()
って関数分ければいいかorz
207デフォルトの名無しさん:2006/04/29(土) 19:40:15
やってみて駄目だったら変えればよい。
208デフォルトの名無しさん:2006/04/29(土) 19:54:59
>>194
> >>どうしても止めたくないなら、フォーカスが変わっても画面更新の処理を止めないとか
> この方法ってどうやるのでしょうか?

メッセージループとゲームのルーチンを別スレッドにする。


> それと、リソースファイルには、メニューの項目は見当たらないのに、
システムで定義されている。ウィンドウ左上のアイコンをクリックすると出る。
あるいは Alt + SPACE。
209194:2006/04/29(土) 20:30:29
>>208
たびたび質問してすいません。

>メッセージループとゲームのルーチンを別スレッドにする。

というのは、ゲーム処理をCreateThreadで作った別スレッドで処理させるということですか?
その場合、元のメッセージループでメニューが呼び出されたとき、どういう仕組みで処理が
続くのかちょっとイメージがわかないのですが、
そいいうのを解説しているHPとかってご存知ありませんか?
210デフォルトの名無しさん:2006/04/29(土) 20:33:50
わからない五大理由 

1 読まない

2 調べない

3 試さない

4 理解力が足りない

5 人を利用することしか頭にない
211デフォルトの名無しさん:2006/04/29(土) 20:50:30
>>209
そのウィーザードを使ったこと無いけど、フォーカスが無い時にゲームが止まる処理が入ってるんじゃないの?
敢えて止めなきゃバックグラウンドでもアプリは動くでしょ

それと、ZXキーを使うから、その近辺にあるキーの動作を効かないようにするってのは
余計なお世話だと思うけどなぁ。
212デフォルトの名無しさん:2006/04/29(土) 20:51:43
>>209
マルチスレッド
http://wisdom.sakura.ne.jp/system/winapi/win32/win143.html

>>210
>メッセージループとゲームのルーチンを別スレッドにする。
これで理解できる奴は初心者じゃないだろというか、
そんなめんどいことしなくても、終了ボタンを残したまま、
Altによるフォーカス移動を防ぐことができる罠。
213デフォルトの名無しさん:2006/04/29(土) 22:49:37


「チラシ」

キャラの座標とかも

キャラ->Pos( 0,0,0 );

って感じ?
座標もクラス内に入れるべき?

入れたらキーで移動するとき上のような関数作らないといけないし、
クラス無しにして直接変数に書き込むほうが軽いのかな〜。
214デフォルトの名無しさん:2006/04/29(土) 23:00:47
キャラがもつべき変数だと思う。
215デフォルトの名無しさん:2006/04/30(日) 14:03:38
最新のdirectx入れたら3Dテスト時の箱の回転速度が20倍ほどアップしたんだけど、
あまりの速さに恐怖を覚えた
216デフォルトの名無しさん:2006/04/30(日) 14:18:46
それはお前の体内時計が
遅くなってるだけ。
217デフォルトの名無しさん:2006/04/30(日) 14:40:08
ものすごい初歩的なことを聞いてすみませんが、(もしかしたら場違い?)
Visual C++ 2005 Express Editionをインストールしたところ
エラーで全てのコンポーネントをインストールできません。
net framework2.0と
net framework2.0 日本語packと
sql server 2005 express edition x86
がインストールできません
どうしたらよいでしょうか?

全くの初心者なのでご指導おながいします
218デフォルトの名無しさん:2006/04/30(日) 14:48:47
>>217
> ものすごい初歩的なことを聞いてすみませんが、(もしかしたら場違い?)
どう見ても基地外です。本当にありがとうございました。
219デフォルトの名無しさん:2006/04/30(日) 14:56:29
全くの初心者なのでご指導おながいします
全くの初心者なのでご指導おながいします
全くの初心者なのでご指導おながいします
220デフォルトの名無しさん:2006/04/30(日) 15:04:10
2chでも半年に一回みれるかどうかぐらいの低脳だな
221デフォルトの名無しさん:2006/04/30(日) 15:13:28
ご迷惑おかけしました。
消えますそして、
氏にます。
222デフォルトの名無しさん:2006/04/30(日) 15:14:30
てか、なんでこの板で聞くんだろうか
223デフォルトの名無しさん:2006/05/01(月) 00:00:02
>後は面倒だから勝手にやってくれ頼むよ
なんで1さんはこんなになげやりなの?
なんかあったのこの板
224デフォルトの名無しさん:2006/05/01(月) 00:10:39
板≠スレ
225デフォルトの名無しさん:2006/05/01(月) 16:04:40
195の話題に乗り遅れた
まぁセオリーからすると>204になるんだろうけどやっぱステートの変更がなぁ

関連して前スレでDrawPrimitiveを減らす為に纏めるってな話があったけど、纏められる
場面てのはかなり限定されね?
キャラ->Draw()なんてのはキャラクタ数に比例してオーバーヘッドがでかくなりそうだし
226デフォルトの名無しさん:2006/05/01(月) 16:07:28
また、勝手な予想で速度語る奴キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
227デフォルトの名無しさん:2006/05/01(月) 16:21:52
別に間違っちゃいない
228デフォルトの名無しさん:2006/05/01(月) 16:45:23
2Dか3Dかでだいぶ変わるな。
2Dならキャラ毎に別々にステート変更なんて普通は必要ないから、
いくつかのステートブロックに分けてそれぞれのブロックの描画キューに突っ込むようにするとか出来る。

3Dは微妙。ゲーム次第だろうな。
229デフォルトの名無しさん:2006/05/01(月) 19:25:20
>2Dならキャラ毎に別々にステート変更なんて普通は必要ないから、
>いくつかのステートブロックに分けてそれぞれのブロックの描画キューに突っ込むようにするとか出来る。

背景->Draw()
敵->Draw()
弾->Draw()

こんな感じかね
それぞれ単一ステートで
230デフォルトの名無しさん:2006/05/01(月) 19:41:40
Drawメソッドの中でステート変更ぐらいやればいいじゃん
231デフォルトの名無しさん:2006/05/01(月) 20:12:22
敵や弾でクラス別けしないなぁ
俺の現在の構成は
Volume
Texture
Material
Geometry
Frame
Effect(シェーダ)

描画単位としてはGeometryでまとめてる
他にも、TextureやEffectでまとめられるけど
どれが一番効率がいいのかはわからんし
232デフォルトの名無しさん:2006/05/01(月) 21:19:16
2chのスレでは当たり前のようにデカイ顔してDirect3Dについて語ってるけど
じつは2Dしかやったことないって奴、結構多いのか?
233デフォルトの名無しさん:2006/05/01(月) 21:33:12
国産のPCゲームもそれほど多く無いと思いますし、
3D使ってる同人ゲームも最近増えてきたとはいえ数はまだまだ少ないと思います。
でもこのスレや、ここ以外のスレでも色々答えてくれる人は沢山居るようなのですが
その人たちは3Dのゲームの製作に携わってる極小数の方たちなんでしょうか?
それとも会社ではPS2とかで製作しつつ、趣味でDirectXを使ってるとかそういう人なんでしょうか?
234デフォルトの名無しさん:2006/05/01(月) 21:48:32
同人サークルでPGやったことあるけど一番の問題はデータ。

ドット絵やらキャラ絵は描ける人はいくらでも居る。
背景なんかも写真から起こせばいいのでソレほど大変でもない。

だがポリゴンモデル&テクスチャ+ボーン&ウェイトマップとなると途端に人が居なくなる。
自分の方がLightwave使いこなせてたりする事もザラ。

結局たまに見るよく出来てる3Dの同人ゲームとかも
調べてみるとデザインがコンシューマー会社のデザイナーだったりするし。
235デフォルトの名無しさん:2006/05/01(月) 23:22:54

***チラシ


AA->Draw()

のとき

LPDIRECT3DDEVICE9 *m_pd3dDevice

が必要なんだが、これもクラス内にいれるべき?
メモリの無駄がどんどん増えていくな〜
グロールはやばいしな〜
236デフォルトの名無しさん:2006/05/01(月) 23:42:30
D3DDeviceのインスタンスはグローバルでいいよ
それかテクスチャとかから取得出来るので
使うときその都度取得してもいい
237デフォルトの名無しさん:2006/05/01(月) 23:43:35
チラシじゃスルーだぜ。
質問スレなんだから、変なの気にしないで堂々と恋

Drawの引数なんかで渡せばOK。
その都度渡すのは面倒と思うかも知れないけど、実際は数カ所におさまるはず。
え、俺?

         ∧_∧   ┌────────────
       ◯( ´∀` )◯ < 俺は、グローバルちゃん!
        \    /  └────────────
       _/ __ \_
      (_/   \_)
           lll
238デフォルトの名無しさん:2006/05/01(月) 23:45:52
グロール多いな。
う〜〜ん、グローバルはあんまり使うなと教えられたのに 猫でも分かるCでw
239デフォルトの名無しさん:2006/05/02(火) 00:08:02
AA->Draw()
とやらずに
mainWnd->Draw(AA)
とすれば一挙解決
240デフォルトの名無しさん:2006/05/02(火) 00:44:54
ふりだしにもどる
241デフォルトの名無しさん:2006/05/02(火) 01:15:59
あんまり使うな != 絶対使うな
242デフォルトの名無しさん:2006/05/02(火) 05:48:11
>>234
べつにボーン使わなくてもマップ3Dで
キャラだけ2Dエセビルボード(FFT?)でもいいと思うんだけどな。
そんな苦労なく栄えるようになると思うけど。

要は作り手のセンスが悪い。
もっと自分の好きなゲームをよくみたほうがいい。
どう考えたってチッププチプチつないでマップつくるよりは
3Dでモデリング一発でこさえたほうがデザイナも作ってて楽しいし、
作業量的にも楽だし、見た目もいいよね?

FFとかシステム的に出来が良すぎるゲームばっかりみてその辺がわからなくなってるのかもね。
別になんでもかんでも3Dで作ればいいってもんじゃないけど、
全く使わずに無駄な苦労をすればいいってもんでもない。
243デフォルトの名無しさん:2006/05/02(火) 08:40:11
そこでFFが出た事で説得力が失せてる
244デフォルトの名無しさん:2006/05/02(火) 08:53:53
すまんな。
代わりに説得力溢るる例を挙げてくれ。
245デフォルトの名無しさん:2006/05/02(火) 12:00:06
単にコード書きがヘタなんだが、やっぱ纏めて描画ってのは結構難しいわ orz
DrawPrimitive()を減らすのに拘り過ぎてんのかな…

いっそ全ての描画で単一ステート(切り換え無し)かつ全モデルをTriangleListに
してしまえば楽なんだろうが…

真面目に↑案を検討し始めている俺ガイル
どうせホビープログラミングだしな
246デフォルトの名無しさん:2006/05/02(火) 16:19:23
プロファイリングしないで最適化しようとする奴は馬鹿
247デフォルトの名無しさん:2006/05/02(火) 16:53:47
さみしいゆるわごめんだ
248デフォルトの名無しさん:2006/05/02(火) 17:49:29
教えてプロファイリングって何?
249デフォルトの名無しさん:2006/05/02(火) 18:01:12
心理捜査官 草薙葵でぐぐれ
250デフォルトの名無しさん:2006/05/02(火) 18:19:10
対案なり解決法なりも提示しないで文句垂れるだけの奴も馬鹿ということで
251デフォルトの名無しさん:2006/05/02(火) 18:22:21
自己紹介・・・
252デフォルトの名無しさん:2006/05/02(火) 18:23:54
そんな奴が常駐してて、質問者が萎縮している質問スレ
もっとも245みたいに、質問スレに愚痴書く奴も馬鹿だけど
253デフォルトの名無しさん:2006/05/02(火) 18:32:47
と、馬鹿が何か言ってます
254デフォルトの名無しさん:2006/05/02(火) 19:06:28 BE:247063477-
 VS2005とdirectX9(april2006)を使ってます。
今は、VS2005でdirectX9の本がなかったので
著者がVC++6.0 or .netとdirectX9を使っている本を参考にしています。
 その本にはdirectXをインストールすれば新しいプロジェクトの作成のとき
directX 9 AppWirardというのが出てくると書いてあるのですが
私の環境では出てきません。これはVS2005とVC++6.0の違いでしょうか?
それとも何かしらの操作をすれば使えるようになるのでしょうか?
255デフォルトの名無しさん:2006/05/02(火) 19:13:23
たしかDirectXのバージョンにも関係してた希ガス
256デフォルトの名無しさん:2006/05/02(火) 19:27:52
>>254
(Summer 2004)でウィザードは廃止
257デフォルトの名無しさん:2006/05/02(火) 19:55:12 BE:121010483-
なるほど。わかりました。
その本はappwizardをベースに作ってく本だったので
ちょっと困りますが、サンプルCDもあるのでそっちだけを参考にすることにします。

本当にありがとうございました。
258デフォルトの名無しさん:2006/05/03(水) 02:51:58
ウィザードを使わないで、サンプルを参考に作れってことなんですか?
259258:2006/05/03(水) 03:58:04
自己解決。サンプルブラウザに入ってるEmptyProjectを使うのですね。
260デフォルトの名無しさん:2006/05/04(木) 09:11:45
質問です。
Direct3DはHWNDを引数にしてデバイスの作成をするのですが、
それはつまり「沢山のWindow」があるアプリケーションでは
Windowごとにデバイスを作成し、それに関連付けしたテクスチャーをロードする必要があるのでしょうか。

1回テクスチャーをロードし、それを複数のWindowに表示したいのですが…。
261デフォルトの名無しさん:2006/05/04(木) 09:40:51
デバイスは1個。
複数のウィンドウへのレンダリングは、日本語SDKヘルプで「スワップチェーン」で検索
262デフォルトの名無しさん:2006/05/04(木) 10:16:09
ありがとうございます。試してみます
263デフォルトの名無しさん:2006/05/04(木) 11:19:20
試すなら俺を倒してからにしろ
264デフォルトの名無しさん:2006/05/04(木) 12:25:27
やめておじいちゃんその体じゃ
265デフォルトの名無しさん:2006/05/04(木) 14:31:23
スワップチェーン成功しました。
ありがとうございました。

ただ、Direct3D8でやろうとがんばっていたのですが、結局9でしかできませんでした。
プログラムはほっとんど同じなのに…。
266デフォルトの名無しさん:2006/05/04(木) 19:09:20
ヘルプ眺めただけでやったこと無いけど、表示するだけなら、
IDirect3DDevice8::Present()の引数でHWNDを指定するだけじゃ駄目?
267デフォルトの名無しさん:2006/05/04(木) 19:17:54
8なんかいじるなよ・・・
268デフォルトの名無しさん:2006/05/04(木) 19:57:57
いきなりDirectXのプログラムから始めようとしたけど無理だった
269デフォルトの名無しさん:2006/05/05(金) 11:43:04
>>268
すでにいきなりではなくなったのでこれから頑張れ
270デフォルトの名無しさん:2006/05/05(金) 11:47:45
>>266
ダメでした。9のサンプルとはほっとんど変わらずに作りましたが
何故か真っ黒に変な色のドットがちょびっと。といういわゆる「VRAMの予期しないところを参照している」状態。
原因はわかりません

>>267
8だめですか…。
基本的にがなるべく古いもので作るのが良いと思うのですが…。(動作環境が多い)
271デフォルトの名無しさん:2006/05/05(金) 12:46:57
現在、DirectX9のドライバがないようなハードウェアは
メーカーでさえ製造はもちろんサポートを打ち切ったようなものだってことだ。
ドライバにバグが残っていても更新の見込みもない。
そんなものを君は全力でサポートしようとしようというのか。
プロでもつらいのに初心者には無謀。ゾンビに墓穴に引きずり込まれるだけだ。
世界は、美しくなんかない。
272デフォルトの名無しさん:2006/05/05(金) 13:02:20
何をアホなことを言っているんだ?
3D系の機能にしてもDirect3Dが使えれば、ドライバそのものにDirectXのバージョンは関係ない。
どの機能に対応しているかどうかの違いでしかない。
それにDirectX9のフル機能に対応していないビデオカードは、
現在サポートが続いているものでも山のようにある。
273デフォルトの名無しさん:2006/05/05(金) 13:08:22
7で作れるんだったら7で作っとけ
7で作れないんだったら8でも9でも大した違いは無いから9にしとけ
274デフォルトの名無しさん:2006/05/05(金) 13:37:00
DirectX9.0ってどうしたら使えるんですか?orz
275デフォルトの名無しさん:2006/05/05(金) 14:09:09
>>272
書籍やヘルプもないのに頑張れとかすげー無責任にもほどがある。
276デフォルトの名無しさん:2006/05/05(金) 14:24:43
DXライブラリでフォトショップで描いた透過PNG画像を表示したいんだけどどうすればいいんだろう・・・
水面の波とかを透過して描いたんだけどDrawGraph関数じゃ表示できないみたいです・・・
RPGツクールXPすごいな・・・
277デフォルトの名無しさん:2006/05/05(金) 14:48:20
278デフォルトの名無しさん:2006/05/05(金) 14:51:18
PNGにアルフ入ってるならそのまま出せば透過されるはずだが。
むろんステート関係はちゃんと設定した上での話。
279デフォルトの名無しさん:2006/05/05(金) 15:17:03
278>>
アルファチャンネル入ってる。ステートはまだいじってません・・・
Windows画像とFAXビューアではしっかりと透過表示されてるのに・・・

勉強しよ
280デフォルトの名無しさん:2006/05/05(金) 16:34:42
せめてチュートリアルぐらいは終わらせろ。
281デフォルトの名無しさん:2006/05/05(金) 19:28:03
>276
DXライブラリはスレ違い。スレ無いけど。

SetDrawBlendModeを使え。
282デフォルトの名無しさん:2006/05/05(金) 19:39:13


ちらし〜


OBBついにできたーーーーーー!!!(BOX表示だけですが・・)
あとは、当たり判定をつければウハウハです!
しかし、BOXに無駄がかなりあなるな、 う〜〜ん
283デフォルトの名無しさん:2006/05/05(金) 19:48:36
ちらしうざい
284デフォルトの名無しさん:2006/05/05(金) 20:48:36
>>281
感謝感激家事親父
285デフォルトの名無しさん:2006/05/05(金) 21:35:28
>>283
サブちゃんに謝れ
286デフォルトの名無しさん:2006/05/05(金) 22:06:50
>>276
ツクールXPってDirectXで描画してるにしては描画えらく遅いな。
透過はハードウェアでやってないんじゃないのか・・・?
287デフォルトの名無しさん:2006/05/05(金) 22:59:41
計算も出力も全部ハードウエアですが?
288デフォルトの名無しさん:2006/05/05(金) 23:34:54
なんで知ってるんだ。
289デフォルトの名無しさん:2006/05/06(土) 00:03:47
ツクールXPの製品概要によればDirectDrawも使ってない。

2001年の頃にはDirectDrawのハードウェアなどあてにせず、
システムメモリ内で全画面のイメージを作ってから全体を転送するのが当たり前だった。
透過もソフトウェアでやる。それで60FPS出てたよ。

ツクールXPの描画は30FPSが上限でティアリング上等という設計なんだと思う。
DirectDraw全盛の時代の市販ゲームのRPGを思い出せば、
VSyncに同期したなめらかなスクロールより、そういうタイプが多かった。
290デフォルトの名無しさん:2006/05/06(土) 06:28:53
>>282
OBBを作るのに苦労してたのか・・・
あたり判定の方が数倍面倒くさい気がするが。
291デフォルトの名無しさん:2006/05/06(土) 16:19:54
Visual Studio .NET 2003でDirectXの勉強を始めてみようと思っているんだけど、
VSをインストールした後、

Microsoft DirectX 9.0 SDK (April 2006)
http://www.microsoft.com/japan/msdn/directx/downloads.aspx

を入れるだけでいいのかな?

あとできれば簡単なサンプルプログラムと日本語のドキュメントを見てみたいんだけど
どこから入手できる?ちなみにまず勉強しようと思っているのはDirectSoundに関して。
サウンドカードからwave音を出す練習をしてみたいと思っている。
292デフォルトの名無しさん:2006/05/06(土) 16:21:16
勉強する気なんてさらさら無いように見える。
293デフォルトの名無しさん:2006/05/06(土) 16:33:54
>>291
ここからサンプルプログラムと日本語のドキュメントを入手できる
日本語ドキュメントは (October 2004) 日本語ドキュメントが最新版
http://www.microsoft.com/japan/msdn/directx/downloads.aspx
294デフォルトの名無しさん:2006/05/06(土) 16:33:58
工工エエエ(´д`)エエエ工工
295291:2006/05/06(土) 17:50:12
>>293
ありがとう。今からドキュメント入れてみるわ。

が、その前にいきなりつまずいた。

> Microsoft DirectX 9.0 SDK (April 2006)
> http://www.microsoft.com/japan/msdn/directx/downloads.aspx

これWindows2000サポートしてないのかよorz・・・
296291:2006/05/06(土) 17:54:45
>>293
結局日本語ドキュメントの最新版、October2004までさかのぼらなければ
Windows2000はサポートされてなかったorz・・・

DirectX 9.0 SDK Update - (December 2004)
297デフォルトの名無しさん:2006/05/06(土) 17:55:27
>>295
落武者落合処 | DirectX SDKをWindows2000にインストールする?
http://blog.ochimusha.org/log/eid342.html
298デフォルトの名無しさん:2006/05/06(土) 17:57:11
.libと.hだけあればインストールする必用はないし、それだけで十分開発できる
少しは頭を使って考えろ。
299デフォルトの名無しさん:2006/05/06(土) 18:00:35
>>296
Windows2000サポートの最新版は(December 2004)
300291:2006/05/06(土) 18:01:03
>>297-298
なるほど。そういう裏技もあるのか。
でも慎重派の俺はDecember 2004に甘んじることにしよう(´・ω・`)
301デフォルトの名無しさん:2006/05/06(土) 19:19:15
二℃とくるなボケ
302デフォルトの名無しさん:2006/05/06(土) 22:27:34
>>298
>>301
市ねよ てめえは
303デフォルトの名無しさん:2006/05/06(土) 22:41:22
>>302
てめえがしんでおれもしぬ
304デフォルトの名無しさん:2006/05/06(土) 22:44:13
オブジェクトはデータでそ?
データが自ら描画するわけないって思うんだけど。
シーンを管理するクラスなどがデータをいじくって、描画クラスがデータを元に表現する。
こう思ってるんだけど、どうよ?あってんのかな?
305デフォルトの名無しさん:2006/05/06(土) 22:50:20
>>304
え?オブジェクトを描画されるものとみれば
描画は1メソッドにしかならないんじゃない?
オブジェクト指向っていうんだから実際に実体の認識できるものをクラスに反映しようよ。
それすらやらずに抽象クラスを先にだしちゃうのはなんかセンスなさげじゃない?
306デフォルトの名無しさん:2006/05/06(土) 22:53:01
この世界のオブジェクトは描画クラスが存在を表現しているわけではない。
307デフォルトの名無しさん:2006/05/06(土) 23:09:19
描写してくれって頼みにいく相手はキャラクタ等のオブジェクトではなく
ウィンドウクラスなり何なりだと思うがね。
308デフォルトの名無しさん:2006/05/06(土) 23:11:40
obbの境界BOXがうまく作れないorz
一個一個頂点を調べて
近い座標をある一定間隔でまとめてそれを囲む箱作ればいいのかな・・・
うーん、OBB専用モデル作成とかした方が簡単かも
309デフォルトの名無しさん:2006/05/06(土) 23:24:26
>>308

つ 主成分分析

専用モデルもありだけど。
310デフォルトの名無しさん:2006/05/06(土) 23:40:30
sdk8のサンプルでdirect3dのスキンメッシュにdirectinputの
ジョイステックのサンプルを結合して人間を動かすプログラムを
書いても正常にビルドできたことが無いんですが、
((関数%45&)〜〜は未解決です。みたいなエラー)
それは置いといて、

例えばdirect3d + directinput + directmusicのように
サンプルを組み合わせるときの注意点はありますか?
311デフォルトの名無しさん:2006/05/07(日) 00:11:55
必用なものを必用なところに入れる。
312デフォルトの名無しさん:2006/05/07(日) 00:14:09
>>309
> つ 主成分分析

そういう難しいことをいわれても実に困る。
313デフォルトの名無しさん:2006/05/07(日) 00:41:57
カルシウムのことだよバカ
314デフォルトの名無しさん:2006/05/07(日) 01:02:11
専属のCGデザイナーがいるなら専用モデル
プロの自覚があるなら主成分分析より良いモノが出る。
315304:2006/05/07(日) 01:25:21
>>305
ごめん、オブジェクトってのがおかしいのかも?
抽象クラスでなく、何かメッシュやら画像やらを持ったクラスっす。

なんて表現すればいいか解らない俺は、バカ・・・。

みなさんは、そうゆうクラスにDrawメソッドを与えてるの?
316デフォルトの名無しさん:2006/05/07(日) 01:31:41
ここにいる人たちって絶対にカルシウム不足だよねー
317デフォルトの名無しさん:2006/05/07(日) 01:35:00
2ちゃん全体、ひいては全日本
318デフォルトの名無しさん:2006/05/07(日) 01:35:01
なんか、頭の固いコンパイラといつも対話しているから、自分の頭も固くなるらしい。
319デフォルトの名無しさん:2006/05/07(日) 01:37:10
>>314
今後の参考のために、主成分分析より良い物を教えてくれ。
320デフォルトの名無しさん:2006/05/07(日) 01:41:04
   __(^^) <ペイピッポォ みんな仲良くするピー
  /__ \
  | |   |  |
  (_) (__)
愛用ツール:ツクール
321319:2006/05/07(日) 01:59:18
CGデザイナーに「プロの自覚があれば」って意味か。
プロのプログラマーなら、主成分分析よりいいアルゴリズムが出る
という意味かと思った。

>312
主成分分析 OBB でググれ。
322デフォルトの名無しさん:2006/05/07(日) 08:48:35
DX10って何が凄いんやろ、
噂によればまた初期化が難しきなってるとか・・・orz

323デフォルトの名無しさん:2006/05/07(日) 09:07:09
ああ、難しき。
324デフォルトの名無しさん:2006/05/07(日) 09:28:16
>>308
DirectXには
D3DXComputeBoundingBoxってのあるだろ?
車輪の再発明でもしてるのか
325324:2006/05/07(日) 09:34:22
俺勘違いしちゃってるな
モデルにフィットしたOBBを作ってるのか
326デフォルトの名無しさん:2006/05/07(日) 12:29:58
俺はOBBやるのに
線形代数ライブラリを一から作る羽目になったぞ
えらい苦労した
327291:2006/05/07(日) 13:25:40
>>293
> 日本語ドキュメントは (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の方だけで
やれば済むことなんだけどね。
328デフォルトの名無しさん:2006/05/07(日) 14:07:27
クエスト受けていないと手に入らないアイテムは
クエストに必要な分が揃うとそれ以上出なくなるね。

それはいいんだけど、同じアイテムが必要なクエストを
複数受けていても、1回分しか出ないね。
清浄水のクエを3つ受けて行ったら無駄になった。
329デフォルトの名無しさん:2006/05/07(日) 14:08:01
超誤爆ったw
スレ違いどころか板違いorz
330デフォルトの名無しさん:2006/05/07(日) 17:37:40
メッシュが閉じた形状か判定するには
どうすればよいでしょうか
331デフォルトの名無しさん:2006/05/07(日) 17:45:52
すべてのポリゴンの辺に他のポリゴンが隣接していれば閉じている。
クラインの壷みたいなのはどう扱うんだっけ
332291:2006/05/07(日) 19:34:34
今DirectSoundの勉強しているんだけど静的バッファとストリーミングバッファの扱いって難しいのぅ。

要は静的バッファに収まりきらないくらい長いwaveファイルはストリーミングバッファに
格納するらしいんだけど、具体的にどのくらいのサイズまで静的バッファは格納する
ことができるんだろう?
333デフォルトの名無しさん:2006/05/07(日) 19:36:03
>>331
レスありがとうございます。
クラインのツボみたいなの使われてるゲームってあるのかな...。
プログラムの仕方は分からないです。スミマセン。
334デフォルトの名無しさん:2006/05/07(日) 19:37:56
ややこしい書き方してしまいました。
分からないってのはクラインの方です。
閉じた形状の方は分かりました。
ありがとうございました。
335デフォルトの名無しさん:2006/05/09(火) 09:37:47 BE:31057128-#
>>333
ゲームじゃないが、DirectXでレンダリングした人はいるみたいだ。
http://www2.neweb.ne.jp/wc/morikawa/sya.html
336デフォルトの名無しさん:2006/05/10(水) 00:09:27
>>335
お、俺ん家の玄関においてあるのと同じだ>クラインの壺
337デフォルトの名無しさん:2006/05/12(金) 22:45:33
クラインの壺の中ってどれくらい暗いん?
338デフォルトの名無しさん:2006/05/13(土) 03:57:23
12ルクスくらい。
339デフォルトの名無しさん:2006/05/13(土) 07:06:52
もう閉経してるから
340デフォルトの名無しさん:2006/05/20(土) 22:59:56
急にレスがなくなったけど何かあったのかい?
341デフォルトの名無しさん:2006/05/21(日) 02:32:22
DairekutoEkkusu?
342デフォルトの名無しさん:2006/05/22(月) 12:25:48
質問失礼します。

D3DX: MEMORY LEAKS DETECTED: 43712 allocations unfreed (699392 bytes)
D3DX: Set HKLM\Software\Microsoft\Direct3D\D3DXBreakOnAllocId=0xb60cb to debug
アウトプットに上記2行が表示されました。

何が原因か分かりません。
怪しい個所など教えていただけると助かります。
343デフォルトの名無しさん:2006/05/22(月) 13:35:56
メモリ開放箇所を全て確認しる
(というより丸っきり開放してないように思えるが・・・)
344342:2006/05/22(月) 17:55:29
返答ありがとうございます。
まだ駄目です。。。解決しないです(;_;

解放は全部見ましたが特に怪しい所はありませんでした。
43712 と 699392 の数値が毎回激しく変わるのですが、プレイは毎回正常に行えます。

メッシュ(テクスチャー?)を作り過ぎると出る印象があるのですが、分かる方お願いします。
メッシュは104個程作ってます。
345デフォルトの名無しさん:2006/05/22(月) 17:59:53
見落としてるに100メッシュ
346デフォルトの名無しさん:2006/05/22(月) 18:22:04
メッセージにメモリリークって出てるんだからどっか解放忘れてるんだろ。
自分のプログラムの腕を信じないで素直にエラーメッセージを信じろ。
347デフォルトの名無しさん:2006/05/22(月) 18:40:55
未解放のポインタに、新しくテクスチャを突っ込んでいるに
100テクスチャ
348342:2006/05/22(月) 19:37:54
表示された2行を元に何処を解放していないのか探し当てるのは辛いので、もっと情報が欲しいです。
とりあえず_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
349デフォルトの名無しさん:2006/05/22(月) 19:40:56
×辛い
○面倒
350デフォルトの名無しさん:2006/05/22(月) 20:07:50
>>342
バグが見つからないならプログラムを小分けに走らせればいいのさ
必要最低限の部分だけ抜き出して走らせるのさ
問題ないなら少しずつ大きくしていくのさ
351342:2006/05/22(月) 20:17:14
返答ありがとうございます。

>>350
まずそれやったですよ。

Aクラスを止めました -> リーク表示が消えました
Aクラスの中のものが解放されていないのかと思い、調べましたが結局分からず。
Aクラスを止めていたのを元に戻し、今度はBクラスを止めました -> リーク表示が消えました

もうね。
DirectXが人間だったら殴ってます。
なんだよ。。。こんなリーク初めてだよ。。。orz
352デフォルトの名無しさん:2006/05/22(月) 20:23:58
短気な人はプログラミングに向かないよ。
とっととやめちまえ
353デフォルトの名無しさん:2006/05/22(月) 20:35:29
クラスAとBで共有しているオブジェクトがあるとして
それをAddRef()してるのに片方でしかRelease()してなかったりするってところか。
354デフォルトの名無しさん:2006/05/22(月) 20:53:44
>>351
それならばAとかBとか関係なくどこか壊してんじゃないのか
>>344でメッシュ作りすぎると出るとか言ってるから
メッシュ作るところを一部分ずつ何度も回すしかないだろ
355デフォルトの名無しさん:2006/05/25(木) 12:13:25
640x480のウィンドウを作って640x480のbmpをSprite->Drawで表示させたのですが、
縦横に激しく間延びしてしまってウィンドウに収まらないのですが
どのような原因が考えられますでしょうか?

スプライトは下のように描画したのですが、、、
Sprite->Draw(texture, NULL, NULL, NULL, 0, NULL, 0xffffffff);
356デフォルトの名無しさん:2006/05/25(木) 12:34:09
自己レスです。テクスチャを作る時にフィルタリングされてしまっていたようでした。
D3DX_FILTER_NONEにしたら解決しました。失礼しました
357デフォルトの名無しさん:2006/05/26(金) 22:23:24
なんでこんなことを聞くのかについては気にしない方向で…


・共通のメッシュとボーン構造を持つ、複数のXファイルがあります。

・D3DXLoadMeshHierarchyFromX()云々を使用して、個々のモデルとモーションの再生が可能になりました。

・が、実は目的としたいのは、同一のメッシュ上で、複数のモーションを切り替えて再生することだったのです。

・モデル情報(Xファイル)はバイナリで編集不可、製作者は現在多忙で、テキスト化->編集で複数モーションを
もたせる手が使えません。

・仕方ないので、各モデル情報から
358デフォルトの名無しさん:2006/05/26(金) 22:25:14
for(int i=0; ANIMSTATE_MAX>i; ++i)
{
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 を回収することにしました。
359デフォルトの名無しさん: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();
}
360デフォルトの名無しさん:2006/05/26(金) 22:40:06
…ぶっちゃけ、
あるモデルのアニメーションセットの差し替えって、アニメーションコントロールから

GetTrackAnimationSet()
UnregisterAnimationSet()

でアニメを外して、

RegisterAnimationSet()
SetTrackAnimationSet()

で再登録って流れを踏めばいいんでしょうか?

ある程度はちゃんとうごくっぽいんだけど、一部のスキンに
妙なスケールがかかっちゃったりして、元データの問題なのか
プログラム側が強引過ぎるのか、問題が掴めずにぼーぜんとしております。

どなたか詳しい方、ご教授くださいぃ。
361デフォルトの名無しさん:2006/05/27(土) 00:30:29
>>357-360

自己解決してしまいました

っつーか、上のやり方で普通に正しかったみたい。
m_aSkinMesh[0].GetAnimeCtrl()->GetMaxNumTracks();
m_aSkinMesh[0].GetAnimeCtrl()->GetNumAnimationSets();
はいらないけど。

モデルデータの問題だったーよ…
少し構造の違うモデルが紛れ込んでただけだった。

お騒がせしましたー。
362デフォルトの名無しさん:2006/05/27(土) 09:47:06
つ [熊さんのぬいぐるみ]
363デフォルトの名無しさん:2006/05/27(土) 13:00:45
DirectMusicを使おうと思ったのですが、CoCreateInstanceでエラーが出て使うことができません。
「0x80040154 クラスが登録されていません」とのことですが、よくわかりません。
CoInitializeもやっています。
364デフォルトの名無しさん:2006/05/27(土) 21:58:15
Managed DirectXって未来無いのかな・・・
使ってるよって話を全く聞いたことがない。
365デフォルトの名無しさん:2006/05/27(土) 22:14:35
>>364
そもそもMSは外部からきた奴が提案したものは短命
366デフォルトの名無しさん:2006/05/27(土) 23:09:30
skinnedmeshで
ビュー行列とプロジェクション行列をセットして
m_pd3dDevice->SetTransform(D3DTS_VIEW, (D3DMATRIX*)&m_mView);
の文のD3DTS_VIEWをD3DTS_WORLDにしてD3DXMatrixTranslationで
座標を変えたいのですが原点(0,0,0)から動きません。
どうすればワールド座標で座標を変えられますか?

367デフォルトの名無しさん:2006/05/27(土) 23:14:28
SDKのサンプルじゃなく、市販か同人でひとつの作品まで仕上がったレベルで、
skinnedmeshを固定機能で実装してる奴って存在しないんじゃないかと思うが
どうだろう
368デフォルトの名無しさん:2006/05/28(日) 00:44:36
>>367
腐るほどあると思うが。
369デフォルトの名無しさん:2006/05/28(日) 00:56:41
開発用の、ノートの方がシェーダ使えなくて、やむなく固定も使用してるね

>>366
skinned meshの場合(インデックス付き頂点ブレンディングが有効の場合)は、
ボーンごとにワールド(ローカル)行列をセットする必要があるよ

例えば0番目のボーンのワールド行列をセットするには
device->SetTransform( D3DTS_WORLDMATRIX( 0 ), &matrix_world );
370デフォルトの名無しさん:2006/05/28(日) 02:50:05
>>367
FFXI
371デフォルトの名無しさん:2006/05/28(日) 13:03:06
初心者ですけどVisualStudio2005でビルドしたらunicode形式にしろって警告がでるんですけど
どうしたらいいんでしょう?
372371:2006/05/28(日) 14:06:12
自己解決しました。
どうもすいませんでした
373デフォルトの名無しさん:2006/05/28(日) 14:34:30
>>369 ワールド座標でできました。ありがとうございました。
374デフォルトの名無しさん:2006/05/28(日) 15:40:27
すいません質問です。
VisualStudio2005で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"」
375デフォルトの名無しさん:2006/05/28(日) 15:43:30
>プロジェクトのプロパティ[リンカ]→[入力]→[追加の依存ファイル]設定しているファイル
>「"C:\Program Files\Microsoft DirectX SDK (April 2006)\Lib\x86"」

これってフォルダじゃないのか?
ファイルの設定するところにフォルダ書いたら、そりゃエラー出るだろう。
376374:2006/05/28(日) 16:26:39
>>375
指摘されたところを修正したらうまく行きました。ありがとうございます。
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"
377デフォルトの名無しさん:2006/05/29(月) 00:43:05
質問ですが、SkinnedMeshサンプルで
g_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;
};
378デフォルトの名無しさん:2006/05/29(月) 01:19:02
デバッグ汁
379377:2006/05/29(月) 01:28:00
根本的なところを間違っていたんでなんとか修復できましたw
380デフォルトの名無しさん:2006/05/31(水) 06:48:32
DirectX9のDirectFontについての質問です。
現在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);
で毎フレームフォントの設定をしなおしているからなのですが、
このような方法以外に、フォントの大きさを別々に設定する方法はないでしょうか?
381デフォルトの名無しさん:2006/05/31(水) 06:49:58
またか・・・
もう見飽きた質問だな
382デフォルトの名無しさん:2006/05/31(水) 20:11:28
>>380
GetGlyphOutline でググってみるといいかも。
383デフォルトの名無しさん:2006/06/01(木) 00:15:48
初心者なんで根本的に勘違いしてたらすいません。
Xファイルを読み込んで表示した所、奥に隠れて見えないはずの部分も表示されてしまいました。
深度テストとやらが上手くいってなさそうな雰囲気なのですが・・・
EnableAutoDepthStencil = TRUE;
AutoDepthStencilFormat = D3DFMT_D16;
の後にデバイスを作っていてSetRenderStateで深度バッファを有効にしています。
もう何が原因なのやらさっぱり。D3DRS_ZFUNCを色々いじった結果、全部同じ深度にある事になってるっぽいです。
SetRenderState深度バッファ書き込みを有効にしてみたり色々やったんですが解決しませんです。。。
なんか他に原因があるんでしょうか?

ちなみに使ってるのは2003summer C++6.0です
384デフォルトの名無しさん:2006/06/01(木) 01:08:02
>>383
射影行列(D3DXMatrixPerspectiveFovLHとか)のパラメータは
どうなってるのかしら。
385デフォルトの名無しさん:2006/06/01(木) 01:16:14
DirectX9のDirectFontについての質問です。
現在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);
で毎フレームフォントの設定をしなおしているからなのですが、
このような方法以外に、フォントの大きさを別々に設定する方法はないでしょうか?
386デフォルトの名無しさん:2006/06/01(木) 01:38:22
>>385
2種類のフォントをあらかじめ生成しておけばいいんじゃないの?
(g_pFont1とg_pFont2とか)
というか"設定"じゃなくて"生成"だから、それだと生成されまくりよ。
387デフォルトの名無しさん:2006/06/01(木) 04:47:23
>>384
射影行列のパラメーターを聞かれたので関係あるのかと色々いじってみました。
そんでどうも、前方投影面と後方投影面の距離差を小さくすると上手くいきました。

これは、前方投影面と後方投影面の距離差が大きすぎると計算誤差が出てダメになるって事ですよね?
良く考えたら当たり前ですね深度バッファの計算範囲は0.0f〜1.0fみたいですし。
記憶が正しければfloat型の精度ってそこまで良くなかったような気がしますし。
0.01〜1000くらい取ってたんですが今考えると大変愚かしい。0.01ってなんだ0.01って。
どうもありがとうございます。助かりました。
388デフォルトの名無しさん:2006/06/01(木) 10:36:37
D3DRS_ZENABLEをD3DZB_TRUEにして
D3DRS_ZWRITEENABLEもTRUEにしてるのに
Zバッファが有効にならない状態って
なんか心当たりある人いない?
Zバッファは毎回クリアしてます。
EnableAutoDepthStencilはTRUEです。
AutoDepthStencilFormatはD3DFMT_D16です。
389388:2006/06/01(木) 10:39:11
ごめん、スレ何も見ないで書いた。
>>383と殆ど同じ。
390380:2006/06/01(木) 11:41:10
>>382
後で調べてみます、情報ありがとうございます。m(_ _)m

>>386
なるほど!!生成しまくってたのですね!!
重くなった理由がわかりました!!
フォントを2種類作る方法もわからなかったのですが、
g_pFontを2種類作れば良かったんですね!!
試してみたら成功しました。
ありがとうございましたm(_ _)m
391デフォルトの名無しさん:2006/06/01(木) 14:29:45
質問失礼します。

OS:WindowsXP
IDE:VisualStudio2002
SDK:DirectX9(December 2005)
言語:C++

上記の環境で開発しています。
DirectXでSurfaceなどを取得して、Releaseせずに終了した際に、メモリリークが発生しますよね。
その時に、デバッグモードだと出力ウィンドウに下記のような表示がされるんですが、

Direct3D9: (ERROR) : [0] : Address 0047A3A5
Direct3D9: (ERROR) : [1] : Address 0047A3A5

開発マシンによって出たり出なかったりするんですよね。
適当に設定したので、なにを設定したらメモリリークなどのエラー表示をするのか分かりません。
どなたかご教授願いませんか?
よろしくお願いします。
392デフォルトの名無しさん:2006/06/01(木) 14:33:59
>>391
コンパネ>DirectX>Direct3D>

Debug Output Level
Use Debug Version
393デフォルトの名無しさん:2006/06/01(木) 14:38:46
>>392
設定してみたら出来ました、
色々みてみます。
ありがとうございました!
394デフォルトの名無しさん:2006/06/01(木) 20:14:10
そういえば最近、「DirectX逆引き大全」が出たね。
重大な誤りとかが無ければ買おうと思ってるけど、
どんなもん?
395デフォルトの名無しさん:2006/06/01(木) 20:19:42
レポよろ
396デフォルトの名無しさん:2006/06/02(金) 22:31:43
立ち読みした限りでは浅く広くって感じ
恥ずかしくて今更人に聞けないような事もきちんと書かれていていいんじゃね
397デフォルトの名無しさん:2006/06/02(金) 22:40:22
恥ずかしい とは性的な意味でしょうか
398デフォルトの名無しさん:2006/06/03(土) 02:03:23
カメラの位置から、2Dマウスの場所に向かってレイを飛ばしたいのですが、どうやれば良いのでしょうか?
399デフォルトの名無しさん:2006/06/03(土) 02:20:08
そのようにせい。
400デフォルトの名無しさん:2006/06/03(土) 06:08:05
クリックしたスクリーン座標をワールド座標に変換してみ
401デフォルトの名無しさん:2006/06/03(土) 11:05:06
日本語のドキュメントをインストールしたのですが
どうやったら見られるのかがわかりません
フォルダをみると得体のしれない拡張子のファイルはいくつかあるのですが
402デフォルトの名無しさん:2006/06/03(土) 15:21:42
連結ヘルプコレクション
403デフォルトの名無しさん:2006/06/03(土) 16:01:57
スカートの中は見通せるのにヘルプファイルは見通せないのか
404401:2006/06/03(土) 17:05:21
>>403
ドキュメントの見かたは諦めるからスカートの中の見通しかた教えて
405デフォルトの名無しさん:2006/06/04(日) 01:17:57
縦画面環境で質問、

縦画面をサポートしたビデオカードで画面を縦にしている環境で、EnumAdapterModes()の
結果はやっぱ横画面の時と変わるの?

あと、現在の画面が縦か横かを判断するのはGetSystemMetrix()で画面サイズ拾って
縦横比調べるのでおk?
DirectX的にもっとスマートな方法はないもんかと
406デフォルトの名無しさん:2006/06/04(日) 16:32:36
Direct3Dで描画するときにRGBのRのバッファにだけ
書き込む方法とかない?
407デフォルトの名無しさん:2006/06/04(日) 16:34:27
>>406
D3DRS_COLORWRITEENABLE
408406:2006/06/04(日) 16:39:12
>>407 サンクス。調べてみる。
409デフォルトの名無しさん:2006/06/05(月) 00:39:52
正直に白状するとヘルプ読んでも判らなかったのでここで質問
正しいレンダーターゲットの「戻し方」を教えて下さい。
SetRenderTarget()で描画先を変えた後で元に戻したい場合にどう戻せばよいのか判りませぬ。

SetRenderTarget()で変える前に元々のレンダーターゲットをGetRenderTarget()で取得しておいて、
用が済んだらこの値を使ってSetRenderTarget(0,元の値)とかするのかと思ったけど、GetRenderStateって
参照カウント上がるし、使った(SetRender…で戻した)後は解放するしなきゃならんのでちょっと違和感。

この辺の作法について教えて下さい。
コノトオリ orz
410デフォルトの名無しさん:2006/06/05(月) 00:46:54
そもそも"戻す"ってのがおかしい。
411デフォルトの名無しさん:2006/06/05(月) 00:48:57
どうおかしいのかがワカランのですが
412デフォルトの名無しさん:2006/06/05(月) 06:08:08
>>411
再設定すりゃいいだけじゃね?
413デフォルトの名無しさん:2006/06/05(月) 06:13:36
ここは不親切な回答しかないインターネッツですね
414デフォルトの名無しさん:2006/06/05(月) 06:20:03
別に「元」なんてとっておかないでバックバッファ指定すりゃいいじゃん。
415デフォルトの名無しさん:2006/06/05(月) 10:52:50
これの
http://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の仕様で、後に置いても大丈夫だったりするんですか?
416デフォルトの名無しさん:2006/06/05(月) 11:16:18
>>415
「作っておく」ってなんだよ。
関数の宣言のことなら、プロトタイプ宣言でググれ。
プロトタイプ宣言さえしてあれば、関数の定義の順番なんてどうでもいい。
DirectXは関係なく、C言語の話。
417デフォルトの名無しさん:2006/06/05(月) 14:59:25
directmusicで曲を再生すると、なぜか音飛びや音ブレが起きます
容量に関係なく曲によってそういった現象がおこるものとそうでないものがあります
いったい何がおかしいのでしょうか 助けてくださいm(_ _)m
418デフォルトの名無しさん:2006/06/05(月) 15:55:45
ところで
419デフォルトの名無しさん:2006/06/05(月) 15:59:05
420デフォルトの名無しさん:2006/06/05(月) 17:47:44
すいません 手の施しようが無くて困っているのですが教えていただけませんか

DirectShow Filter Toolでロクに考えもせずにフィルタ登録を解除していったら、
DirectShow Filter Tool自体が機能しない上に、
メディアプレイヤーも全く機能しなくなってしまいました
起動はするのですが、メディアファイルを読み込む時点でエラーが起きます

・WMP→不明なエラー

・リアルプレイヤー→エラー報告すらなし

・GOMプレイヤー
→「ダイレクトシヨーを初期化できません。
このソフトウェアはダイレクトX 7.0以上が
インストールされていないと動作しません。」

と出ます。

DirectXは9.0Cがインストールしてあるので、
あとは認識させることが必要だと思うんですが…方法が分かりません。

どなたか分かる方、ご教授お願いします…。
421デフォルトの名無しさん:2006/06/05(月) 17:59:45
たとえば
422デフォルトの名無しさん:2006/06/05(月) 21:20:55
なんつーか、回答者も初心者だよな
423420:2006/06/06(火) 00:40:43
なんかスレ違いだったみたいですね…お目汚し大変失礼しました。
他を当たってみます…。
424デフォルトの名無しさん:2006/06/06(火) 15:40:04
ああこのスレ大好きだ・・・過去ログ漁ったら知りたかった事即解決された(;´Д`)
うっひょーー
425デフォルトの名無しさん:2006/06/07(水) 14:22:14
すみません質問です。
DirectX9で3000*3000といった大きな画像を読み込んで等倍で表示する場合、
元画像は1024*1024サイズ毎に切り分けないとダメなのでしょうか?

できるだけ元の画像はいじらないでDirectX上から大きな画像を扱うにはどうすればよいのでしょう。
426デフォルトの名無しさん:2006/06/07(水) 14:38:41
4096x4096のテクスチャの左上に展開。
そうはいっても4096x4096の32Bit画像を1つ持つだけでも
64MBのメモリが必要になるわけだが・・・

そんなでかい画像を使う必要あんのか?
256x256をタイル上にしてレンダリングしてもバイリニア+回転とか
やらない限りつなぎ目なんてそうそう見えないはずだが。
427425:2006/06/07(水) 15:54:10
なるほどたしかにメモリは食いますね・・・画像カット以外に手はないのでしょうか?

>そんなでかい画像を使う必要あんのか?
まぁ、そうなんですけどチト仕事上で必要なので
元画像を複数枚に分けてってのはできるだけ避けたいのです。
428デフォルトの名無しさん:2006/06/07(水) 15:58:00
なぜ避けたいのか理由を明確にせよ。
429デフォルトの名無しさん:2006/06/07(水) 16:15:06
3000x3000のテクスチャを作成すればいーじゃん。
430425:2006/06/07(水) 16:32:03
>>428
ようは会社間の力関係です。
上から頂戴した画像素材様をこちらの都合で切り分けたりすることはもってのほか。
自分はひ孫以下の階層に位置しますので、もちろん画像の仕様について口を出せません。
またプログラム作成後も画像がさし変わるので、切り分けの手間も入れたくないのです。
・・・という理由です。 orz
431デフォルトの名無しさん:2006/06/07(水) 16:37:42
昔から孫の頼むことにじいさんばあさんは弱くてだな…
432デフォルトの名無しさん:2006/06/07(水) 16:38:35
ファイルを分割しなくても、プログラム側で切り分ければいい。
433デフォルトの名無しさん:2006/06/07(水) 16:44:52
>>430
>>432が正解。ファイルを一気に読む必要などない。分割して読み込めばいいだけ。
434デフォルトの名無しさん: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)
 }
}

こんな感じでどーよ。
435デフォルトの名無しさん:2006/06/07(水) 16:46:38
>int Sx = 3000 - (x * size_x);
>int Sy = 3000 - (y * size_y);
ココ間違ってた・・・
436425:2006/06/07(水) 17:20:08
>>434
なるほど、プログラム内部で2のn乗サイズに切り分ければいいんですね。
この方法でなんとかなりそうです。(^^;

どうみても初心者質問です。本当にありがとうございました。
437デフォルトの名無しさん:2006/06/08(木) 19:19:58
質問です
3Dでパースをつけないように描画する方法があれば教えてください
DirectXのバージョンは8です
438デフォルトの名無しさん:2006/06/08(木) 19:28:32
D3DXMatrixOrthoLH

DirectXだとかOpenGLだとかは関係ない。
透視変換時のマトリックスの違いだけだ。
439デフォルトの名無しさん:2006/06/09(金) 01:06:57
そういえば、普段は正常なシーンでも、射影変換だけ正射影に切り替えると
Zバッファの比較がぐちゃぐちゃになるのですが、
そういうものなんですか?

まあ、ツールのワイヤーフレーム画面ならそれでも問題なく動きそうではあるけど。
440デフォルトの名無しさん:2006/06/09(金) 08:27:22
アホなことを言う前に自分で計算してみろ。
441デフォルトの名無しさん: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 にて開発をしています。
442デフォルトの名無しさん:2006/06/09(金) 14:18:31
シェーダーにちゃんとテクスチャ送ってる?
IDirect3DDevice9::SetTexture()じゃシェーダーにはテクスチャ送られないぞ?
443デフォルトの名無しさん:2006/06/09(金) 15:14:11
すんません、質問させてください。
DirectX9で円や矩形といった基本的な図形を描画するにはどうすればよいのでしょうか?
ID3DXLineというのは見つけたのですが、四角や円を描く方法が分かりません。

多分ものすごく初心者質問だと思うんですが、ヘルプやGoogleで調べても分かりませんでした。
ご存知の方いらしたら、よろしくお願いします。
444デフォルトの名無しさん:2006/06/09(金) 15:19:16
線分を4本組み合わせれば矩形になります。
三角関数を使って座標を計算しながら1周つなげれば円になります。
445デフォルトの名無しさん:2006/06/09(金) 15:23:29
あう・・・それはもしかすると
「そんなのねぇよ!板ポリで描けや。」
ということでしょうか・・・(´;ω;`)
446デフォルトの名無しさん:2006/06/09(金) 15:33:59
ポリゴン以外に画面描画する方法はない。

と思っておけばよい。
447デフォルトの名無しさん:2006/06/09(金) 15:34:46
いや目的によりけりでしょ。
事前に円や矩形のテクスチャ用意してそれを表示するだけで済む場合もあるし・・・
でも DrawPrimitive の類を使って自前で描くのが全ての基本。
GetDC 使えばデバイスコンテクストもゲットできるから GDI の描画関数も使えるけど、
それだと DirectX 使う意味があまりないかもね。
448デフォルトの名無しさん:2006/06/10(土) 17:45:31
C# + DirectSoundについては、ここで質問してもかまわない?
449デフォルトの名無しさん:2006/06/10(土) 18:19:06
C#でDirectX9 初心者の館 2頂点目
http://pc8.2ch.net/test/read.cgi/tech/1103998649/

ここでお願いします
450デフォルトの名無しさん:2006/06/10(土) 18:25:50
>>449
URLまで貼ってくれて・・・丁寧な案内さんくすです。
451デフォルトの名無しさん:2006/06/11(日) 05:57:02
誰かNVperfHUDの2.0ベータもってない?
徹夜で検索したけどどこにもないよ・・・
452デフォルトの名無しさん:2006/06/12(月) 13:10:42
どこかshaderいっぱいおいてあるとこない?
453デフォルトの名無しさん:2006/06/14(水) 11:14:25
質問です。
D3DXCreateTextureFromFileExを使って読み込んだテクスチャを、四角ポリゴンに貼り付けて使おうとしています。
いわゆる2Dゲーム用の描画を作っているところです。

テクスチャを2の乗数とし、かつ四角ポリゴンの表示場所を-0.5fし、フィルタをD3DX_FILTER_POINTEにすることで、ドット絵も綺麗に(アンチがかからずそのままという意味)表示することができました。

で、次のステップとして「640*480のような画像であっても、1サイズ上(1024*512)の領域を確保して、そこにロードすることによって対応したい。使わない領域ができて無駄だけど…」と思いました。
D3DXCreateTextureFromFileExの第二、第三引数に、テクスチャサイズを指定するところがあるので、早速1024, 512と入力してみたのですが、変化がありません。
(四角ポリゴンの設定は変えていないので、予想では「左上にファイル画像が。右と下に余白がある画像」が描画されるつもりでした)
大きめのテクスチャに、ファイルから読み込んだ画像を配置する方法は、D3DXCreateTexureFron〜ではなく、別にあるのでしょうか?

(逆に256,256などを指定することで、画面が粗くなることは確認しました)

454デフォルトの名無しさん:2006/06/14(水) 11:39:28
追記です。
DirectXのヘルプで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)方法はないものでしょうか?
455デフォルトの名無しさん:2006/06/14(水) 11:47:12
>>453
D3DX_FILTER_NONE
456デフォルトの名無しさん:2006/06/14(水) 11:56:28
>>455
ありがとうございます。
解決することができました。
FILTER_POINTについて誤解していたようですね。再度調べてみます。
457デフォルトの名無しさん:2006/06/14(水) 14:59:49
ビデオチップ Intel(R) 82852/82855 GM/GME Graphics Controller

DirectX7 において、CreateSurfaceを使ってビデオメモリにオフスクリーンサーフェスを作成するとき、
1024x1408(16ビット、32ビット共)からメモリ不足が返ってきて作成できなくなります。
1024x1407までは作成できます。
システムメモリには問題なく作成できます。
ビデオメモリの残りが30Mと十分に余っているのになぜ作成できないのでしょうか?
同じような症状で困った方や、解決した方がおられましたら、教えていただければ助かります。
458デフォルトの名無しさん:2006/06/14(水) 15:23:59
DirectDrawSurfaceは縦長サーフェイスはビデオカードの気分次第です。
素直に縦長のサーフェイスは分割しましょう。
459デフォルトの名無しさん:2006/06/14(水) 18:02:09
417です
事故解決しましたので僕と同じ症状が出ている方はためしてくださいな
DirectAudio初期化の際のCoInitialize(NULL);を呼びますが、私はこれを
ウィンドウの設計図
こんなやつ
WNDCLASSwndclass;
memset( &wndclass, 0, sizeof( WNDCLASS ) );

// ウィンドウの設計図
wndclass.hInstance= hInstance;
     以下続く

の前呼んでいたから音飛びなどが出ていたようです。
なぜだろう・・バグが直る要因がわからないのってすっきりしませんね
バグ直ったからとりあえず良しとしますが、今後調査します
460デフォルトの名無しさん:2006/06/14(水) 21:58:59
なんで初心者がDirectX7に手を出すんですか?
それにハードウェアblitって今でもやるメリットあるんですか?
普通の2Dゲームなら、ソフトウェアでも滅多に処理落ちしないんじゃないですか?
461デフォルトの名無しさん:2006/06/14(水) 22:02:10
>>460
半年ロムってろ
462デフォルトの名無しさん:2006/06/14(水) 23:33:32
2Dアクションゲーム(スーパーマリオみたいなの)でDirectX使う場合ってDirectInputとかDirectSoundを使うくらいですか?

全く見当違いのこと聞いてたらごめんなさいorz
463デフォルトの名無しさん:2006/06/14(水) 23:46:00
>>462
マジレスするとそんなことも調べられないようじゃ2Dなんかに手をださないほうがいい。
はっきりいって2Dゲームってのは鬼門だ。
鬼門であることを理解するのもまたそれなりの期間がいる。
464デフォルトの名無しさん:2006/06/15(木) 01:10:07
>>463
んなこたーねえだろw
>>462みたいなことを聞いてくるやつには、
3Dのリソースを簡単に作れねえ以上、2Dゲームの方がまだ作りやすい。

>>462
今時2Dでも、DirectDrawは使うやついないとして、、
Direct3D+DirectInput+DirectMusic(DirectSound)じゃね?
465デフォルトの名無しさん:2006/06/15(木) 01:18:17
>>464
メタセコでも使えば一発で作れるじゃん>XFile
別にアニメーション(3D的な)しなくてもいいっしょ?
2Dだから単純なポリ板作ってテクスチャ貼り付けるだけだし。
466デフォルトの名無しさん:2006/06/15(木) 02:48:29
質問です。

D3DPRESENT_PARAMETERS の Windowed に false を与えて
デバイスをリセット、全画面化の後、Alt+TAB キーなどで他のアプリに
フォーカスを移動させてからの復元を考えています。

この時点では最小化状態になっているので、ウインドウのプロシージャから
WM_SYSCOMMAND の SC_RESTORE をフックして、その内部で
もう一度デバイスをリセットすることで復元できるかと考えたのですが、
まだウインドウが復元しきっていないからなのか、リセットに失敗してしまいます。

こういう場合、どのタイミングでリセットするべきなのでしょうか?
ウインドウが復元されてから(といっても表示は失われてしまっている状態ですが)
改めてリセットを行えば全画面状態が復元されるため、D3DPRESENT_PARAMETERS の
パラメータ指定違いなどは多分無いと思います。

ShowWindow() の呼び出しも試したのですが、SC_RESTORE の中からでは意味が無い様でした。


どなたかアドバイスいただけませんか?
467466:2006/06/15(木) 03:32:58
自己解決とは少し違うのですが、一応対処だけはできたので、自己レスしておきます。

描画ループのIDirect3DDevice9::Present() に失敗したら、
IDirect3DDevice9::TestCooperativeLevel() を呼び出して
返り値に D3DERR_DEVICENOTRESET が戻ってきた時点で
改めてリセットをかけることで、問題なく復元はできました。

とはいえ、これが本当に正しい復元方法なのかは判断つきかねるところです。

引き続き、どなたか詳しい方のアドバイスをいただけたらと思います。
468デフォルトの名無しさん:2006/06/15(木) 04:28:55
SDK付属のサンプルフレームワークに、目的の処理が
全部含まれているよ。
それを解析すればおk
469466:2006/06/15(木) 06:21:46
orz

DXUTの長大さに恐れをなして、読むのを諦めてました…

デバッガで追ってみたら、やってることはほとんど変わらない
(Present() の結果で判断するのではなく、レンダリング前に
TestCooperativeLevel()を呼び出してチェックしているくらい)
みたいなので、この辺についてはこのまま行こうと思います。

ありがとうございましたorz


マルチディスプレイの時はウインドウを表示しているディスプレイに合わせて
デバイスのアダプタを切り替えてたり、本当にここまでしないといけないのかってくらい
色々やってますね、DXUT。

そのまま流用してもいいんだろうけど、隠蔽されすぎで何がなにやらなので
もうしばらくは蹴ッ躓きながら読み進めていこうと思います。

重ね重ねありがとうございましたorz
470デフォルトの名無しさん:2006/06/15(木) 12:00:54
LPD3DXFONTを利用して、3D画面に文字列を描画しているのですが、
その文字列がどれくらいの幅、かつ高さなのか取得する方法はありませんでしょうか?
Microsoft DirectX 9.0 SDK (Summer 2004)をつかっております
471デフォルトの名無しさん:2006/06/15(木) 16:00:00
>469
どうでもいいことだけど
ここでのorzって挫折じゃなくてお辞儀の意味か?
礼というより土下座で謝ってるように見えるが。
472デフォルトの名無しさん:2006/06/15(木) 17:26:44
DirectX風に謝れよ
473デフォルトの名無しさん:2006/06/15(木) 19:27:10
D3DXorzLH()
474デフォルトの名無しさん:2006/06/15(木) 20:44:27
orz
三跪九叩頭の礼
475デフォルトの名無しさん:2006/06/15(木) 20:53:23
orzを使いたがるのは腐女子のようなセンスの人間
馴れ合いが好きで、鬱スレのウナギとかつまらないことに興じ、
同じ嗜好を持たない者がめについたら、罵倒でたたみ掛け
村八分にして喜ぶ。
476デフォルトの名無しさん:2006/06/15(木) 21:07:33
orzを使いたがるのは腐女子のようなセンスの人間
馴れ合いが好きで、鬱スレのウナギとかつまらないことに興じ、
同じ嗜好を持たない者がめについたら、罵倒でたたみ掛け
村八分にして喜ぶ。
477デフォルトの名無しさん:2006/06/15(木) 21:58:33
('A`)
478デフォルトの名無しさん:2006/06/15(木) 22:01:49
('A`)
479デフォルトの名無しさん:2006/06/15(木) 23:29:03
// D3DPT_TRIANGLEFAN
vside[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
480デフォルトの名無しさん:2006/06/16(金) 02:13:27
VC++6.0使ってるんですけどDIRECTXSDKのバージョンによっては(最新?)
SDKが使えないようなことをどっかで見たようなきがするんですけど
最新のやつでも問題ないですか?MSのページ見たけどよくわからん
481デフォルトの名無しさん:2006/06/16(金) 02:17:05
わからんままでいいじゃん
482デフォルトの名無しさん:2006/06/16(金) 02:20:54
October 2004
483480:2006/06/16(金) 02:52:59
>>482ありがと
それだとおけですよね?
あと今最新版のランタイム入れてるんですけど古いSDK入れてもおけ?
484デフォルトの名無しさん:2006/06/16(金) 03:20:46
<わからない五大理由>
1. 読まない ・・・説明書などを読まない。読む気などさらさらない。
2. 調べない ・・・過去スレ、ググるなど最低限の内容も自分で調べようとしない。
3. 試さない ・・・めんどくさいなどの理由で実行しない。する気もない。
4. 理解力が足りない ・・・理解力以前の問題で理解しようとしない。
5. 人を利用することしか頭にない ・・・甘え根性でその場を乗り切ろうとする
485デフォルトの名無しさん:2006/06/16(金) 08:13:05
次は質問スレで484みたいのを書く五大理由
480は態度で損しているが
486デフォルトの名無しさん:2006/06/16(金) 08:18:21
次は、質問スレを教えてクンスレと勘違してる>>485みたいな奴が発生する五大理由
487デフォルトの名無しさん:2006/06/16(金) 09:39:20
何言ってるんだ、質問スレは教えてクンスレだろw
488デフォルトの名無しさん:2006/06/16(金) 18:52:24
そりゃそうだよな。
しかも初心者質問スレだし。
489デフォルトの名無しさん:2006/06/17(土) 00:09:22
じゃあいつもの流れに復帰。
490デフォルトの名無しさん:2006/06/17(土) 02:32:29
お前ら彼女いる?
491デフォルトの名無しさん:2006/06/17(土) 02:39:54
いたけどリリースされてしまった。
慰めてくれ。
492デフォルトの名無しさん:2006/06/17(土) 03:05:09
>>490
童貞暦27年です
493デフォルトの名無しさん:2006/06/18(日) 14:53:58
質問です。XP、.NET 2005、DirectX 9.0c です。

Direct3D を用いて 2D の描画を行っています。
あるテクスチャの貼られた 2D ポリゴンがフェードアウトする
(α値が 255->0 に変化する)様子を描きたいのですが、いい方法が思いつきません。

1.CreateVertexBuffer 時に得られた頂点バッファのインターフェイスをロックし、ディフューズ色を書き換える
 →ロックに時間がかかってしまう
2.SetTextureStageState でα値の計算方法を、テクスチャの値×自分で計算した透明度に設定
 →「特定の値との乗算」という方法が見つからない
3.ライト/マテリアル/法線を FVF に追加し、ライティング処理を利用する
 →透明になるわけではないので、後ろが透けるわけではない

このような処理は、何を使って行うものなのでしょうか?
よろしくお願いします。
494デフォルトの名無しさん:2006/06/18(日) 14:59:57
三次元テクスチャを使えw
495493:2006/06/18(日) 15:03:10
肝心なことを書き忘れていました。

2D ポリゴンと言うのは、FVF にD3DFVF_XYZRHW を指定しているということです。
そもそもライトは効きませんね・・・。

>>494
2D ポリゴンでは上手く行かないのでしょうか?
496デフォルトの名無しさん:2006/06/18(日) 16:42:58
DrawPrimitiveUP系でいいじゃん
497デフォルトの名無しさん:2006/06/18(日) 16:46:44
>>493
全部用意して切り替えるでFA
498デフォルトの名無しさん:2006/06/18(日) 18:18:19
>1.CreateVertexBuffer 時に得られた頂点バッファのインターフェイスをロックし、ディフューズ色を書き換える
> →ロックに時間がかかってしまう
どのくらい時間がかかったのか、測定条件と結果を言ってみ。
499デフォルトの名無しさん:2006/06/18(日) 18:25:14
だから、全部用意して切り替えるでいいじゃん。
α値やなんかは頂点シェーダで渡せばいいんじゃん。
頂点シェーダってのは別にハードでサポートしてなくても勝手に動かしてくれんだよ。
その辺は心配すんな。
ロックしてなにやらする必要も無いぞ。
俺は矩形の描画でも頂点バッファなんかいちいち弄らずにシェーダにマトリクス情報渡してサイズも確定させちゃうけどね。
500デフォルトの名無しさん:2006/06/18(日) 21:08:36
>>493
>1.CreateVertexBuffer 時に得られた頂点バッファのインターフェイスをロックし、ディフューズ色を書き換える
> →ロックに時間がかかってしまう
Lockに大して時間なんてかからない。
そんなにLockが嫌ならDrawPrimitiveUPを使う。

>2.SetTextureStageState でα値の計算方法を、テクスチャの値×自分で計算した透明度に設定
> →「特定の値との乗算」という方法が見つからない
D3DRS_TEXTUREFACTOR

>3.ライト/マテリアル/法線を FVF に追加し、ライティング処理を利用する
> →透明になるわけではないので、後ろが透けるわけではない
???
透明になるけど?
501デフォルトの名無しさん:2006/06/18(日) 21:35:48
>>500
テクスチャの透明度と頂点に設定したαを使うなら
マルチテクスチャ(?)を使って、>>500が言ってる奴と頂点のどの値からとってくるのか指定しないと駄目じゃなかったっけ?

例えばマルチテクスチャ2のときって

1枚目の色をどっからとってくるか?
2枚目の色をどっからとってくるか?
1枚目と2枚目の計算をどうしたいのか?

って必要じゃなかったっけ?

この場合だと、
1枚目の色:テクスチャの色
2枚目の色:マテリアルの色
1枚目と2枚目の計算:テクスチャのαで計算した後の色をさらにマテリアルのαで計算する。

みたいな感じじゃなかったっけ?

超うろ覚え。間違ってたら腹切って責任とるわw
502デフォルトの名無しさん:2006/06/18(日) 21:36:43
あ、マテリアルじゃないわ、頂点だっけ?
503デフォルトの名無しさん:2006/06/18(日) 22:12:11
間違え

X:1枚目と2枚目の計算:テクスチャのαで計算した後の色をさらにマテリアルのαで計算する。
○:1枚目と2枚目の計算:テクスチャのαと頂点のαで計算する。
504デフォルトの名無しさん:2006/06/18(日) 22:36:21
>>501
そんなもの、常に設定するのが当然だけど。
○○のときは指定するとかいうものではなく、常に明確に指定するもの。

デフォ設定を利用するなんて、描画オブジェクトが1つしかないようなデモくらい。
505493: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 を使う方法、色々試してみて最適なのを探してみます。
ありがとうございました。
506デフォルトの名無しさん:2006/06/19(月) 00:36:36
テクスチャをロックせずに頂点カラーをロックすればいいのでは・・・。
507493:2006/06/19(月) 00:39:22
>>506
テクスチャのロックは、今回の件とは別件です。
まぎらわしくて申し訳ないです。
508デフォルトの名無しさん:2006/06/19(月) 10:08:14
それはロックが遅いんじゃなくって書き込み自体が遅かったってオチかね。

いわゆるロックの遅さって、処理そのものの重さの問題じゃなくって、
描画に使用される段になってロックがかかっていると、そこでロックが開放されるまで
処理がストールしちまうことにあるわけであって、回避したければダブルないしは
トリプルバッファリングすればいいってことになるんだろうけど、そういう認識であってる?
ドライバ側の実装次第なんでなんともいえない?

ビデオ側への散発的なメモリ転送がやたらコスト食う遅いことも考えられるか。
509デフォルトの名無しさん:2006/06/19(月) 18:02:54
DirectXで外積とか内積使う場面ってどういうときなんですか?
それによって得られる利点(効果)は何なのですか?
510デフォルトの名無しさん:2006/06/19(月) 18:17:18
ポリゴンと線分の交点求めたりとかできるよ。

内積も外積も水や空気みたいに大事なものなんで、利点は何と聞かれると困るけど。
ぶっちゃけ無いと死ぬ。
世界が成り立たない、
511デフォルトの名無しさん:2006/06/19(月) 18:44:18
3Dの世界には必須なものなのですか・・・
数学的知識盛り沢山ですね^^;

>>510
どうもありがとうございました!
512デフォルトの名無しさん:2006/06/19(月) 20:12:57
>>511
3Dの世界?2Dで必要ないとか思ってるの?

とりあえず、平面上で自分の進行方向からみて
敵が右にいるか左にいるか?って外積使って出してみ?

それができたら、平面上に玉と直線の当り判定用意して、
玉が直線に当たって跳ね返る方向を内積使って出してみ?
513デフォルトの名無しさん:2006/06/19(月) 20:56:56
>>512
おぁ・・・それが出来れば確実にステップアップとなりそうです。使いどころが前よりかは
見えてきました。重ねて御礼申し上げます。
514デフォルトの名無しさん:2006/06/19(月) 22:59:44
MFCのピクチャーコントロールに描画してるんですが,
ピクチャーコントロールのサイズが変わってもビューポートの値変わってないようです.

ハンドルから?再取得するような関数ってありますか?
515デフォルトの名無しさん:2006/06/19(月) 23:28:21
GetWindowRect と AdjustWindowRect および AdjustWindowRectEx でググりなされ。
516514:2006/06/20(火) 03:38:11
>>515
遅レスすみません

調べてみます.
ありがとうございました
517デフォルトの名無しさん:2006/06/20(火) 21:09:01
8分木で表現されてるモデルを
効率的に描画するアルゴリズムで有名なものある?
518デフォルトの名無しさん:2006/06/20(火) 22:08:57
>>517
意味わからん。
効率的ってどう効率的なのがいいの?
つーか、効率も糞もやっぱ、始めはクリッピングじゃねぇの?
519デフォルトの名無しさん:2006/06/20(火) 22:18:51
データ構造がオクトツリーになってるなら
幹から順にビューフラスタムでカリングしていけばいいだけの気がする。

いきなりOBBで判定する前にスフィアで絞り込めばちょっと早くなるかの。
520デフォルトの名無しさん:2006/06/20(火) 23:48:41
>>519
ツリーになってるといっても幹がクリッピングされたとしても
枝の方がクリッピングされるかどうかはわからないから
結局、すべてのオブジェクトをカメラ座標までもってこないとわからないんじゃね?

効率的もなにもないような・・・
521デフォルトの名無しさん:2006/06/20(火) 23:54:35
普通、幹は枝を包括するように作らんか?
522デフォルトの名無しさん:2006/06/21(水) 00:18:22
>>521
すまん。
実は8分木で表現される物体ってのがよくわからん状態でレスしたw
つまりただの8分木の描画について聞きたかっただけなんだな・・・orz
物体っちゅーからなんか別のモンだと思った。
523デフォルトの名無しさん:2006/06/21(水) 00:48:41
>>510
>>512
ついでに教えてくれ
hsin や hcos って何に使う3D、2Dだと何に使う?
524デフォルトの名無しさん:2006/06/21(水) 01:24:48
>>523
アークサインとかアークタンジェントは使ったことあるけど
双曲線サインなんて使ったことないな。(俺は)
まあ、サインとかコサインとかタンジェントとか内積とか外積とかよりは
ポピュラーには出てこないんじゃね?

とりあえず、数学は高校数学+αぐらい押さえときゃいいんじゃね?
物理も高校物理+αぐらいで十分っぽいし。
あとは気合でなんとかなる。

意外とよく使うのが直線の方程式だ。(y=ax + bの方じゃなくてなんか凝ってる方w)
525デフォルトの名無しさん:2006/06/21(水) 02:53:32
俺はsin/cos&atanはテーブルにして使ってる程度だなぁ。
次世代機になると流石にテーブルのメモリアクセスより
関数呼び出した方が遥かに早そうだがなー。

まぁライブラリのシステム部分とかシェーダー周りを触らない限り
三角関数も基本的な内容で事足りるんだよな。
普通にゲームを作る上ではソレらしく見えればいいからやりようはいくらでもある。

>>524
3Dやるなら直線と平面の方程式はおさえておかないと厳しいよなw
526デフォルトの名無しさん:2006/06/21(水) 04:18:41
>俺はsin/cos&atanはテーブルにして使ってる程度だなぁ。

整数系か固定少数系で弾幕シューティングでも作ってるなら、まあ使うのかも知れないけど、
現行のコンシューマー機でも、自前でテーブル持つメリットってほとんど無くね?
ライブラリ側の実装自体、テーブル+補間程度だったりするしなあ。
527デフォルトの名無しさん:2006/06/21(水) 06:21:30
>>518-522
サンクス
とりあえず>>519について調べてみる。

効率的ってのは見えない面を描画しないアルゴリズムとかです。
8分木でやると視点が変わっても絶対に見えない面だとがが出てくるんで。
528デフォルトの名無しさん:2006/06/21(水) 07:34:56
そもそも、俺はsin/cos自体あまり使わないなぁ。
ほとんどベクトルだけで用が足りる。
529デフォルトの名無しさん:2006/06/21(水) 08:52:03
内積から回転角求めるときacosとか使わない?
530デフォルトの名無しさん:2006/06/21(水) 08:55:28
いわゆるラジアン角自体への用って、思うほどないんだよね。
回転量とかも大抵Quaternionで保持して終了だし。
明滅とかのためのちょっとしたカーブの取り出しに sin や cos 使うことは多いんだけど、
俺も大して使わないかも。


>8分木でやると視点が変わっても絶対に見えない面だとがが出てくるんで。

これなんかおかしくね??
8分木の構造自体が間違ってるか、使い方を間違えてない限り、そういうことは起きないと思うんだけど。
531デフォルトの名無しさん:2006/06/21(水) 09:08:52
>>529
そもそも角度という単位を、ユーザへの情報表示以外であまり使ってない。
532デフォルトの名無しさん:2006/06/21(水) 11:14:43
8分木でも確かに見えない面とか出てくるけど、
それって屋内マップの場合じゃないか?

屋内マップなら8分木じゃなくBSPツリーの方が一般的のような気も。
4/8分木構造は基本的に屋外マップのような広大なフィールド向けの構造だと思うけど。

>>526
コンシューマーの中でも特にダメな黒箱はテーブルの方がいいと思われ。
とはいってもメモリ結構使うし、メモリのアクセス速度考えるとVU0で書いた方がいいかもな。
533527:2006/06/21(水) 13:32:52
見えない面ってのは、4分木で表すと
http://www.co0.net/upload/src/0006521309.png
こういうところは外側から見えないんで
これを判別するにはどうしたらいいかなぁと思いまして。
534デフォルトの名無しさん:2006/06/21(水) 19:27:38
速度云々は関係なしに跳ね返る方向なんかを8方向に固定したいとかいうときに
テーブルをつかった小細工が使えるときがある。>テーブル
535デフォルトの名無しさん:2006/06/21(水) 20:55:15
円柱と立方体の衝突判定がしたいのですが
いい方法はありませんか?

円柱は底面の中心の座標と軸方向ベクトルが与えられ、
立方体は原点から(w,w,w)の大きさです。
536デフォルトの名無しさん:2006/06/21(水) 22:40:08
>>534
そりゃ、まあ、そうだろうけどさあ。
だから何よって感じだぞ、流石に。
537デフォルトの名無しさん:2006/06/22(木) 22:12:53
ヘルプの複数レンダーターゲットの説明がよく判らないので教えて下さい。
要するにCreateRenderTarget又はCreateTextureでD3DUSAGE_RENDERTARGETを
指定して作るレンダーターゲットの上限数は、D3DCAPS9.NumSimultaneousRTsの
値の数という事なのでしょうか?
つまりこの値が1ならレンダーターゲットは1つしか作れないという事でしょうか?
538デフォルトの名無しさん:2006/06/22(木) 22:57:06
いや、SetRenderTargetで同時指定できるレンダーターゲットの数の上限。
レンダーターゲット対象自体はメモリが許す限りいくらでも作れるよ。
539デフォルトの名無しさん:2006/06/22(木) 23:32:01
>>538
あー、やっと理解できますた。
ありがとうございます。
540デフォルトの名無しさん:2006/06/23(金) 13:02:56
2D剛体シミュレーションのライブラリ、フリーでありませんか?
541デフォルトの名無しさん:2006/06/23(金) 23:01:13
質問させてください。現在DirectX9.0cSDKを入れているのですが、
ネット上のサンプルコードを実行したいためDirectX8.1も入れてみたいのですが、
共存ってできるのでしょうか?
542デフォルトの名無しさん:2006/06/23(金) 23:38:38
>>541
9を入れると8も動くようになる仕様でな・・・
っていっても9以降はちょっと大変なことになってるが・・・
8なら9いれてありゃ動くよ。
543デフォルトの名無しさん:2006/06/23(金) 23:52:59
>>542
そうなんですか。でも、サンプルコードにある
#include <D3DX8.h>
とか、D3DX8.hとかが見つからない、となるのですが・・・。8関連のヘッダは
DirectX9.0cには含まれて居ないんでしょうか?
544デフォルトの名無しさん:2006/06/24(土) 00:25:28
>>543
うっそまじで?
そうだっけ?
そんな感じだったっけ?
バージョン定数設定するだけだと思ったけど・・・
最新のヘッダで8が動くだけだったっけか?・・・
545デフォルトの名無しさん:2006/06/24(土) 01:28:54
D3D8.hは入ってるけどね。
DirectX7から10までのヘッダは含まれてるし、インターフェイスも取得できるみたい。
546デフォルトの名無しさん:2006/06/24(土) 01:37:26
>>545
おっしゃるとおりD3D8.hは入ってました。しかし、D3D8X.hがないというのは一体・・・?
D3D9X.hの方を使え、ということでしょうか?
547デフォルトの名無しさん:2006/06/24(土) 01:40:10
>>546
インクルード自体はD3D9X.hを指定して、バージョン定数を定義してやればいいんじゃね?
548デフォルトの名無しさん:2006/06/24(土) 02:55:36
>>547
#include <D3D9X.h>
するまえに
#define DIRECT3D_VERSION 0x0800
としろ、という事でしょうか?
549デフォルトの名無しさん:2006/06/24(土) 08:38:37
>>548
そんな感じでよかったと思うんだけど、駄目だった?
550デフォルトの名無しさん:2006/06/24(土) 13:24:55
手元にソ−スが無い状態で申し訳ありませんが質問させてください。

D3DXMatrixPerspectiveFovRH って描画空間を x=[-1,1] y=[-1,1] z=[0,1]に変換するってことでいいんですよね?
実際やってみたところ値がこの範囲に収まらなくて…
551デフォルトの名無しさん:2006/06/24(土) 13:54:48
>>550
そんなこといわれたって・・・
552デフォルトの名無しさん:2006/06/24(土) 14:33:33
視野に収まってない座標を変換してるだけなんじゃないか?
エスパーでもないとパラメータなしじゃ答えられん。
553デフォルトの名無しさん:2006/06/24(土) 14:36:45
>>550
それを答えるかわりに、簡単な計算を教えてください。
10+x=y
xは不明です。yの答えを一つの整数でお願いします。
554550:2006/06/24(土) 14:58:26
質問の仕方が悪くて申し訳ありません。
改めて読んだらほんとに意味不明な質問でした。

D3DXMatrixPerspectiveFovRHで作られる射影変換行列による座標変換によって描画される範囲(視錘台)は先ほどの直方体に変換されるのでしょうか?

やはり具体的なパラメータなしではわからないですね。大変失礼いたしました。スルーでお願いします。
555デフォルトの名無しさん:2006/06/24(土) 21:12:28
すみません、DirectXSDKのDXtexを実行したいのですがd3dref.dllを入れて下さいといったような
メッセージが出てきて実行できません 一度、DLLサイトで落としたd3drefをx86のフォルダに入れたのですが
結果は同じでした。格納場所が違うのでしょうか
556デフォルトの名無しさん:2006/06/24(土) 22:14:09
C:\Windows\System
とかに入れればいいとは思うけど、その前にDirectXSDKをインスコしないで
SDK内のExeを実行しようとしているのか聞いてみたい。
素直にSDK入れた方が早くね?
557555:2006/06/25(日) 04:27:18
 SDKをREMOVE?結局、再インストールしたら普通に実行されました・・・
再インストールは3回くらいやったのですが・・・・なんだったんだろう
558デフォルトの名無しさん:2006/06/25(日) 05:28:16
なんだったんだろう?といわれても、なんだったんでしょうねぇ・・・
559デフォルトの名無しさん:2006/06/25(日) 09:56:53
まあ良かったじゃないか。
560デフォルトの名無しさん:2006/06/25(日) 09:57:55
CG板の奴っぽいな
向こうでも思ったが礼くらい書けw
561デフォルトの名無しさん:2006/06/25(日) 13:09:54
ジョイパッド(PS用コントローラ)からの入力処理をしたいのですが、
DirectInputとjoyGetPosExではどちらが使い勝手いいのでしょうか?
また、これらは、OpenGLと組み合わすことできますか?
562デフォルトの名無しさん:2006/06/25(日) 13:44:49
聞く前に試せ。
563デフォルトの名無しさん:2006/06/25(日) 14:13:32
joyGetPosExってジョイスティック2つまでしか認識しないんじゃなかったけ。
DirectInputの方が多少面倒だが、潰しは利くだろ。
やっつけ仕事用にはjoyGetPosExで十分だが。

OpenGLとは完全に別レイヤなんでいくらでも同棲可能。
DirectSoundでもDirectPlayでも同棲可能。
好きなだけハーレムをこさえるがよい。
564555:2006/06/25(日) 18:48:25
>>560 やっぱり見てる人は見てるんですね 返す言葉もありません
しかしながら、DXtexも無事起動できたし気になるところは全てクリアできました
改めてお礼を言わせて頂きます 本当にありがとうございました
565561:2006/06/25(日) 23:49:52
>>563
返事遅くなりすいません。
レスありがとうございました。
ハーレムさせてみますw
566デフォルトの名無しさん:2006/06/26(月) 05:31:37
Operating System: Windows XP Professional (5.1, Build 2600)
Service 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など調べてわかったことは全部したのですがなおりません。
どなたか力をかしてください。お願いします。
567デフォルトの名無しさん:2006/06/26(月) 06:34:13
ここはDirectXでプログラムを作る人間用のスレであって、
プログラムを使う側の質問スレじゃない。
君にとっては二度手間かもしれないが、Windows板でもう一度聞きなおしてきなさい。
http://pc8.2ch.net/win/
『WindowsXP質問スレ』てのがあるはずだから、そこがいいだろう。
568デフォルトの名無しさん:2006/06/26(月) 12:40:25
親切にありがとうございます。
そこにいって聞いてみたいと思います。
ありがとうございました。
569デフォルトの名無しさん:2006/06/26(月) 18:50:12
MFC+DirectXでプログラムしてるのですが.
ピクチャーコントロールのサイズを変更しても,DirectXの描画のアスペクトなり座標系なりを適応したいときって

pic = (CStatic*)GetDlgItem(IDC_MAINPIC);
pic->MoveWindow(x, y, wide, height);

pD3DDevice->GetViewport(&ViewPort);
ViewPort.Height = height;
ViewPort.Width = wide;
pD3DDevice->SetViewport( &ViewPort );

こうすれば良いと思ってたんだけど,うまくいかない
どうやれば良いのでしょうか?
570デフォルトの名無しさん:2006/06/27(火) 00:30:10
かーーめーーーらーーーー
571569:2006/06/27(火) 19:53:32
>>570
遅レスすみません.

カメラって座標と注視点,画角以外要素があるのでしょうか?
アスペクト比などは後でビューポートから算出しています.

ちなみに,ピクチャーコントロールと一致しない領域で描画されている状態です...
572デフォルトの名無しさん:2006/06/28(水) 21:28:32
キー入力で【 ^ 】を使うにはDIK_ のなにを使えばいいんでしょうか?
573デフォルトの名無しさん:2006/07/01(土) 04:19:09
DirectX9の最新版のSDKは
Windows2000+VC6
ではどうやっても使えないのですか?

あと
Windows2000+VC2005
ではどうでしょうか?
574デフォルトの名無しさん:2006/07/01(土) 04:53:51
初心者丸出しですみません。

全画面でBMP画像を数枚表示してパラパラアニメにしたいのですが、
似たようなサンプルコードは無いでしょうか?
575デフォルトの名無しさん:2006/07/01(土) 06:24:47
>>573
使えないなんてことないでしょ。

>>574
今、どんな状況なの?
もう、ゲーム1本作れるレベル?
ヘルプのチュートリアルは終わらした?
576573:2006/07/01(土) 11:27:21
>>575
やっぱだめみたいですね
最新版のSDKwin2000に入れようとしたら
not supportと蹴られました

はぁぁ、Vista出るの待つかなぁ
577デフォルトの名無しさん:2006/07/01(土) 11:39:04
最新版にこだわる必要は無いでしょ。
素直にSDK(Octorber 2004)を使うべし。
578574:2006/07/01(土) 19:16:26
>>575 ゲーム屋さんではないのでアレですが、HTTPサーバとかMPEGエンコーダは書けます。

DirectXに精通しようとは思ってません。目的の機能の実装が達成できればよいと
思っています。すみません。
579デフォルトの名無しさん:2006/07/01(土) 19:57:05
パラパラアニメならDirectXなんて使う必要ないと思うけど。
BitBltで十分でしょ。
580デフォルトの名無しさん:2006/07/01(土) 20:12:26
Animation Control
581デフォルトの名無しさん:2006/07/01(土) 20:12:47
パラパラアニメならBitBltなんて使う必要ないと思うけど。
Flashで十分でしょ。
582デフォルトの名無しさん:2006/07/01(土) 20:15:45
パラパラアニメならFlashなんて使う必要ないと思うけど。
Gifで十分でしょ。
583デフォルトの名無しさん:2006/07/01(土) 20:17:41
GIFじゃ色数に問題あるかも
584デフォルトの名無しさん:2006/07/01(土) 20:17:49
パラパラアニメならGifなんて使う必要ないと思うけど。
ノートで十分でしょ。
585デフォルトの名無しさん:2006/07/01(土) 20:21:18
仕事なんて必要ない
ニートで十分
586デフォルトの名無しさん:2006/07/01(土) 21:58:06
BitBltで、1280x1024の画面内に320x240の画像を縦横4つづつ計16枚、
30fpsとは言わなくても、秒数コマ程度のパラパラアニメができますか?

これで低い負荷で実用に耐えるなら何も問題ありません。
BitBltよりかはDirectXのほうがいいかな、と思ったので…。
587デフォルトの名無しさん:2006/07/01(土) 22:07:41
余裕でできるはずだが
下手なコード書くと負荷激増パフォーマンス激落ちる
588デフォルトの名無しさん:2006/07/01(土) 22:17:05
だがGDI使うよりはDirectDrawでハードウェアBLT使うほうが圧倒的に速い気がする。
589デフォルトの名無しさん:2006/07/01(土) 22:17:57
DirectXのほうが早いのはまあ仕方ないとして、実際やってみたら?
590デフォルトの名無しさん:2006/07/01(土) 22:33:15
DirectDrawで速度的な優位が発生するのは、カラーマスクを使う場合やVRAM上の画像を使い回す場合、
クリッピングを切って転送の負荷を軽量化、もしくはオーバーレイを使用した場合だけ。
Win32APIの方でもビデオカードのアクセラレーションは普通に使われるし、
メインメモリー上の動的なデータを転送するだけならどちらでも差はない。
3Dの場合と違って2Dのベタデータは、ほとんどメインメモリからVRAMまでの転送速度に依存する。
591デフォルトの名無しさん:2006/07/01(土) 22:38:17
パラパラアニメなんだから全部VRAM上の載せちゃえばいいんでね
592デフォルトの名無しさん:2006/07/01(土) 23:04:51
CALL OF DUTYというゲームを起動すると、DirectXに回避不能エラーが発生したとのメッセージが出ました
dxdiagで診断しましたが、問題は見つかりませんでした
一体、何が原因なんでしょうか…?
ちなみに9.0cです
593デフォルトの名無しさん:2006/07/01(土) 23:19:42
板違い。
594デフォルトの名無しさん:2006/07/01(土) 23:29:07
f
595デフォルトの名無しさん:2006/07/01(土) 23:31:01
scsaaa
ol
596デフォルトの名無しさん:2006/07/01(土) 23:34:15
断末魔が
597デフォルトの名無しさん:2006/07/02(日) 05:56:45
>>579-581,587-590 レスサンクス
598デフォルトの名無しさん:2006/07/02(日) 06:53:18
>>578
あー、そういう意味じゃなくてどんなフレームワーク使ってるのかを知りたかった。

DirectXみたいなのを使って全画面書き換えを使ってるのとWin32APIのDCを使ってるのとではパラパラアニメのやり方が違う。
(いや、Win32APIでもエロゲとかはそうやってるなぁ・・・そういやw)

前者と後者の違いはそれ用の画面を用意してもうほんとアニメアニメした画面をこさえてしまうのか?
それともGIFアニメみたいなのを想像してるか?の違いなんだけど・・・。

まあ、認識レベルで聞きたいのが
ただ、絵を動かしたいからゲームスレに聞きにきたのか?
それともホントにゲームのシステム上でのパラパラアニメが作りたいのか?
って話。
ゲームってゲーム用の画面作って、ゲームにしてるのよ。
でも、ウィンドウズ上でアイコンっぽいのがちょろちょろ動くっていうのだと
用意する土台が違うっていうかなんていうか・・・。システムが違うっていうかなんていうか・・・。
いや、同じっちゃそうなんだけど、そこまでする必要ないっつーかなんつーか。
まあ、用は別物なんですよ。やり方も得られる結果も。
599デフォルトの名無しさん:2006/07/02(日) 07:50:28
class Tyousyukoriki
{
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;
}
};
600デフォルトの名無しさん:2006/07/02(日) 10:51:30
>>574
一応詳しく説明しておくけど、CreateCompatibleBitmapに
ディスプレイデバイスコンテキストを渡して作ったビットマップは
VRAM上に確保される場合が多く(ドライバによる)、そのときの
BitBltの転送速度はDirectDrawのBltとほとんど変わらない。

ピクセル単位での描画や、カラーキーが必要なければDirectXを
使用する必要はない。

>>598
ここはゲームスレではないと思うがw
601デフォルトの名無しさん:2006/07/02(日) 19:28:12
>>600
いや、でも、DirectXのスレじゃん。
Win32APIのBitBltだとちょっと違うじゃん。

DirectXをどういうものとして認識してるかで扱い変わってくるじゃん。
DirectXってもうほんとゲームシステムを作るモン向きであって
ちょっとしたパラパラアニメ動かすもんには向いてないじゃん。
602デフォルトの名無しさん:2006/07/02(日) 21:08:35
じゃんじゃんうるせーよ。
603デフォルトの名無しさん:2006/07/02(日) 21:16:34
ワロータ
604初心者名無し:2006/07/02(日) 21:17:07
Failed creating the Direct3D device.
って出た場合、これはどう対処したらいいのですか?
605デフォルトの名無しさん:2006/07/02(日) 21:20:33
原因を探る
606初心者名無し:2006/07/02(日) 21:22:14
ぇっと、どうやって??
607デフォルトの名無しさん:2006/07/02(日) 21:22:22
>604
とりあえずHALにするとかソフトウェア頂点処理にするとか
D3DPRESENT_PARAMETERSの設定をデバイスに合ってるものにするとか
色々。
608初心者名無し:2006/07/02(日) 21:24:18
D3DPRESENT_PARAMETERSの設定はどこでするんですか?
…すみません;本当に初心者なんで、、。
609デフォルトの名無しさん:2006/07/02(日) 21:25:16
あ?DirectX生で使ってるんじゃねーの?
なんかのライブラリ?
610初心者名無し:2006/07/02(日) 21:27:20
なんかのライブラリっていうか、パソコンゲームをインストールしたんですけど、
インストール後にそれをはじめようとしたら↑の表示がでるんです;
611デフォルトの名無しさん:2006/07/02(日) 21:28:23
どっかのライブラリっぽいな。
何のライブラリ使ってるか言ってもらわんと何もいえん。
言ってもらっても何か言える訳じゃないがね。
612デフォルトの名無しさん:2006/07/02(日) 21:28:54
サポセンに問い合わせろ。
613初心者名無し:2006/07/02(日) 21:30:03
ライブラリ、、、どこを答えたらいいのかがわからない;
あぁ、、こんなん話にならないですね;すみません、、
614デフォルトの名無しさん:2006/07/02(日) 21:31:41
>>613
それはここで聞くよりはゲームの作者とかに聞くほうがいいよ。
もしくはそのゲームのスレとか。
615デフォルトの名無しさん:2006/07/02(日) 21:31:59
平たく言ってしまうと、
そのゲームを作った人間にしか原因はわからない。

PCゲームならどっちみちサポセンに問い合わせるしかない。
ここで聞いたところで意味はまったくないっつーか邪魔。
616初心者名無し:2006/07/02(日) 21:35:29
……すみません。
というか、Direct3Dってのをどうしたらいいのかがわからないんです。
一応ここはそれをいくとこっぽいし。。
617デフォルトの名無しさん:2006/07/02(日) 21:58:34
ここはプログラムを作る人間が利用する板であって、使う奴は完璧に板違い。
自分でプログラムの勉強をして出直せ。
618デフォルトの名無しさん:2006/07/02(日) 22:32:48
DirectX9で質問です。
フルスクリーンの時ウィンドウキーを押すとプッチンてなるじゃないですか。
その後の復帰のさせ方がいまいちわからないのです。
レンダーターゲットテクスチャを作るとデバイスのリセットが失敗してしまうのです。
どなたかわかるかたいますか?
619デフォルトの名無しさん:2006/07/02(日) 22:34:45
レンダリングターゲットテクスチャはデバイスリセット前に解放汁。

つーかVRAM上に作成したデータはデバイスリセット前に全部解放汁。
620デフォルトの名無しさん:2006/07/02(日) 22:35:14
>>618
SDKのサンプル参考に汁
621デフォルトの名無しさん:2006/07/02(日) 22:49:26
DX10に期待汁
622デフォルトの名無しさん:2006/07/02(日) 22:52:27
>>619
解放したデータを解放前の状態に戻すにはどうすればいいでしょうか。
>>620
探してみます。
623デフォルトの名無しさん:2006/07/02(日) 22:55:40
>>622
自分でもう一回作る。
624デフォルトの名無しさん:2006/07/02(日) 23:04:47
>>623
たとえば3D空間を散歩して写真を撮るように風景をテクスチャに置いておく場合は
そのときのデータを全て記憶しておいて、また描画し直さなければならないのでしょうか。
625デフォルトの名無しさん:2006/07/02(日) 23:13:07
VRAMに入っているデータは、使用者の責任で全て元に復元する。
最初にやっている処理なんだから、大した問題ではない。
626デフォルトの名無しさん:2006/07/02(日) 23:15:08
一瞬止まってもいいならシステムに保存しておけば復帰はラクだがの
627デフォルトの名無しさん:2006/07/02(日) 23:18:07
>>626
詳しくお願いします
628デフォルトの名無しさん:2006/07/02(日) 23:36:27
レンダリングターゲットと同じサイズのテクスチャをシステムに作る。
StrechRectでシステムのテクスチャに転送する。

デバイスがロストした。
レンダリングターゲットテクスチャを作り直す。
システムのテクスチャをレンダリングターゲットにStrechRectする。

おしまい。
629デフォルトの名無しさん:2006/07/02(日) 23:58:43
>>628
ありがとうございます。
試してみます。
630デフォルトの名無しさん:2006/07/03(月) 13:10:19
DirectX3Dで巨大な画像(800×600とか)を表示するにはどうすればいいんですか?
256×256のテクスチャー何個かに分割して表示するしかない?
631デフォルトの名無しさん:2006/07/03(月) 14:26:22
何度見ただろう、この質問・・・
632デフォルトの名無しさん:2006/07/03(月) 16:49:01
漏れには「質問」には見えない
633デフォルトの名無しさん:2006/07/03(月) 19:28:41
>>630
よりデカイテクスチャを用意してUVで調節するんだ!
634デフォルトの名無しさん:2006/07/03(月) 23:52:04
質問です。XP、.NET 2005、DirectX 9.0c です。

DirectPlay において、プロシージャに届いたメッセージを全て独自のキューに保存しようとしています。
ですが、例えば DPN_MSGID_CREATE_PLAYER メッセージでは DPNMSG_CREATE_PLAY 構造体、など
メッセージの種類によって、データ長が異なります。

これらの構造体を見る限り、どれも先頭に DWORD で構造体のサイズが格納されているようですので、
受け取ったメッセージを pMessage として、

DWORD messageSize = *(DWORD *)pMessage;

と行っているのですが、どうも自信がもてません。
他に、自然なデータ長の受け取り方はありますでしょうか?
よろしくお願いします。
635デフォルトの名無しさん:2006/07/03(月) 23:58:39
>>634
なんで、構造体を使わないの?
636デフォルトの名無しさん:2006/07/04(火) 00:14:48
>>635
全てのメッセージデータを保存したいのですが、
どのメッセージに対しても、データサイズを取得して、そのサイズ分の領域を確保し、データをコピーし、キューに入れる、という共通の処理にも関わらず、

switch(messageType)
{
 case DPN_MSGID_CREATE_PLAYER:
  dataSize = ((DPNMSG_CREATE_PLAY *)pMessage)->dwSize;
  // キューに追加
  break;

 case DPN_MSGID_SEND_COMPLETE:
  ……
}

と、全てのメッセージタイプに対して記述するのは冗長だと思ったからです。
637デフォルトの名無しさん:2006/07/04(火) 00:24:36
>>636
unionでキューに持たせればいいじゃん。
638デフォルトの名無しさん:2006/07/04(火) 00:32:25
>>637
すみません、union でキューに持たせる、とは? 何と何を共有するのでしょうか。
データサイズが分からないと、キュー以前に、データを保存しておく領域の確保すらできません・・・。
639デフォルトの名無しさん:2006/07/04(火) 01:09:34
>>638
使うメッセージの種類全部をunionにすれば
最長のメッセージ構造体の分だけメモリを確保できる。
もちろんメモリ効率はそれぞれに対してやるよりは効率悪いけど
たいした問題じゃない
640デフォルトの名無しさん:2006/07/04(火) 01:10:19
そもそも、いまさらDirectPlayっていうのが。
それ、捨てられた機能だから使わない方がいいよ。
641デフォルトの名無しさん:2006/07/04(火) 01:15:47
WinSock叩く方がはるかに楽だしなぁ・・・
642デフォルトの名無しさん:2006/07/04(火) 01:17:34
それはない
643デフォルトの名無しさん:2006/07/04(火) 01:22:23
そうか?
俺は最初DirectPlayでTCP/IPの通信やろうとしたけど
挫折してWinSockでやった口なんだが・・・。

通信相手がPS2だったからかもしれんが。
644デフォルトの名無しさん:2006/07/04(火) 01:29:22
>>643
そりゃ困難だろw
↓コピペ
>DirectPlay は、基本となるネットワークからアプリケーションを大きく隔離するレイヤを提供する。
645デフォルトの名無しさん:2006/07/04(火) 01:31:39
適材適所って奴だな
ただDirectPlayはサポート外になってしまったので
Socket使ったほうがいいと思うよ。
(でもDirectPlayとほぼ同等層を自分で作る羽目になる)
646デフォルトの名無しさん:2006/07/04(火) 13:54:22
NVPerfHUD4をインスコしてもビデオカードのドライバを認識してくれん。
GeForce6600で使えてる人いる?
647デフォルトの名無しさん:2006/07/04(火) 20:01:20
DirectXの描画って
性能のいいPCではスムーズに表示されて
そうでないPCでは描画オブジェクトを省いたりとか
そんなことってありえる?

同じexeでもオブジェクトが欠落してたりするんだが...
そんな風に書き分けた覚えはないのに...
648デフォルトの名無しさん:2006/07/04(火) 20:14:51
古い世代のGPUだと全く対応していないコードを書いたらそうなるんじゃないか
649デフォルトの名無しさん:2006/07/04(火) 20:21:04
>648
いや,あるときは描画されてたり,あるときは描画されなかったり.
でも性能の良いほうだと常に描画されているという...

よくわからんです..
650デフォルトの名無しさん:2006/07/04(火) 20:24:43
・ドライバのバグ
・精度割れ

まあ、色々考えられる罠。
あるか無いかと言えば、無いわけじゃない。
651デフォルトの名無しさん:2006/07/04(火) 21:58:01
基本的にハード側ってことですよね...
どうしようもないってことかな...

とにかくありがとうございました
652デフォルトの名無しさん:2006/07/05(水) 00:47:46
>>651
それはわからない。
俺も本当はバグっているのに
性能のいいマシンで開発してたからなんか動いてしまっていて、
いざスペックの低いマシンで動かしてみたらバグバグだったことはある。

そんときはαテストとかZテストとか設定がめちゃくちゃで正常に動くはずもないのに
開発マシンではなんか上手くいってるように見えたな。
653デフォルトの名無しさん:2006/07/05(水) 15:25:43
>>651
GPUによってステートなどの初期値が異なるから注意。
自分で使うものは全部自分で初期化したほうがいい。
654デフォルトの名無しさん:2006/07/05(水) 23:59:44
こちらで質問していいのか迷いましたが一応DirectXを使っているのでこちらで質問します
スレ違いでしたら誘導お願いします
C++とDirectX9で開発してます

ゲームを作ろうと思っているのですがまだ経験不足のようで、
プログラムの構造をどうすればいいのかで迷っています
前に読んだ本に、描画処理とメッセージ処理は分離してスレッド化するほうがいい
その程度は書いてあったのですが、ほんの数行で終わってしまい
構造はどうなるのかなどがいまいちわかりません。

作ろうとしているプログラムは、
ユーザーが1対1でネットワークごしに接続しあって、
キャラクターを操作したり、送られてきたデータからオブジェクトを同期したりするだけで、
RPG程度のものと考えてもらって結構です

よろしければ、皆さんのプログラムの流れを書いていただけると助かります
参考になりそうなHPなどでもいいのでよろしくお願いします
655デフォルトの名無しさん:2006/07/06(木) 07:13:49
>>654
>ユーザーが1対1でネットワークごしに接続しあって、
>キャラクターを操作したり、送られてきたデータからオブジェクトを同期したりするだけで、
自分の実力と不釣合いなもん作ろうとするなw
無理だってわかるだろw
一歩一歩刻んでいくしかねぇんだよ。
656デフォルトの名無しさん:2006/07/06(木) 07:21:49
>>654
テトリスあたりから作りなさい
657デフォルトの名無しさん:2006/07/06(木) 17:50:14
すみません。基本的な質問なのですが、3Dの座標で、右手座標の行列を習得した後、
それを左手座標の行列にに変換する方法を教えてもらえないでしょうか?
658デフォルトの名無しさん:2006/07/06(木) 18:06:57
z = -z
659デフォルトの名無しさん:2006/07/06(木) 18:21:31
>>654-657
なんて醜いんだ。
660デフォルトの名無しさん:2006/07/06(木) 18:29:23
>>658
ベクトルの変換ではなく、マトリクスの変換でお願いします。
661デフォルトの名無しさん:2006/07/06(木) 18:58:43
1 0  0
0 1  0
0 0 -1
662デフォルトの名無しさん:2006/07/06(木) 22:09:31
文系なのかゆとり教育の成果なのか知らないが、
線形代数の基礎くらいは習得してからプログラミングとか始めた方がいいんじゃないのか。
663デフォルトの名無しさん:2006/07/06(木) 22:22:20
ゆとり教育ってなんですか
664デフォルトの名無しさん:2006/07/06(木) 23:18:37
ググれよ
665デフォルトの名無しさん:2006/07/06(木) 23:30:08
ググれとは?
666デフォルトの名無しさん:2006/07/07(金) 00:13:42
      , イ)ィ -─ ──- 、ミヽ
      ノ /,.-‐'"´ `ヾj ii /  Λ
    ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
   ノ/,/ミ三ニヲ´        ゙、ノi!
  {V /ミ三二,イ ,  /,   ,\  Yソ
  レ'/三二彡イ  .:ィこラ   ;:こラ  j{
  V;;;::. ;ヲヾ!V    ー '′ i ー ' ソ
   Vニミ( 入 、      r  j  ,′
   ヾミ、`ゝ  ` ー--‐'ゞニ<‐-イ
     ヽ ヽ     -''ニニ‐  /
        |  `、     ⌒  ,/
       |    >┻━┻'r‐'´
      ヽ_         |
         ヽ _ _ 」

  ググレカス [ Gugurecus ]
  ( 2006 〜 没年不明 )
667デフォルトの名無しさん:2006/07/07(金) 01:26:48
ゲルググのこと。
668デフォルトの名無しさん:2006/07/07(金) 11:30:14
あんでプレイはサポ外になってしまったん?
小柔らかの人達セキュリティー対策に嫌気がさした?
669デフォルトの名無しさん:2006/07/07(金) 11:31:29
ゲルググってなんですか。
670デフォルトの名無しさん:2006/07/07(金) 11:34:03
>>668
実際必要なくね?
671デフォルトの名無しさん:2006/07/07(金) 11:35:18
つかってなかったけど
なんでかなあとおもって
672デフォルトの名無しさん:2006/07/07(金) 11:40:17
そういやセキュリティー対策ってどのくらいやってますか?
おれはヘボだからぜんぜんやってないけど(データ生のまま垂れ流して受け取る)、
プレイならそのへんちゃんとしてくれてたのかな
673デフォルトの名無しさん:2006/07/07(金) 12:44:41
XboxLiveとかと同じなら、かなり入念な暗号化なんかをサポートしてくれるはずだけど
実際にはどーなんだろね。詳しい人解説プリーズ。
674デフォルトの名無しさん:2006/07/07(金) 13:34:39
というか手頃な代替ライブラリがないってのが凄いな
僕らはみんなwinsock大好き
675デフォルトの名無しさん:2006/07/07(金) 15:51:08
唐突に質問なのですが、
C++とDirectShowでビデオキャプチャ+圧縮保存のコードを書いております。
ボタンクリック時に、圧縮に使用するコーディックのプロパティ画面を開くようにしたいのですが、方法が検討つきません。
WindowMediaVideo9とMEPG4
ご存知の方、いらっしゃいましたらご助力願います。
宜しくお願い致します。
676デフォルトの名無しさん:2006/07/07(金) 21:36:10
>>プロパティ画面を開くようにしたい
http://www.kumei.ne.jp/c_lang/
猫でもわかるプログラミング
677デフォルトの名無しさん:2006/07/08(土) 17:01:43
>>671みつを?
678デフォルトの名無しさん:2006/07/08(土) 22:12:19
96*96で頂点のレンダリングをしたらテクスチャが崩れてしまったのですが
これは回避できますか?
679デフォルトの名無しさん:2006/07/08(土) 22:12:52
日本語でおk
680デフォルトの名無しさん:2006/07/08(土) 22:22:59
チュートリアル2で
256ドット*256ドットのbmpから96ドット*96ドット分だけレンダリングしたら
画像が綺麗に表示されないのです。
681デフォルトの名無しさん:2006/07/08(土) 23:00:22
君のミスでしょう
682デフォルトの名無しさん:2006/07/08(土) 23:00:55
モニタが汚れてるんじゃないのか?
683デフォルトの名無しさん:2006/07/08(土) 23:02:45
目が悪いんじゃないの?
684デフォルトの名無しさん:2006/07/08(土) 23:03:52
2のn乗ドットでやるときはきちんと表示されるのですが、
それ以外の数値でやると変な表示になるんです。
685デフォルトの名無しさん:2006/07/08(土) 23:04:23
テクスチャのサイズが96x96なわけじゃないなら設定ミス
686デフォルトの名無しさん:2006/07/08(土) 23:15:26
いくつかのパソコンで同じ物を起動させたら出来るのと出来ないのがありました。
687デフォルトの名無しさん:2006/07/08(土) 23:19:39
ビデオカードによる挙動の違いの吸収は君がやりましょう。
688デフォルトの名無しさん:2006/07/08(土) 23:35:52
九州するためにいるのがDirectXなのですが
いっぱい漏れちゃいます
689デフォルトの名無しさん:2006/07/09(日) 00:00:14
OpenGLなら遅いけど互換はばっちりみたいになるのかね?
遅いけど互換もまちまちとかだったら最悪だ
690デフォルトの名無しさん:2006/07/09(日) 00:03:45
GLには各社専用の拡張APIが存在する。
あとはわかるな?
691デフォルトの名無しさん:2006/07/09(日) 00:09:18
もう聖域なんてないってことだね
692デフォルトの名無しさん:2006/07/09(日) 00:11:11
結論:拡張使わなきゃおk
693デフォルトの名無しさん:2006/07/09(日) 00:23:00
拡張するのはよくねーよ。がばまんはダメ。
694デフォルトの名無しさん:2006/07/09(日) 00:31:19
それいったらDirectXも固定機能だけでやってりゃほとんど差なんてないぞ
695デフォルトの名無しさん:2006/07/09(日) 00:34:00
( ゚ρ゚)ポカーン
696デフォルトの名無しさん:2006/07/09(日) 02:02:06
 /
( ゚ρ゚)パカーン
697デフォルトの名無しさん:2006/07/09(日) 06:14:13
けっこう大口開けてプログラミングする奴いるよな
698デフォルトの名無しさん:2006/07/09(日) 08:10:46
>>697
それ漏れだ。
口あけてるか、ぶつぶつ言ってるかの二択。なんて怪しい。
699デフォルトの名無しさん:2006/07/09(日) 12:46:59
俺漏れも。
700デフォルトの名無しさん:2006/07/09(日) 12:49:17
俺はいつも半開きらしい。
同僚に指摘されて気付いた。
701デフォルトの名無しさん:2006/07/09(日) 13:06:17
俺は彼女に。
うそです。
702デフォルトの名無しさん:2006/07/09(日) 17:02:20
つまんないことですみません。

スクリーンセーバーで画面全体を使っている状態と、DirectXで画面全体を
使っている状態って、2Dのアクセラレーションとか関係ありますか?
マウスのup/down/ドラッグのイベントを拾ったり拾えなかったりするので
しょうか?
703デフォルトの名無しさん:2006/07/09(日) 17:10:03
DirectXを使う使わないにかかわらずウィンドウは生成するよな?
ウィンドウを生成するってことはメッセージが(ry

そういうことだ。
704デフォルトの名無しさん:2006/07/09(日) 18:34:26
>>702
もしかしてパラパラ漫画の人かな?

ビデオカードの仕事が追いつかない状況下だと、イベント拾って画面に変化を与えようとしても
残ってる仕事が先だからラグが発生する。
それが「拾ったり拾えなかったり」と関係あるのかは不明だけど。
705デフォルトの名無しさん:2006/07/09(日) 18:36:39
>>704
キュー方式だから来ないって事はないと思う。
大幅に遅延してくることは普通にあるが。
706デフォルトの名無しさん:2006/07/09(日) 18:40:12
>>702
DirectInputを使っていなければ、何も変わらないよ。
メッセージループに問題があるんじゃない?

1フレーム描画する毎に1メッセージしか処理しないような
書き方をする人がいるけど、それだと問題がある。
707デフォルトの名無しさん:2006/07/09(日) 21:35:23
これかな。


MSG 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セットしか呼ばれないとかだと遅延が起こりまくるな。
708デフォルトの名無しさん:2006/07/09(日) 21:53:05
酷いなこりゃ。
709デフォルトの名無しさん:2006/07/09(日) 22:03:36
>>707は普通じゃね?

while(PeekMessage())

のところが

if(PeekMessage())

になっちゃって、1更新ループごとに1回しか呼ばれないとかになるのが問題なんじゃ
710デフォルトの名無しさん:2006/07/09(日) 22:10:28
なんでGotoなんて使ってんの?
711デフォルトの名無しさん:2006/07/09(日) 22:11:46
今、流行ってるから
712デフォルトの名無しさん:2006/07/09(日) 22:26:05
PostQuitMessageでいいんじゃね?
713デフォルトの名無しさん:2006/07/09(日) 22:53:33
goto毛嫌いするやつってどこの会社にも居るよな
714デフォルトの名無しさん:2006/07/09(日) 23:05:55
while-goto句なんざJavaですら残された定型コードじゃないか
715デフォルトの名無しさん:2006/07/09(日) 23:12:58
つーか、このループで

if(WM_QUIT == msg.message)
goto Exit;

のコードっているの?
goto云々じゃなくて・・・。
716デフォルトの名無しさん:2006/07/09(日) 23:23:29
break一個じゃ抜けれないからそうしてんだろ
717デフォルトの名無しさん:2006/07/09(日) 23:24:16
APIの使い方が根本的に間違っているから、無駄にメッセージの確認をしてCPU使用率100%になるぞ。
718デフォルトの名無しさん:2006/07/09(日) 23:30:18
DirectX勉強するまえにWinAPI勉強しろよ
719デフォルトの名無しさん:2006/07/09(日) 23:39:12
>>718
いや、そこまでするのは無駄だ。
もっとサンプルをたくさんみて該当箇所だけ色々みるだけでいいっしょ?
ここでWin32APIの勉強はじめるような奴は目的を見失ってる奴にしかみえない。
印象悪いよ。
720荒らし希望:2006/07/09(日) 23:44:00
721デフォルトの名無しさん:2006/07/10(月) 00:04:33
用は既存のライブラリ使えってこったな
722デフォルトの名無しさん:2006/07/10(月) 01:38:57
>>717
メッセージループをどこに置くか次第だとは思うが、
そのコード自体はペトゾルトでも同じだったぞ。
GetMessageで済むならそっちのがいいんだろうが。
ここではSleepしてる部分に更新コードを書く感じかな。


>>715
PeekMessageを使ってる場合は要る。
GetMessageとは返り値が違うから。


Win32APIの知識はなんだかんだで地味に必要じゃね?
ほとんどの処理がDirectXだけで完結するとは言え、
せめてWindow作ったりループ回したりの理屈はわかってないと
色々と立ち行かないと思う。

まあ、スレ違いだって言ったらそれまでだけどね。
723デフォルトの名無しさん:2006/07/10(月) 01:45:23
>>722
いや、だから、すでに公開されて動いてるサンプルもその辺にたくさんあるのに
いまから、Win32APIの勉強をするのはハズレじゃね?
もっといえば、別にWin32APIを知らなくてもDirectXのサンプル通りにやれば正常にいくのにだよ?
こんなんでいちいちちょっと関わるだけのライブラリをいちいち習得してたら目的のモンに中々辿り付けない
と、俺は思うんだけどね。

DirectX勉強するのに、まず、COMの知識が必要とかいいだしかねない勢いで怖いね。
724デフォルトの名無しさん:2006/07/10(月) 02:19:51
C++・DirectXでゲームシステムみたいなものを作っているものです。
今あることで悩んでいます。
1.
グローバル・Systemクラス(シングルトン)
Graphicクラスのポインタ
 Inputクラスのポインタ
 Audioクラスのポインタ
 中でnewで確保して中の3つの各public宣言関数はSystemクラスの関数の中で呼び出される。
 Systemクラスの関数で上の3つのクラスで提供される処理は全て行う。

 ・思うこと
  Systemという区切りで3つのクラスをまとめたことでグローバルに置くクラスを1個にできた。
  Systemクラスの関数でしか中のクラスの関数にアクセスできないので少し遅くなってない?

2.
 上の3つのクラスをシングルトンでグローバルにおいてアクセスする


C++の設計の問題だと思うのですが皆様アドバイスよろしくお願いいたします。
725デフォルトの名無しさん:2006/07/10(月) 02:49:58
>>724
おめー、設計下手糞だからわかんねぇんだろうけど、
ゲーム部分とデバイス部分でわけとかないと大変だぞ。
そんなもんグローバルにしてもってゲームのソース中に散りばめたら大惨事よw

結局さ、それをグローバルにしてどっからでもアクセスできるようにしようなんて
いうのはゲームのどこでどうそのクラスが必要になるかわからないからだべ?
なんかどこでも必要になる気がするんだよなw
正直、アホだ。アフォまるだし。でも、いまはそれでいいと思う。
誰かの言葉に説得させられるんじゃなくて、自分でやってみて理解したほうがいいと思う。
今はたくさんゲームを作るとき。百万の言葉より1つの経験。
ゲームを作らないでライブラリを作ってもそれは独りよがりなもんにしかならない。
知識だけでも駄目だし、経験だけでも駄目。バランスが大事。

それとプログラムの基本は
グローバル変数・関数は駄目だ。
どっかからとってきたインスタンスへのポインタをメンバ変数に保持するのも駄目だ。(Alt+Tabで問題になるな)
gotoも駄目だ。

ってのはわすれないようにw
726デフォルトの名無しさん:2006/07/10(月) 02:52:47
>>723
言葉遊びだと思うな。
サンプルの中にも鵜呑みにしていいものと悪いものがあるし、
見分けるにはやっぱり基礎知識はある程度あった方がいいし。

なんだかんだでタイマー周りの制御とか、デバイスのロスト時の処理なんかを
ちゃんと実装するには、それなりにWinの知識が必要だよ。
それこそ既存のサンプルからコードぱくってくりゃ済む話だけどさ。

どこまで踏み込むかは、程度問題でしかないだろうけどね。
まあ、好き好きで。
727デフォルトの名無しさん:2006/07/10(月) 02:54:15
>グローバル変数・関数は駄目だ。

でもクラスのstaticメンバは良かったりするんだよなw
728デフォルトの名無しさん:2006/07/10(月) 02:56:06
>>727
それはかまわねぇと思うけど。
目的がはっきりしてれば。
ただ、あんまりやらないな。
729デフォルトの名無しさん:2006/07/10(月) 02:57:06
>>726
>それこそ既存のサンプルからコードぱくってくりゃ済む話だけどさ
なんでぇ。文句ねーじゃねーかw
730デフォルトの名無しさん:2006/07/10(月) 03:11:54
>>728
namespaceと一緒で、変数や機能の所有者がはっきりするから
いわゆるグローバル変数だだ並べに比べれば格段に危険度は減るんだよな。

でも、実際には忌避される理由の大半は宗教上の問題だと思う。
プログラマって信心深い人多いから。


どーでもいいけどスレ違いですねそうですね。
731デフォルトの名無しさん:2006/07/10(月) 03:25:26
>725
グローバルアレルギーか?

>724
>Systemという区切りで3つのクラスをまとめたことでグローバルに置くクラスを1個にできた。
まとめることに何の意味があるのか?
むしろ機能の独立性が下がるほうが気になる。
732デフォルトの名無しさん:2006/07/10(月) 03:27:26
このスレにサッカー観てる奴が3人はいる!
733デフォルトの名無しさん:2006/07/10(月) 06:35:32
>>730
勝手な解釈して逃げてるけど、そりゃお前がなにも学んで無いから、
ちゃんとグローバル変数・関数の問題と向き合ってとことん考えなきゃ次のステップには進めないぞ。

てか、グローバル変数・関数の問題を諦めた時点で設計を語る資格は無い。
もう、どうにだって組めるじゃん。こんなもんちょっとでも許した時点ですべてが崩れちまう。
何が悪くて、何が良いのかも判断できないっしょ。
734デフォルトの名無しさん:2006/07/10(月) 09:30:10
プログラマなら誰しも一度は、グローバル、gotoを鬼のように毛嫌いする時期があるんだよなw
735デフォルトの名無しさん:2006/07/10(月) 09:31:47
グローバルは在ったけど、gotoは無かったなぁ。

まさか、これからくるニカ!
736デフォルトの名無しさん:2006/07/10(月) 11:01:34
ゲームのライブラリ作るときにstaticを毛嫌いする理由がわからんな。
ウィンドウの管理とかD3Dデバイスの管理なんて普通はstaticでいいと思うが?

安全性と可読性が保障されてるならグローバルもgotoもぜんぜんありだと思うがなぁ。
737デフォルトの名無しさん:2006/07/10(月) 14:03:04
>>733
問題なのはグローバル変数剥き出しそのものじゃなくって
管理権限がはっきりしない変数が改変可能な状態で
放り出されていては、何処で何が起きても責任が取れないってだけのこと。
これはたかだかカプセル化の問題に過ぎない。

正しくOOPが適用されれば自ずと無闇なグローバル変数云々なんぞは消えていくが、
そこを経験則上の解釈だけで止めてしまってる人も結構多いって言いたいだけなんだけど、
俺、そんなに間違ってること言ってるか?
738デフォルトの名無しさん:2006/07/10(月) 14:04:47
>>734
某所にコード貼り付けたら、以降のレスが多重ループを抜けるのに使ってた
gotoにだけ集中してて吹いたよ。
おまいらそこ争点違うからとw
739デフォルトの名無しさん:2006/07/10(月) 14:52:51
>>737
おめー、設計下手糞だからわかんねぇんだろうけど、
ゲーム部分とデバイス部分でわけとかないと大変だぞ。
そんなもんグローバルにしてもってゲームのソース中に散りばめたら大惨事よw
740デフォルトの名無しさん:2006/07/10(月) 16:50:09
>736
マルチウインドウ、マルチモニタに対応出来ないじゃないか。
741デフォルトの名無しさん:2006/07/10(月) 16:55:48
>>736
そんなゲーム作るのか?
742デフォルトの名無しさん:2006/07/10(月) 16:57:25
アンカーミス
>>740
743デフォルトの名無しさん:2006/07/11(火) 13:54:48
レンダリングした映像のデプスバッファにアクセスして
指定した座標の値を取得する方法ありませんか?
744デフォルトの名無しさん:2006/07/11(火) 14:25:24
システムに落としてきてロックする以外にあったっけ?
ピクセルシェーダー3.0なら出来んのかな。
745デフォルトの名無しさん:2006/07/11(火) 14:27:07
>>744
調べてみる
サンクス
746デフォルトの名無しさん:2006/07/11(火) 21:39:32
do{
if (えらー1)
break;
if (えらー2)
break;
... // 正常な処理
return;
}
while (0);

.. // エラー処理
return;
747デフォルトの名無しさん:2006/07/11(火) 21:51:07
do{
if (えらー1) //7月11日 今日はハンバーグを食べた
break;
if (えらー2)
break;
... // 正常な処理
return;
}
while (0);

.. // エラー処理
return;
748デフォルトの名無しさん:2006/07/11(火) 21:55:48
うなぎイメージ悪いから最近は食ってないけど、
つまりgotoいらないよな
749デフォルトの名無しさん:2006/07/11(火) 22:04:52
正直、無理やりループ作ってbreakで抜けさせているのが美しいとはとても思えない。
750デフォルトの名無しさん:2006/07/11(火) 22:09:51
〜第1回美コード選手権 開始〜
751デフォルトの名無しさん:2006/07/11(火) 22:12:37
〜終了〜
752デフォルトの名無しさん:2006/07/11(火) 22:14:19
〜まさかの再開〜
753デフォルトの名無しさん:2006/07/11(火) 22:14:29
−−−−−−−−−− 再開 −−−−−−−−−−−
754デフォルトの名無しさん:2006/07/11(火) 22:15:30
来週をお楽しみに☆
755デフォルトの名無しさん:2006/07/11(火) 22:15:53
int main(void)
{
    return 0;
}
文句つけようが無いってことで
〜終了〜
756デフォルトの名無しさん:2006/07/11(火) 22:18:33
int main(){return 0;}
美しい
757デフォルトの名無しさん:2006/07/12(水) 00:38:06
void main(){}
これこそ究極。なにせこれ書くだけで数レス消費しはじめる魔法のコード。
758デフォルトの名無しさん:2006/07/12(水) 00:41:32
〜完〜
759デフォルトの名無しさん:2006/07/12(水) 01:06:38
main(){}
760デフォルトの名無しさん:2006/07/12(水) 15:08:17
>>755-759
__PERGMAIN すりゃいいだけな話だろうに。
761デフォルトの名無しさん:2006/07/12(水) 15:28:43
DirectXスレなのにWinMainじゃない点について
762デフォルトの名無しさん:2006/07/12(水) 15:30:58
D3DデバイスはWindowの数だけインスタンス作るよね?
デバイスの生成元のD3Dインターフェイスは1つでOK?
脊髄反射でシングルトンにしちゃって、とりあえず問題なさそうなんで
そのままにしてるんだけど、誰かにゴルァされない?
763デフォルトの名無しさん:2006/07/12(水) 17:39:52
>D3DデバイスはWindowの数だけインスタンス作るよね?

作らない
764デフォルトの名無しさん:2006/07/12(水) 18:18:48
CreateD3DDeviceってウインドウハンドルを引数に取らなかったっけ?
765デフォルトの名無しさん:2006/07/12(水) 20:47:41
生成時に渡すのはデフォルトのウィンドウのハンドル。
画面のPresent時には描画対象のウィンドウのハンドル渡せる。
766デフォルトの名無しさん:2006/07/12(水) 22:57:46
>>765
PresentParameter と CreateDevice 時の FocusWindow にハンドル渡す必要があるね。
これも最初に作るときだけぶちこめば、あとは使いまわせる理屈?
個々の Window にフルスクリーン化を仕込むとか(そんなのがどの程度必要かはわかんない)だと
引っかかりそうな気がするんだけど…。
767デフォルトの名無しさん:2006/07/12(水) 23:56:18
使わない機能のことを考えてる暇があるなら
その無駄な時間で使う機能を練りこんだ方がいいと思うお。

まぁ2ch見てる時間が無駄なんだがorz
768デフォルトの名無しさん:2006/07/13(木) 00:02:26
>>767
質問の答えになってねえずら。
769デフォルトの名無しさん:2006/07/13(木) 00:08:48
そうずらそうずら
770デフォルトの名無しさん:2006/07/13(木) 07:58:12
ワラタ
771デフォルトの名無しさん:2006/07/13(木) 15:09:05
誰にも使われない完璧なライブラリは世界にどれだけ死蔵されているのだろう。
772デフォルトの名無しさん:2006/07/13(木) 15:25:03
少なくともここに一つ!

バーン
773デフォルトの名無しさん:2006/07/13(木) 22:26:01
俺のライブラリは完璧なんだが、それを動かすOSに欠陥がある
774デフォルトの名無しさん:2006/07/14(金) 00:14:01
あるあるw
775デフォルトの名無しさん:2006/07/14(金) 14:36:02
ボーンの概念がわかりません
フレームとどう違うんでしょうか?
776デフォルトの名無しさん:2006/07/14(金) 19:00:44
>>775
スキニングでググってみれば、解説が見つかるかもしれない。
777デフォルトの名無しさん:2006/07/14(金) 19:15:17
778デフォルトの名無しさん:2006/07/14(金) 21:01:55
丁度スキニング話なんで便乗を

capsでしっかりvs1.1と返すビデオカードでシェーダを使用した所、異常なく表示できました。ハードウェア頂点処理です。
そのHLSLに、SDKサンプル通りのスキニング処理だけを加えたら動かなくなりました。
しょうがないので同じHLSLを、ソフトウェア頂点処理に変えて実行してみたら、問題なく動きました。

サンプル通りですし、吐かせたアセンブラみても、使っている命令は1.1以内だと思います(そもそもcompile vs_1_1ですし)。
どの辺でひっかかってソフトウェア頂点処理が必要になったのでしょうか。分かる方いらしたら是非。
779デフォルトの名無しさん:2006/07/14(金) 21:27:45
具体的なビデオカードの名前とか、どう動かないのかとか、そういった情報を流すと殺されてしまうんだね。
そういう守秘義務を課せられている奴は、危険だから二度とこのスレに書き込まない方がいいよ。
780デフォルトの名無しさん:2006/07/14(金) 21:28:30
レジスタ数か命令数じゃね?
げふぉ3だとUBYTE4が使えないとかいうたわけた仕様があったきもするけど。
781778:2006/07/14(金) 21:48:56
>>780
ビンゴっす!見事にレジスタ絡みでした。いやはや、行列を取りすぎてたようで。
一体何時間悩んでいたんだろ・・・適確な助言ありがとうございました。感謝っす。
782デフォルトの名無しさん:2006/07/14(金) 21:52:39
500ギルいただきます
783デフォルトの名無しさん:2006/07/15(土) 16:07:49
DirectX初心者でゲーム製作を目的にしているものですが、
ネット上ってあんまり参考になるサイトないですよね?(あれば教えてくださいm(__)m)
そこで本を買おうと思って家が田舎なものでネットで買おうと検索してみたところ

はじめての3Dゲーム開発―「DirextX9」の使い方から「1人称3Dフィールド・ゲーム」の制作まで
DirectXゲームグラフィックスプログラミング Ver. 2.0
DirectX 9実践プログラミング―「グラフィック」「オーディオ」「ネットワーク」「入力」--ゲーム作りに役立つ機能の基礎から応用まで (単行本)

この辺がよさそうかなぁ、と思いましたがどうでしょうか。
また、このほかにオススメの本などありましたら教えてください、よろしくお願いします。
784デフォルトの名無しさん:2006/07/15(土) 17:11:30
>>783
一番上のは俺はもってない。
下の2つはもってるけどいい本だよ。
はじめとしてはいいんじゃないだろうか?
できれば見比べて勉強するのに2つともほしいが・・・どっちか選ばないと駄目なんだろうか?
785デフォルトの名無しさん:2006/07/15(土) 17:43:24
>>784
そうですか〜。いいんですね。
お金に余裕が・・・(笑)
でもがんばって買ってみましょうかね〜。
786デフォルトの名無しさん:2006/07/15(土) 18:09:07
ttp://gamdev.org/w/
ここの推薦図書を見ておくのもよいかも
787デフォルトの名無しさん:2006/07/15(土) 19:04:11
>>783
一番上は、筆者の自分語りが少しうざいけど、内容は
悪くはない。

お薦めの本は特にないけれど、入門書は1〜2冊に
しておいて、さっさと本物の専門書に挑戦すべき。
788デフォルトの名無しさん:2006/07/15(土) 19:37:39
一番上の本は同じ著者の「DirectX逆引き大全500の極意」を買った方が良い
789デフォルトの名無しさん:2006/07/15(土) 23:24:27
>>784
2つとも買っちゃいました(^_^;)
アドバイスありがとうございます。
790デフォルトの名無しさん:2006/07/15(土) 23:27:14
>>787
なるほどー。
検討してみます。
そうですね、買った2冊をマスターしたら専門書に挑戦してみます。
どーいうのがいいですかねー。

>>788
なかなか使い勝手のよさそうな本ですが初心者より上が対象って感じですね。
基礎ができてきたら検討します。
791デフォルトの名無しさん:2006/07/16(日) 01:29:39
図書館で借りればいいのに
792デフォルトの名無しさん:2006/07/16(日) 02:01:26
>>791
あー、考えもしませんでした。
でもまぁ期限付きだとすきなときにみれませんしね。
それにこの田舎の県の図書館にそんな本があるかどうか・・・w
793デフォルトの名無しさん:2006/07/16(日) 02:22:44
田舎だとC言語入門とかFORTRAN入門しか無さそうだな
ていうか俺の最寄り図書館
794デフォルトの名無しさん:2006/07/16(日) 02:57:14
>>703
そうそう!
県で一番おっきい図書館でもしょっぼいですからね!
勉強するにも買い物するにも就職するにも不利な田舎・・・(T_T)
795デフォルトの名無しさん:2006/07/16(日) 07:41:37
そこで投書しまくりですよ。


バイトして買いあさった方が早そうだなあ。
学校の図書館とかは駄目なの?
大学なり専門なりの図書館なら、多少はマシだと思うんだけど。
796デフォルトの名無しさん:2006/07/16(日) 09:30:11
>>790
いや、逆引き大全は初心者対象だよ?
ソースコード付きで500のTIPSが載ってるから
797デフォルトの名無しさん:2006/07/16(日) 09:37:07
うちの図書館無駄に初心者向けの入門書ばかり揃ってるよ
まぁ需要が高いのは確かだと思うけどさ

>>795
専門学校で図書館開放してるとことかあるの?kwsk
798デフォルトの名無しさん:2006/07/16(日) 10:09:58
>>793
ワラタ、あるあるw
799デフォルトの名無しさん:2006/07/16(日) 10:17:41
前に大学の図書館を調べたら、なぜか岐阜には図書館を
一般解放している学校が多かった。

あと、市内の住民なら利用できるってところもあったよ。
例えば千代田区民で18歳以上なら日大理工の図書館が使える。
800デフォルトの名無しさん:2006/07/16(日) 14:45:01
>>793
勝った、俺の所はコアJAVAがあるぜ

初版の
801デフォルトの名無しさん:2006/07/16(日) 22:44:14
スキンメッシュについて聞きたいのですが、
各フレームが一つ持つ、TransformationMatrixは
子である自分の座標系から、親の座標系に変換するための行列なのか、
自分の親の座標系から、子である自分の座標系に変換する行列なのか
どちらが正しいのでしょうか?

あと、オフセット行列は、ローカル座標におかれている頂点の座標を
特定のボーンの座標系に変換するためのモノであるという認識でよろしいのでしょうか?

よろしくおねがいします。
802デフォルトの名無しさん:2006/07/17(月) 04:59:17
>>801
TransformationMatrixは、子の座標系から親の座標系に変換する行列。
オフセット行列についてはその通りだったかと。

D3Dの結合法則なら最終的にこうなる
BoneMatrix = OffsetMatrix * Frame::TransformationMatrix
803デフォルトの名無しさん:2006/07/17(月) 10:54:33
>>802
なんか紛らわしくね?

BoneMatrix = OffsetMatrix * Frame::TransformationMatrix

このFrame::TransformationMatrixってボーンの行列でしょ。
804デフォルトの名無しさん:2006/07/17(月) 11:23:57
>>803
ごめんややこしいどころか間違ってた…
Frame::CombinedTransformationMatrixだった(SkinnedMeshサンプルの場合)
805801:2006/07/17(月) 12:26:08
>>802-804
回答サンクス

あやふやな所だったけど、これではっきりしました。
確かに、数式をみれば
TransformationMatrixは「子の座標系から親の座標系に変換する行列」
ですね。
806デフォルトの名無しさん:2006/07/17(月) 15:40:46
アルファブレディングっぽい事について質問なのですが
縁取りをした文字のテクスチャを用意したのですが
(透明色にしたい部分を紫、縁取りの色は黒、文字色は白、紫と黒の部分がアンチエイリアスがかかっています)
これを出力するのに困っています。

ただの縁取り文字(アンチエイリアス無しの境界線)はD3DXCreateTextureFromFileExで透明色(紫)を指定すると出来ますが
アンチエイリアスがかかっているテスクチャなのでこの場合紫と黒の混合の色が出てしまいます・・

なのでアルファブレディングを使えばいけるかな?と思ったので色々やってみたのですが、
白か黒しか透明色に出来ないみたいで、透明色を紫にしたいので(縁取りが黒で文字本体が白にするので)
どうやっても縁取りか文字も透けてしまいます

そもそもアンチエイリアスをかけたテクスチャを出力するには上記の方法以外に普通なやり方があるのでしょうか
よろしくお願いします。
807デフォルトの名無しさん:2006/07/17(月) 16:02:37
>>806
そりゃカラーキーじゃねぇの?
808デフォルトの名無しさん:2006/07/17(月) 16:04:56
無理。アルファ使ったテクスチャを作り直せ。
809デフォルトの名無しさん:2006/07/17(月) 16:05:42
>>806
アルファチャンネルって知ってるか?
810デフォルトの名無しさん:2006/07/17(月) 16:11:41
次はαの入った画像の作り方についての質問がくると思われ。
開発現場だと普通にフォトショップがあるけど、ないところってどうすんだろな。
811デフォルトの名無しさん:2006/07/17(月) 16:14:44
フリーのだと1色指定してやるから色数が1つ減るんだよな
既存画像をそうするんだから他の方法も無いわけだが
812デフォルトの名無しさん:2006/07/17(月) 16:18:14
>>811
だからそりゃカラーキーじゃねぇのか?
813806:2006/07/17(月) 16:28:42
>>807-812
アルファチャンネルなんてものがあるなんて今知りました・・
アルファデータを持ってる画像が使えるんならプログラム側でごちゃごちゃする必要ないですね
アルファ使ったテクスチャを用意する事にします

SetRenderStateでSrcとDestに適当な値を入れて透明化を実装していたのですが
これがカラーキーなのかは知りませんが

ありがとうございました
814デフォルトの名無しさん: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は背景の絵の色
815デフォルトの名無しさん:2006/07/17(月) 16:38:56
アルファチャンネル知らないって・・・
理解できるできないは別として、Directxのヘルプぐらい目を通しとけよ。
816デフォルトの名無しさん:2006/07/17(月) 16:42:55
うるさい豚だなぁ
817デフォルトの名無しさん:2006/07/17(月) 16:47:22
>>806の発言と>>813の発言に違和感を感じるんだが、この人は本当に理解していったのだろうか?
>>813ではアルファブレンドを使ったみたいなこと言ってるような気がするが、じゃあ、>>806のレスってなんだったんだろ?
とか思ったり思わなかったり、まあ、アルファブレンドを知ればすべてがわかることだ。
818デフォルトの名無しさん:2006/07/17(月) 16:56:01
おまえらこういう簡単な質問となると食いつき良いんだよなw
819デフォルトの名無しさん:2006/07/17(月) 17:00:47
ぶひぶひ
820デフォルトの名無しさん:2006/07/17(月) 17:04:06
>>818
なんか聞きたいことあるのかね?
でも、俺の知識はスキンメッシュ、バンプ、反射、屈折あたりで止まってるので
それぐらいまでで頼むw
821806:2006/07/17(月) 17:05:28
>>817
806は最初にカラーキー同等の処理をD3DXCreateTextureFromFileExで読み込む際に透明色を指定する方法から入ったのですが
この場合紫しか透明化されないので、外の紫と文字本体の縁取りの黒との境目の黒と紫が混ざった色は
灰色のような透明化がされないので、アルファブレンドについての質問に移行しんです。

アルファチャンネルが無い画像でも黒地か白地にグラデーションのような描き方をすると
適当なSrc、Destの値により黒か白が透明化されるんです。
その場合透明化されたのが黒だとして、濃い赤などの黒い要素も少し透けるようになるんです・・(言葉で説明するより実際やってみると判ります
この延長線上の手法でやるのかと思っていたのです・・。
822デフォルトの名無しさん:2006/07/17(月) 17:11:33
それただの加算合成じゃね?
823デフォルトの名無しさん:2006/07/17(月) 17:12:18
>>821
なるほど。
仕組みを理解せずに実装するのはやっぱり怖いな。
824デフォルトの名無しさん:2006/07/17(月) 17:14:20
>>822
多分そうっていうかめちゃくちゃなステータスだろうな。
勘で>>814の形にもってくのははっきりいって神でも宿らないと無理だね。
825デフォルトの名無しさん:2006/07/17(月) 17:14:47
>>820
丁度、「隙間無く閉じているポリの集合」と、「ある一つの頂点」との、"厳密な"当たり判定で悩んでいたんだけど、どうすかね
頂点がポリにめり込んじゃ駄目なの

「隙間無く閉じているポリの集合」が凸型なら簡単なんだけどねえ
826825:2006/07/17(月) 17:16:27
いや分かりづらいな
「隙間無く閉じているポリの集合」は、まぁt-potみたいな一般的なポリっす
827デフォルトの名無しさん:2006/07/17(月) 17:18:16
xファイルを,テキスト,バイナリ,圧縮それぞれ相互変換させるプログラムを作成してます.
DirectXのAPI使ってます.

テキスト,バイナリファイルの書き出しは可能なのですが,圧縮ファイルの書き出しがうまくいきませぬ.
APIリファレンスによると,
CreateSaveObject(LPCSTR szFileName,DXFILEFORMAT dwFileFormat,LPDIRECTXFILESAVEOBJECT* ppSaveObj)
関数を使用して,第2引数をァイルフォーマットの値を論理和,つまり,テキスト圧縮なら3, バイナリ圧縮なら2を与えているのですが,
通常のテキストファイル,バイナリファイルが書き出されてしまいます.原因がまったくわかりません.
828デフォルトの名無しさん:2006/07/17(月) 17:18:17
>>825
そんなの実装しねぇw
企画段階で自分のできる範囲の仕様になるようにごねる。
829825:2006/07/17(月) 17:31:34
>>827
定義見る限り、ビットフラグじゃ無い気が
試しに0と2でファイルサイズ比べるとどうなんだろ

>>828
たのむよ、とっつぁ〜ん
流れが止まった(ノД`)
830デフォルトの名無しさん:2006/07/17(月) 17:32:54
>>825
単に点の内外判定なら、
点から任意の方向にレイを飛ばして、衝突回数が奇数なら中よね。
831827:2006/07/17(月) 17:34:06
>>829
ファイルサイズ変化ナッシングです.
ちなみに,ヘッダも"bin"と通常のバイナリファイルになっとります.
832デフォルトの名無しさん:2006/07/17(月) 17:35:29
>>826
t-potが止まってて頂点が動いてて、
衝突する時間と衝突地点を調べるとかいう奴かい?
833デフォルトの名無しさん:2006/07/17(月) 17:41:30
Dx8からカラーキー自体なくなったけどな。

Dx8からはαチャンネルとアルファテストで
カラーキーと等価な処理する自前でするようになったってだけで。

αチャンネルサポートしてないグラフィックツールでも、
グレースケールのα用画像とカラー画像を分けて作成して、
合成してTGAあたりを吐き出すコンバーターを作ればいいと思われ。
834825:2006/07/17(月) 17:43:31
>>830
ちょ、神現る!俺なんか今凄いドキドキしてる。
断面取って2Dにし、テッセレの応用で…とかやってましたよ。ええーこれで出来ちゃうの。
マジでありがとやんした!

>>832
仰るとおりっす。おかげで判定できそうなので、後は時間と地点まで持って行けるか頑張ってみるっす。レス感謝です。
835デフォルトの名無しさん:2006/07/17(月) 18:35:38
>>831
冷静になってヘルプ見たら…もの凄い適当な事言ってごめんよ

変換自体が目的なら、SDK\Utilities\mview.exeで3通りに変換できるね。実装自体が目的ならすまんです
836827:2006/07/17(月) 18:44:09
>>835
いえいえ.どうもです.でも実装が目的です.
同じように,圧縮ファイルの作成に手間取った人はいないですか‥
ヘルプ願います.
837デフォルトの名無しさん:2006/07/17(月) 21:34:20
838デフォルトの名無しさん:2006/07/17(月) 21:34:51
839デフォルトの名無しさん:2006/07/17(月) 21:50:44
これはひどい
840デフォルトの名無しさん:2006/07/17(月) 22:12:38
mixiでもやってるな。
841デフォルトの名無しさん:2006/07/17(月) 22:24:19
俺は最近マルチに寛容だぞ。
何せ各地の掲示板を見歩くのを辞めた。
ここしか見てないからな。
842デフォルトの名無しさん:2006/07/18(火) 01:41:08
自作のツールでツールバーのツールチップを出すときに、
Diret3Dのウィンドウにかぶるとフレームレートが60→3くらいに激しく重くなるんだけど、
こういうものなんですか?
843デフォルトの名無しさん:2006/07/18(火) 02:05:44
作り方
844デフォルトの名無しさん:2006/07/18(火) 03:36:40
>>842
そういうもの。
MSNメッセンジャーは「自分の連絡先カードを表示」っていうツールチップが
しばらく出っ放しになるバグ(?)があるけど、それがゲームのウィンドウに
重なると悲惨なことになる。
845デフォルトの名無しさん:2006/07/19(水) 12:31:22
質問募集中
846デフォルトの名無しさん:2006/07/19(水) 17:02:25
彼女ができません。
DirectXの力でどうにかできませんか?
                   (男性・27歳・無職)
847デフォルトの名無しさん:2006/07/19(水) 17:05:31
2007FebからDirect彼女が正式コンポーネントになるらしいが
848デフォルトの名無しさん:2006/07/19(水) 17:27:57
日本語版も出ますか?
849デフォルトの名無しさん:2006/07/19(水) 19:08:45
Xモデルのアニメーションって関数一発で出来ないの?
850デフォルトの名無しさん:2006/07/19(水) 19:31:49
出来ないよ
851デフォルトの名無しさん:2006/07/19(水) 20:54:33
既存のライブラリもってくるのが一番早い
852デフォルトの名無しさん:2006/07/19(水) 21:06:39
自分で関数一発で済む関数を作ればいいんだよ。
853デフォルトの名無しさん:2006/07/19(水) 21:19:58
このままだとコミケも落とすし就職も決まってないんですが
854デフォルトの名無しさん:2006/07/19(水) 21:32:15
ですが何?
855デフォルトの名無しさん:2006/07/19(水) 21:34:26
ですが、この思いを鳥に託して私は空に旅立ちます

歌います いい日旅立ち
856デフォルトの名無しさん:2006/07/19(水) 21:38:09
いま〜船出が〜近づく〜この時〜に〜
857789:2006/07/19(水) 22:11:02
本がきました。
ゲームグラフィックスプログラミングのほうは丁寧でわかりやすくていいですね〜。
ただDirectX9実践プログラミングのほうはサンプルソースがコンパイルできない・・。
Spriteとかその辺でひっかかってるから仕様変更に対応してないんだろうけど・・・。
かなりがっかりです。どうしよう。
858デフォルトの名無しさん:2006/07/20(木) 06:17:43
>>857
そんなのちっと勉強すりゃすぐ動かせるようになるだろ。
どうしようも糞もないでしょ。
まあ、著者のほうもなげっぱなしじゃなくてサポートしてほしいもんだけど・・・。
859デフォルトの名無しさん:2006/07/20(木) 06:19:54
3ヶ月おきにリリースされるSDKに対応するっていうのも
無理な話だ
860デフォルトの名無しさん:2006/07/20(木) 06:36:20
>>859
いや、サンプルを動かせるようにしてくれるだけでもいいんじゃね?
できる人間にとっちゃものの10分かからん作業なわけだし、
初めて触る初心者にとっちゃちょっと困るっちゃ困るだろ。
861デフォルトの名無しさん:2006/07/20(木) 12:41:19
ここで9.0bをインスコすればとりあえず動く
ttp://www.microsoft.com/japan/msdn/directx/downloads.aspx
862デフォルトの名無しさん:2006/07/20(木) 18:22:38
Visual Studio 2005のwizardはなくなったの?
863デフォルトの名無しさん:2006/07/20(木) 19:26:28
意味がわからない
864デフォルトの名無しさん:2006/07/20(木) 19:35:28
>>862
最新のSDKにWizardは付いてない
DirectX Sample BrowserからEmptyProjectを開け
865デフォルトの名無しさん:2006/07/20(木) 20:22:27
WizardとかD3DXって思いつきで作ってんの?
866デフォルトの名無しさん:2006/07/20(木) 20:38:26
思いつかなきゃ作れないだろ。
何をアホなことを言っているんだ?
867デフォルトの名無しさん:2006/07/20(木) 21:29:00
いや、普通は無意識に作るものだと思うが。
868デフォルトの名無しさん:2006/07/21(金) 00:51:22
意識下の深遠には全ての魂が創造主と接続された大領域があるのだよ。
869デフォルトの名無しさん:2006/07/21(金) 00:55:41
アカシックレコードを検索したいのですが問い合わせはSQLでできまつか?
870デフォルトの名無しさん:2006/07/21(金) 02:10:03
>>861
なるほど、旧バージョンを入れるしかないんですね。
DirectXって同じ9の中でもライブラリが減ったり増えたりするだけじゃなくて
関数の仕様が変わったりするんですね。
もうちょっとどうにかならないのかな〜。
本にあわせて複数のバージョンをインストールしないといけないのが腑に落ちない・・・。
ま、そんなことしなくても書き換えられるくらい勉強しろってことかな。
871デフォルトの名無しさん:2006/07/21(金) 07:47:09
勉強するために本を買うのにおかしいね
872デフォルトの名無しさん:2006/07/21(金) 08:13:26
D3DXのSpriteとか使う必要性が皆無な無駄機能を使わなければ問題はないよ。
873デフォルトの名無しさん:2006/07/21(金) 09:51:49
返して私のお友達。
あなたを封印する!
874デフォルトの名無しさん:2006/07/21(金) 11:53:40
しょっぱなからエフェクトを自前で読み込めれば問題は無いな
875デフォルトの名無しさん:2006/07/22(土) 04:35:39
D3DMATERIAL9mMaterial;
// マテリアル情報を取り出す
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 );
}

と表示してるのですが、表示されるのは白いオブジェクトでマテリアルが効果を発揮してません。
何が原因かわかる人いませんか?
876デフォルトの名無しさん:2006/07/22(土) 09:14:26
ライトの設定は?
877デフォルトの名無しさん:2006/07/22(土) 12:18:00
>>876
いやそんなことは当たり前の話であって、このソースで効果ないのはなぜなのか聞いてるんですけど?
878デフォルトの名無しさん:2006/07/22(土) 12:29:27
ヒント:DrawSubsetが呼び出しているのはDrawPrimitiveだけではない
879デフォルトの名無しさん:2006/07/22(土) 12:32:09
と思ったらマテリアルの設定も手動で行わせる仕様だったっけ。
やっぱりライティングじゃね?
880デフォルトの名無しさん:2006/07/22(土) 13:11:18
「当たり前の話であって」とかほざくやつに限ってミスしてるんだよな。
881デフォルトの名無しさん:2006/07/22(土) 13:31:59
ええ、あなた程度でも思いつくような事はさすがにやってます^^;;;
882デフォルトの名無しさん:2006/07/22(土) 13:40:50
>>875
わかるよ
当たり前の話
883デフォルトの名無しさん:2006/07/22(土) 13:48:18
えーとここは初心者「しかいない」質問スレのようなので、他で聞くことにします。
マルチになるんでここでは返答を求めません。
884875:2006/07/22(土) 16:39:13
ライトなんですけど、onにしてもoffにしてもどっちにしても白く表示されます。
書いた部分じゃないところでなにかやってない設定が有るような気もするのですが、
ちゃんとできてるソースと見比べてもどこがおかしいのか見つからなくて。
何かやっちゃいけないこととかあるんですかね?
885デフォルトの名無しさん:2006/07/22(土) 16:49:23
オナニーは禁止
886デフォルトの名無しさん:2006/07/22(土) 16:56:21
自己発光の設定が変なんじゃね?
887デフォルトの名無しさん:2006/07/22(土) 17:00:13
環境光が強すぎると思われ
888デフォルトの名無しさん:2006/07/22(土) 17:01:21
>>887
いやいや自己発光だろう
889デフォルトの名無しさん:2006/07/22(土) 17:38:18
環境光だな。間違いない。
890デフォルトの名無しさん:2006/07/22(土) 18:05:08
ライトとかは本のまんまの設定でやっていて、本のプログラムではちゃんと動いてます。
そこからいろいろといじったやつで白くなるので、何かやっちゃいけないことをやっちゃったのかなと。
ちなみに、本のプログラムの方でライトをオフにしたら同じ感じになりました。

んで、非常に私事なのですが、そろそろ期末テストの勉強を開始しますので、
テストが終わり次第またやってみたいと思います。
またお世話になるかと思いますがその時はよろしくお願いします。
891デフォルトの名無しさん:2006/07/22(土) 18:19:22
俺が送ったウィルスのせいだと思うけど。
すべてのDirect3Dでポリゴンの描画を強制的に白一色にする機能がある。
ただしOpenGLは許すのだという。
892デフォルトの名無しさん:2006/07/23(日) 00:04:00
ディレクショナルライトが
ど真ん中向いてるとか。
893デフォルトの名無しさん:2006/07/23(日) 00:16:22
だから自己発光だって。
894デフォルトの名無しさん:2006/07/23(日) 00:21:03
後光だよ。
ポリゴンモデルに神が宿って、後光を発してる。
895デフォルトの名無しさん:2006/07/23(日) 00:24:42
>>100
生まれたときは誰だって一人だぜ?
896デフォルトの名無しさん:2006/07/23(日) 00:34:10
流石ちゅうさはいいことをいう。
897デフォルトの名無しさん:2006/07/23(日) 01:07:40
クォータニオンの関数D3DXQuaternionMultiplyについての質問なんですが
この関数にA*Bを行うつもりで
D3DXQuaternionMultiply(OUT, A, B)
とすると、出てくる結果がB*Aになってるんですが、これって仕様なんですか?
なぜ、この関数は積の順序を逆にしてるんでしょうか?
よろしくお願いします
898デフォルトの名無しさん:2006/07/23(日) 01:15:16
>>897
なんか同じ質問を1年くらい前にBBXあたりで見た記憶がw
899デフォルトの名無しさん:2006/07/23(日) 01:43:27
>>897
http://higeneko.com/diary.php?Date=2006-05-04#Date2006-05-04
>クォータニオンの掛け算の部分でD3DXQuaternionMultiplyがq1*q2ではなく、
>q2*q1の結果を返してくるという、変態仕様だったことが判明しました。
>これはD3Dでは、行列の積を使ったとき、M1*M2とすると意味的に
>M1の移動をしてから、M2の移動をすると同じ事なので、これと書き方を
>一緒にする為にクォータニオンの積の順序を変えてるというのが理由らしいです。
900デフォルトの名無しさん:2006/07/23(日) 08:20:12
>>897
なぜかと聞かれたらゲイツだからとしか答えようがない
901デフォルトの名無しさん:2006/07/23(日) 10:29:37
>>899
ありがとうございます
紛らわしい仕様になってるんですね。
902デフォルトの名無しさん:2006/07/23(日) 11:04:29
そもそもDXの行列自体が数学の行列と別物じゃん
903デフォルトの名無しさん:2006/07/23(日) 11:07:09
>>890
はっきりいってソースを晒さない限り原因が特定しない。つーか、できない。
それが固定機能を使ったときにでる意味不明な現象。(ほとんどステートの設定不備だと思うけどね)
それが嫌だからみんな頂点シェーダ使うし、固定機能もそのうち廃止になる。
ただでさえ、ライトOFFなのにアンビエントだけ有効なままとかわけわかんねーし。
もうね。固定機能作った奴はゴミ。これは確定。
904デフォルトの名無しさん:2006/07/23(日) 11:07:47
>>902
え?何?もう1回言って?
905デフォルトの名無しさん:2006/07/23(日) 11:19:27
902は昨日授業で行列を習ったばかりなんです。
許してあげてください。
906デフォルトの名無しさん:2006/07/23(日) 11:40:53
>>902
「数学の本とかOpenGLの行列が右作用(ベクトルを右から掛けて使う)なのに
DirectXは左作用(転置ベクトルを左から掛ける)で実装してややこしいねん、別物やん」
と脳内補完しとくわね。
907デフォルトの名無しさん:2006/07/23(日) 11:41:49
え、でもシェーダを使わず湖底機能で実装することに血道を上げてる人はどうするの?
CreateDeviceでMIXEDを選ぶ人は残らずそういうタイプでしょ
908デフォルトの名無しさん:2006/07/23(日) 11:47:41
SDKでオススメのバージョンはどれ?
いい加減 2003 Summer から脱却したいのだが。
909デフォルトの名無しさん:2006/07/23(日) 11:54:49
October 2004
910デフォルトの名無しさん:2006/07/23(日) 11:57:48
DirectXを作ったのは韓国人技術者
911デフォルトの名無しさん:2006/07/23(日) 11:59:14
コンピュータの基礎を築いたのは韓国人
912デフォルトの名無しさん:2006/07/23(日) 12:04:48
Komputerの国に帰れ
913デフォルトの名無しさん:2006/07/23(日) 12:05:39
とりあえず903は自分が固定機能で嵌ったからって
こんなとこで恨みつらみ書くな、な?
914デフォルトの名無しさん:2006/07/23(日) 12:27:53
>>913
じゃあ、大好きな固定機能死ぬまでいじってれば?
俺はこんなんで苦労するのは嫌だけどね。
なんのステートが何に影響するのか一つ一つ表にでもまとめないととてもじゃないけど使えないよ。
915デフォルトの名無しさん:2006/07/23(日) 12:35:33
使いたい機能を知っていれば十分でしょ
916デフォルトの名無しさん:2006/07/23(日) 12:38:32
俺、固定機能しか使ったこと無くて、ピクセルシェーダーはまた後で勉強しようと
思って全然分からないんだけど、対応しないハードウェアの場合ソフトウェアで
エミュレートするって、極端に遅くならない?
DirectX10はXPには対応しないという話があるから、DirectX9はかなり長く
使いそうだし、当分は固定機能でいいかなぁと思ってる。
917デフォルトの名無しさん:2006/07/23(日) 12:46:57
固定機能で苦労する奴ってなんなの?
918デフォルトの名無しさん:2006/07/23(日) 12:59:22
>>914はあれか、エフェクトのステート保存/変更機能のことを言ってるのか。
それ使わないとやってられないとかひょっとしてDrawPrimitiveが各所に
散らばってるんだろうか

>>916
頂点シェーダーはHWT&Lが使えなくなるけどそこそこは動く。
ピクセルは糞重い。
919デフォルトの名無しさん:2006/07/23(日) 13:02:02
>>918
ありがとう。
だったら、後で勉強するってことでいいかな。
920デフォルトの名無しさん:2006/07/23(日) 13:15:56
まぁ固定機能が(というか座標変換が)しっかり分かっていれば、シェーダなんてすぐ書けるしな
固定機能のクセで悩むか、シェーダでグラボの対応具合で悩むか、結局どっちでも悩むわけか

そういや、固定機能っぽいのが復活するなんて記事をどこかで読んだけど、あれは何だったかな
921デフォルトの名無しさん:2006/07/23(日) 14:06:55
>>907
VerexShader2.0までしかサポートしてないビデオカードで
3.0の機能も使うアプリを動かすときにMIXEDにして切り替えないで、
「動きません」で終わらせるのか?
922デフォルトの名無しさん:2006/07/23(日) 17:14:44
対応していないシェーダを使うときは、MIXEDじゃなくてSOFTWAREにしないと動かないが、
お前は何を言っているんだ?
923デフォルトの名無しさん:2006/07/23(日) 18:14:59
シェーダーでぼかし処理は見たことあるけど
固定機能でぼかし処理とか出来んのかいな?
924デフォルトの名無しさん:2006/07/23(日) 18:43:00
しなきゃいらないって話だな
925デフォルトの名無しさん:2006/07/23(日) 20:18:46
>>923
縮小して拡大でイナフ
926923:2006/07/23(日) 21:12:53
>>925
やり方は、知らないが
兎に角、出来るのですなぁ
ありがとう。
927デフォルトの名無しさん:2006/07/23(日) 22:56:12
>>922
ハードウェアがVS2.0対応のとしてMIXEDにした場合

VS3.0のシェーダーを使う場合:頂点バッファをD3DUSAGE_SOFTWAREPROCESSINGでつくり、SetSoftwareVertexProcessingをTRUEにすればソフトで処理される。
VS2.0のシェーダーを使う場合:頂点バッファを作り、SetSoftwareVertexProcessingをFALSEにすることでハードウェアで処理される。

つまり使うシェーダー毎に頂点バッファの作成フラグも切り替えてソフト/ハード処理を分別するということではないのか?
LunaライブラリとかそうやってたしそのためのMIXEDじゃあないの?
928デフォルトの名無しさん:2006/07/23(日) 23:04:19
ようはVS2.0のハードでVS3.0も使うときにSOFTWAREデバイス作成したら
VS2.0以下を使うときまでソフトになっちまうじゃねーかって事ね。
929デフォルトの名無しさん:2006/07/23(日) 23:55:37
固定機能云々関係あるの?
930デフォルトの名無しさん:2006/07/24(月) 00:06:20
ないっす。
931デフォルトの名無しさん:2006/07/24(月) 01:20:58
907がMIXED使うやつは固定機能云々っていってたからじゃね?
932デフォルトの名無しさん:2006/07/24(月) 06:35:20
>>907は知障
933デフォルトの名無しさん:2006/07/24(月) 10:30:23
DirectX2004SDKと2006SDKって共存させられますか?
934デフォルトの名無しさん:2006/07/24(月) 10:59:54
すみません、教えて下さい。

GDIで円を書いたり消したり15ミリセカンドでやってますが、
ディスプレイの書き込みとプログラムの書き込みが干渉するのか、
シマのようなものがチラチラします。

GDI描画をDirectXに差し替えると、
シマを消すことは出来るのでしょうか?
935デフォルトの名無しさん:2006/07/24(月) 11:06:13
画面と同期とかそれ以前に、GDIでのやり方が悪いんじゃね
円は裏バッファに書いてから、まとめてbitbltするんだ
936デフォルトの名無しさん:2006/07/24(月) 11:10:41
シマパン
937デフォルトの名無しさん:2006/07/24(月) 11:13:59
取り合えず15ミリ秒じゃなくて16ミリ秒に変更しる
まぁそれでもチラつきは避けられないが

DirectXはフルスクリーンでなら垂直同期取れるから
チラつきは根絶できる
938934:2006/07/24(月) 11:32:02
>取り合えず15ミリ秒じゃなくて16ミリ秒に変更しる
おk、でつ。
これは16ミリセカンドの仕様と聞いていたのを、自分が質問するときに15に丸めて書いてしまっただけです。

>DirectXはフルスクリーンでなら垂直同期取れるから
>チラつきは根絶できる

え”−−−−。
まさに知りたい内容でつ。KWSK。
説明サイトでも説明本でも何でも良いから教えて下さい!!!
939デフォルトの名無しさん:2006/07/24(月) 11:32:13
勉強すればレスの内容を
理解出来るようになりますか?
940934:2006/07/24(月) 11:36:18
>DirectXはフルスクリーンでなら垂直同期取れるから
>チラつきは根絶できる

特にハッキリ知りたいのは、
GDI描画をDirectX描画に差し替えるだけで、DirectAPIの中の人が垂直同期を自動でやってくれるのか、
ということと、
フルスクリーンというのはDirectAPIで、
フルスクリーンモードみたいなものにするってことでしょうか(質問初歩杉?)?
941デフォルトの名無しさん:2006/07/24(月) 11:39:59
自分で調べなくても全部ここで教えてもらえますか?
942934:2006/07/24(月) 11:54:07
DirectXの基礎を解説しているサイトか本教えて下さい(><)
943デフォルトの名無しさん:2006/07/24(月) 12:44:16
>>940
そのまえに最低限ダブルバッファはやっているのかぐらい答えろよ。
やってないなら同期以前の問題だぞ。
944デフォルトの名無しさん:2006/07/24(月) 13:22:31
ダブルバッファってなんですか?
945934:2006/07/24(月) 13:23:17
ダブルバッファっていうのは、>>935 の内容でしょうか?
それなら、一旦裏でデバイスコンテキスト画像作って、
それを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
946デフォルトの名無しさん:2006/07/24(月) 13:29:48
ちなみに垂直同期はフルスクリーンならとれるが、
ウインドウモードではタイマーを使ってエミュレーションされるだけ。
ウインドウモードでちらつきを抑えるならFPSを合わせるよりも、逆に落とした方が効果的。
んで、フルスクリーン専用でいいの?
947934:2006/07/24(月) 13:34:17
仕様的にはフルスクリーン専用で問題ありません。

あえて問題とすれば、BCBで作成していますので、
TFormを使うのをやめるのか、
TFormのボタンを押すとフルスクリーンモード(DirectAPIで?)切り替えにするか、
検討が必要ということです。
948デフォルトの名無しさん:2006/07/24(月) 13:36:18
今時GDIでちらつきってあり得ない気がするんだが
949934:2006/07/24(月) 13:40:43
ちらつくというより、ディスプレイの書き込みとプログラムの書き込みが干渉して、 シマができます。

>一旦裏でデバイスコンテキスト画像作って、それをCopyRectでコピーしています。

やっぱり、BitBltの方が速いでしょうか?
あと、グローバルでデバイスコンテキスト画像をコピー直前に作ってますが、
あらかじめ作ってプールしておいた方が良いのかな?
950デフォルトの名無しさん:2006/07/24(月) 13:41:24
CopyRect は違うんじゃまいか?

# BitBlt() & SRCCOPY なら、ダブルバッファっぽいが
# WNDCLASS で hbrBackground にブラシ設定してたりして…
# さらに InvalidateRect() で再描画要求してたりして…
951デフォルトの名無しさん:2006/07/24(月) 13:58:07
どちらにしろスレ違い
952デフォルトの名無しさん:2006/07/24(月) 14:02:15
スレ違いってなんですか?
953デフォルトの名無しさん:2006/07/24(月) 14:18:17
\|/
/⌒ヽ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ゜Θ゜)< そうでもないよ
| ∵ つ \__________
| ∵ |
\_/

リフレッシュレートに関する論争 だからスレど真ん中。
ttp://matsuzak.pobox.ne.jp/directx/faq/refresh-rate.html
954934:2006/07/24(月) 14:38:33
 ↑
上サイトみると2000〜1年になってますが、最近のリフレッシュレート論争はどうなってるんでしょうか?

論争に決着が付いて解決方法がDirectXということですか?
955デフォルトの名無しさん:2006/07/24(月) 15:14:57
DirectXのAPIのリファレンスはどこにあるのでしょうか?
956デフォルトの名無しさん:2006/07/24(月) 15:42:14
SDK (June 2006)使用してDirectX8使用したプログラム組もうと思っているのですが
#define DIRECT3D_VERSION 0x0800
#include <D3D8.h> or #include <D3D9.h>
#include <D3DX9.h>
とするとd3dx9math.h等でエラーが出てしまいます。
古いSDKと併用するしかないのでしょうか?
957デフォルトの名無しさん:2006/07/24(月) 16:02:20
DirectX8を使うんだろう?

#include <D3DX9.h>
   ↓
#include <D3DX8.h>
958デフォルトの名無しさん:2006/07/24(月) 16:11:07
>>957
June 2006にはD3DX8.h入ってないのです・・
そこで>>541-549の通りにしてみたんですが・・
959デフォルトの名無しさん:2006/07/24(月) 16:21:11
GetViewportが失敗するのはどういう状況ですか?
960959:2006/07/24(月) 16:26:39
すみませんわかりました。D3DCREATE_PUREDEVICEのセイでした。
961デフォルトの名無しさん:2006/07/24(月) 16:27:28

       ヽ(・ω・)/   ズコー
      \(.\ ノ
962デフォルトの名無しさん:2006/07/24(月) 16:51:47
>>958
そもそも併用というのがわからん。
DirectX8で作るならDirectX9のSDK入れておく必要ないし。
963デフォルトの名無しさん:2006/07/24(月) 19:39:20
DirectXと直接は関係ないんですけど、クォータニオンについて質問させてください。
ある回転クォータニオンがあって、そのクォータニオンの半分の回転角を持つ
クォータニオンを作りたいんですが、どのような計算をすればいいんでしょうか?
964デフォルトの名無しさん:2006/07/24(月) 20:33:00
球面補間で半分にしてやれば?
965デフォルトの名無しさん:2006/07/24(月) 20:51:47
>>964
いや、ですからやり方とかを聞いているのではなくて、
どのような計算をすればいいのかソースとかを書いてほしいんです。
966963:2006/07/24(月) 20:59:49
>>964
ありがとうございます。球面補間で検索して調べてみます。

>>965
勝手にレスしないでください。
967デフォルトの名無しさん:2006/07/24(月) 20:59:50
google
968デフォルトの名無しさん:2006/07/24(月) 21:04:12
どっちかっていうと、球面線形補間だけどな。
線形であることがクォータニオンの最大の長所。

D3Dだと、D3DXQuaternionSlerpがまさにそれ。
969デフォルトの名無しさん:2006/07/24(月) 22:00:08
>>968
ありがとう!これなら出来そうです!まさにもとめていた答えです。

>>966
どちらさんですか?
970964:2006/07/24(月) 22:16:37
まあここまで俺の自演なわけだが
971デフォルトの名無しさん:2006/07/24(月) 22:23:37
そろそろ次のスレを
972デフォルトの名無しさん:2006/07/25(火) 00:14:38
>>962
3Dの勉強も兼ねているので9のサンプルをビルドする事もあるので・・
9のSDK入れても互換があるので9,8,7…のSDKとして使えるとどこかで見た気がするんです。>>542さんもそう言ってますし
実際d3d8.hとかは含まれてますし・・
973デフォルトの名無しさん:2006/07/25(火) 00:16:58
DirectInputのバッファって使うのと使わないのどちらがいいの?
974デフォルトの名無しさん:2006/07/25(火) 00:19:43
>>972
そもそも

#define DIRECT3D_VERSION 0x0800
#include <D3D9.h>
#include <D3DX9.h>

で、よかったはずだぜ。
これで動かないなら動かない仕様になっちゃったんじゃないか?
もしかしてw
975デフォルトの名無しさん:2006/07/25(火) 00:20:43
>>973
なんだ?バッファって?
遥か前にDirectInputを弄ったことがあるが覚えが無いな。
976デフォルトの名無しさん:2006/07/25(火) 00:24:26
>>974
動きません・・
そういう仕様になっちゃったんでしょうか;
977デフォルトの名無しさん:2006/07/25(火) 00:25:14
あるだろ

>>973
どっちでも
PushやDownのキー状態知りたいならBuffer
978デフォルトの名無しさん:2006/07/25(火) 00:51:20
>>976
ヘッダ見た感じだと
#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
979デフォルトの名無しさん:2006/07/25(火) 01:14:19
Dx8のSDK落としてきてIncludeとLibの中だけ適当な場所においてパス通せばいいだけだろ。
別にSDKインスコする必要はねぇ。
980デフォルトの名無しさん:2006/07/25(火) 02:07:08
>>978
うちのHDDには眠ってませんでした;

>>979
納得いきませんがそうします
皆さんお騒がせしました
981デフォルトの名無しさん:2006/07/25(火) 02:33:29
D3DX9だって、古いD3DX9使いたかったら、古いSDKから持ってくるしかないじゃん。
982デフォルトの名無しさん:2006/07/25(火) 02:33:35
デバッグをするとプリコンパイル済みのヘッダーの検索中に
予期しないEOFというのが出るのですが 対処法わかりませんか?
983デフォルトの名無しさん:2006/07/25(火) 02:40:53
>>982
EOFといわれるとファイルIO周りぐらいしか思いつきませんわ
984982:2006/07/25(火) 02:44:16
すみません間違えました


ビルドをすると このメッセージがでます


デバッグをすると 〜exeファイルが見つかりませんて出ます。

対処法どなたかしりませんか?
985デフォルトの名無しさん:2006/07/25(火) 02:52:36
>>982
それはプリコンパイルヘッダをincludeしてないと出るエラーだったかな?
986デフォルトの名無しさん:2006/07/25(火) 02:54:53
>>982
俺あまり詳しくないから的外れな事言ってるかもしれんが
以前同じような事になったが、VSで同じミスしてるなら多分
ソースファイル中に、プリコンパイル用ヘッダがincludeされていないと予想
そうするとexeファイルが見つからないのはビルド失敗してるから実行できませんって意味
#include "stdafx.h"
全てのcpp(c/cxx)にこれ追加してもダメ?
987986:2006/07/25(火) 02:58:56
被ったか、スマソ
988デフォルトの名無しさん:2006/07/25(火) 08:24:27
>>973
GetDeviceState/GetDeviceDataの話?
即時データを取得したいのか変化イベントを取得したいのか
開発の要求に合わせて選択すりゃいいんじゃね
989デフォルトの名無しさん:2006/07/25(火) 19:31:08
頂点バッファのLockについて質問です。
ポリゴン1つ分の領域(頂点3つ分)をLockして、DrawPrimitiveで描画するとうまくいくのですが、
メッシュ全部のポリゴンを一度にLockして描画すると、うまくいきません。
IDirect3DVertexBuffer9::Lock()はD3D_OKを返しているのですが、
確保した領域に書き込もうとするとなぜか落ちてしまいます。
VRAMもメインメモリも十分にあると思うんですが、
何か原因に心当たりのある方いましたらレスください。
990デフォルトの名無しさん:2006/07/25(火) 20:49:57
>>989のプログラムがバグっている。
991デフォルトの名無しさん:2006/07/25(火) 20:57:47
私のプログラミングのことを聞きたいわけじゃないんです!
992989:2006/07/25(火) 21:06:45
自己解決です。
CreateVertexBufferでサイズの指定をポリゴン1つ分しかしてなかっただけでした。

>>991
勝手にレスしないでください。
993デフォルトの名無しさん:2006/07/25(火) 21:14:30
だったら、トリップつけれ
994デフォルトの名無しさん:2006/07/25(火) 21:27:54
原因はなんとなく分かるが、いま答えてもスレが埋まってしまうので
次スレでまた聞いてくれ。
995デフォルトの名無しさん:2006/07/25(火) 21:39:29
【C++】 DirectX初心者質問スレ Part10 【C】
http://pc8.2ch.net/test/read.cgi/tech/1153831096/
996デフォルトの名無しさん:2006/07/25(火) 21:50:38
997デフォルトの名無しさん:2006/07/25(火) 22:06:33
おいお前ら 5月2日 は何の日だか知ってるか?
998デフォルトの名無しさん:2006/07/25(火) 22:22:09
お前との結婚記念日だろ
999デフォルトの名無しさん:2006/07/25(火) 22:26:36
5 ごー  2 つー  ごーつー

GOTOの日
1000デフォルトの名無しさん:2006/07/25(火) 22:32:20
10000000000000000000000000000000000000000000000000000000000000000000000
バーか死ねクズ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。