[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 04/29 17:34 / Filesize : 141 KB / Number-of Response : 626
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 19:39:57 ]
前スレはカスしか居ないので廃棄の方向で。

※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。


246 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 13:24:42 ]
もう一度おいでとか言われるとつらい
あきらめろとか言われると燃える
しかしthx

247 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 14:05:04 ]
>>242よく知らんけどデバイスの画素フォーマットが同じなら使い回せんじゃねーの

248 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 14:14:03 ]
1. 開発環境をダウンロードする。
2. 現在の技量と熱意次第だね。とりあえず、そんなことも判らない君は技量は初学者レベルですぐ飽きると思うので 100年はみておこう。


249 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 14:19:22 ]
D3DPRESENT_PARAMETERS で hDeviceWindow をとっかえひっかえして reset
すればいけるんじゃねーの?

あ、そうすると、テクスチャいちいち読み直す必要があるのか。だめじゃん。

250 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 14:25:53 ]
>>242
つCreateAdditionalSwapChain

251 名前:249 mailto:sage [2009/01/23(金) 14:30:40 ]
なんだ、Present の第三引数を描画したいウィンドウにすれば良さそうじゃん。

252 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 15:31:21 ]
IDirectXFileから、ID3DXFileに変わって、
保存方法の流れがヘルプにかかれなくなったこともあって、
なんかアホみたいに使いにくくなっている気がするんですけど、
IDirectXFileData::GetData的なものは諦めるとしても、
IDirectXFileSaveObject::SaveTemplatesの様な動作をさせるコトてできないんですか?

253 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 16:47:47 ]
質問です。
何か手順の間違いの指摘や、避ける方法はないでしょうか?

下記のように、すでにAnimationSetに登録されているAnimationを削除した後、新たにアニメーションを追加するとメモリーリークするようです。
DirectXの初期化と、下記コードのみの最小構成でも起こりました。

下記ですと
D3DX: MEMORY LEAKS DETECTED: 4 allocations unfreed (54 bytes)
54byteということで、"1\0"で2バイト、RSTそれぞれを合計すると20+16+16=52ですから、丁度アニメーションがそのままリークした換算となります。
これは数を増やしてみたり、渡すRSTの量を変えたりしても同様の結果がでました。

削除だけ。追加だけという場合はリークせず、削除&追加をした時のみリークするようです。
察するに、削除といっても内部ではカウンターを減らしているだけで、追加の際「delete せずに上書きしてしまう」ことによるライブラリ側のケアレスミスな気がします。

Microsoft DirectX SDK (March 2008)
Microsoft DirectX SDK (November 2008)
両方で再現しました。

以下コードです。
CComPtr<ID3DXKeyframedAnimationSet> test;
D3DXCreateKeyframedAnimationSet("Test", 4800, D3DXPLAY_LOOP, 2, 0, NULL, &test);
D3DXKEY_QUATERNION r; // 中身を入れていませんが、中身をきちんとした値にしても結果は同じでした
D3DXKEY_VECTOR3 s;
D3DXKEY_VECTOR3 t;
HRESULT hr;

hr = test->RegisterAnimationSRTKeys("1",1, 1, 1, &s, &r, &t, NULL);
hr = test->RegisterAnimationSRTKeys("2",1, 1, 1, &s, &r, &t, NULL);
hr = test->UnregisterAnimation(0);
hr = test->RegisterAnimationSRTKeys("3",1, 1, 1, &s, &r, &t, NULL);


254 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 16:50:08 ]
追加情報です。
どうやらリークするのは、上書きした側の "3" のアニメーションのようです。
"3AAAA"など、最後のアニメーションの名前を長くしたところ、それにあわせてリーク量が増えました。

つまり「新規登録したアニメーションはちゃんとdeleteするが、上書き登録したアニメーションはdeleteしない」という動きのようです。



255 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 18:18:34 ]
容易にライブラリのバグだと疑うな。

256 名前:242 mailto:sage [2009/01/23(金) 18:49:22 ]
>>247 >>249 >>250
いくつも方法があるみたいですね。一つ一つ検討してみることにします。
御回答どうもありがとうございました。


257 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 20:36:57 ]
勝手に Release されてたら気持ち悪いだろうが。

258 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 20:42:13 ]
ID3DXFileSaveObject使って、STRINGをXファイルに保存するとき、
何故か2バイト文字が変に変換されて保存されてしまいます。
たとえば、
"田中太郎 -abcd- 鈴木次郎"
なら、
"\223\田\222\中\221\太\230\郎\201\ -abcd- \227\鈴\226\木\216\次\230\郎"
の様な具合です。
\223は、C言語のエスケープシーケンスで8進定数のことらしいと言うことまでは分かったのですが
(田は\0x93,\0x63(\223,\143)なので) '\田'とか出てきたり動作がかなり変です。
始末の悪いことにID3DXFileEnumObjectで読み込んでも元に戻りません。
何か問題の所があるのでしょうか。

char strDxTemplate[] ="xof 0303txt 0032\ntemplate ID { <60F23340-4686-472f-AA91-4D1212D26476> STRING strName; DWORD dwID;} ";
std::vector<char> Buff; DWORD dwBuff = 0xff00;
const char strName[] = "田中太郎 -abcd- 鈴木次郎"; LPCSTR strNameBuff = strName;
LPD3DXFILE pDxf; LPD3DXFILESAVEOBJECT pDxfSaveObj; LPD3DXFILESAVEDATA pDxfIDData;

D3DXFileCreate(&pDxf);
pDxf->RegisterTemplates(strDxTemplate, strlen(strDxTemplate));
pDxf->CreateSaveObject("test.x", D3DXF_FILELOAD_FROMFILE, tc - _T('0'), &pDxfSaveObj);
Buff.resize(Buff.size() + sizeof(strName));
memcpy(&Buff[Buff.size() - sizeof(strName)], strName, sizeof(strName));
Buff.resize(Buff.size() + sizeof(dwBuff));
memcpy(&Buff[Buff.size() - sizeof(dwBuff)], &dwBuff, sizeof(dwBuff));
pDxfSaveObj->AddDataObject(IDID, NULL, NULL, Buff.size(), &Buff[0], &pDxfIDData);
pDxfSaveObj->Save();

pDxfIDData->Release(); pDxfSaveObj->Release(); pDxf->Release();

SDKのバージョンは たぶんMarch 2008
そして、std::vectorの使い方が無茶苦茶なのは気にしないでください。

259 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 21:04:13 ]
もう1ヶ月やってるのにウィンドウ作ってテクスチャを表示することすらできない・・・
本とか見ても著者が作ったクラスとか構造体のことについて触れてなくて解析するのが大変だ
手取り足取り教えてるサイトとかありますか?

260 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 21:29:20 ]
本とか読むより、DirectX SDK のチュートリアルやった方がいいぜ?


261 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 22:01:37 ]
>>258
const char strName[] = "田中太郎 -abcd- 鈴木次郎";
この時点でおかしくね?

262 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 22:11:38 ]
今時Ansiでビルドなんて天然記念物級だよ

263 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 22:24:46 ]
でも、XFileのリファレンスをみると
STRINGテンプレートはASCIIのBYTE列ってあるぜ
やっぱ、これが原因じゃね?

264 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 01:12:43 ]
ウィンドウが作れないならDirectX以前の問題。
DirectXの本なんて読んでもWindows初心者には理解できないのは当然だ。



265 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 01:16:02 ]
GAME CODINGって本のサンプルは書き写せばそのまま動くから
Windowsプログラミングに不安の残る貴方にもおすすめですよ

266 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 02:37:03 ]
PIX って便利だね。

初めて知った。

267 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 03:04:02 ]
まるぺけの最小コードを動かしてみて、猫でもも読んで、MSDNで確かめて、
ウィンドウが作れたのが1年半前
今では立派なサンデーコピペプログラマですw
まー、APIスレの範疇なのかな

268 名前:デフォルトの名無しさん [2009/01/24(土) 03:41:14 ]
ビルボードの縮小に、Lanczos フィルタとか使えない?

269 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 03:43:28 ]
mipmap

270 名前:258 [2009/01/24(土) 04:11:48 ]
>>261,262
Unicode非サポートなんですわ。

>>263
つまり、2バイト文字非対応ってこと?

仕方がないので、古いIDirectXFile系のインターフェース使ったら、
2バイト文字でも書き込めたけど、
今度は配列に配列いれたら(2次元配列という意味ではない)、
ちゃんと書き込めるのに、
読んだとき外側の配列が全て始めのデータで同じになってしまう…

なんでこんなに挙動変なんだ…
動作確認しないなら、カスタムテンプレートなんか作るなよ…

271 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 08:49:19 ]
拡張するなら自前のフォーマットを作れって話ですわ。

272 名前:デフォルトの名無しさん [2009/01/24(土) 19:35:54 ]
>>271
そらそうですわな…

273 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:38:46 ]
DirectXを最初から勉強するにあたってこれだけは読んどけって本ない?

274 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:38:18 ]
SDKのヘルプ



275 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:59:16 ]
>>273
高額社の本でもよんどけ。
全く使えないというほどひどくもないから。

シェーダーにHLSLを使ってないのが時代遅れだが
インフィニティの本はそれなりの質だと思う。

276 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:49:16 ]
サンクス!
早速注文してくるわ

277 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 12:17:42 ]
SPRITEでの移動は画面のサイズが単位ですか?
800*600や1024*768など

278 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 12:19:57 ]
DirectXにSPRITEなど存在しない

279 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 12:31:21 ]
Spriteです
すいません

280 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:48:27 ]
DirectXにSpriteなど存在しない

281 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:51:33 ]
正直初心者って最初はソース見れるライブラリで何か作ってみて、
そのあとライブラリの中を調べながら学習していくのがベストだと思う。

282 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 17:58:01 ]
DirectSoundCaptureBuffer8でバッファのロック後データの移動をしたいんですが
これロックしたらデータ書き込めなくないですか?
2つバッファ作って一方に書き込み、一方をデータ移行、で繰り返すならわかるんですが、
もしかして、次の書き込みが来る前にアンロックできないと音飛びする仕組みなんですか?

283 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:04:24 ]
>>282
ストリーム再生なら次の再生位置に来る前の書き込み終わってなきゃ
どう考えても音飛びするだろ。

そもそもストリームのバッファ内でのデータの移動なんて意味不明なことをなんでするんじゃ。

284 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:24:36 ]
ループスタートでキャプチャをしてバッファの一周したら動的メモリに書き込みを繰り返すと
ヘルプに書いてあるんですが、ロックした
あーすいません。lockのパラメータとしてサイズの指定がありました。バッファ全体をロックするのかと思いました
すいませんでした!



285 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:36:55 ]
「タスクシステム」でググって出てきた本全部買っとけ

286 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:53:12 ]
books.google.co.jp/books?q=%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0&lr=lang_ja

287 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 00:14:57 ]
IUnknown派生のAddRef, Release両関数にはアトミック性はありませんか?
代入などコピー時に参照数を加増したいのですが、自前で管理したほうがいいのかな。

288 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 09:11:44 ]
マルチスレッド下ではInterlock系APIによって保護されている
らしい
てか、そこを疑ったらCOMを使ったプログラムは
全てスレッドセーフではないことになってしまう

289 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 10:05:55 ]
テクスチャをWrapで繰り返し表示させると負荷が高いって聞いたんですが、これって本当ですか?

290 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 10:47:09 ]
何と比較しての話なのかも明示せず、本当なのかもへったくれもないだろ。
どれだけ能無しなんだよ?

291 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:02:36 ]
まぁそういう現象の起きるハードウェアは実際に結構あるので
Wrapに頼る設計はWindowsではやらん方がいいね

一応言っとくが、↓でマップチップ使う使わないのケンカは禁止な

292 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:05:58 ]
↑てめーがな

293 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 23:35:29 ]
PIX for Windowsを使ってフレームの情報をキャプチャしようとしているのですが、
自分で書いたプログラムを起動すると、"PIX Experiment File Version Mismatch" というエラーのようなものが出て、キャプチャが出来ません。
このエラーは何が原因なのでしょうか?
DirectX SDKのバージョンは August 2007 です。

DirectXのサンプルをコンパイルしたものは上記のエラーは出ずに正常に動作して、キャプチャも出来ます。

294 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 00:08:54 ]
>>293
ファイルパスに全角文字があるとダメな場合があるわよ。



295 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 00:37:53 ]
>>294
実行ファイルをドライブのルートに置いて試したところ、正常に動作しました
ありがとうございました

296 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 02:34:41 ]
HLSLを使って描画したいんですが、IDirect3DDevice9::CreateVertexShader メソッドの引数の
const DWORD *pFunction,
[in] 頂点シェーダ機能トークン配列へのポインタ。このパラメータでは、各頂点に適用する処理を定義する。
の意味がよくわからないんですけど、いったい結局何を渡せばいいんでしょう?

297 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 06:15:44 ]
>>289
めちゃくちゃ重い
uvの値を5,6・・・10,11,
って上げるほど恐ろしく重くなる
っていうかいくつかのPCでやってみろよ
少なくとも自分の環境でやって報告しろ
すぐにわかる

>>290
知らないなら黙ってろよ
ためしたことあるやつならわかる

298 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 06:43:29 ]
>>296
msdn.microsoft.com/ja-jp/directx/cc917744.aspx

>>297
試してみたけど別に何も変わらん
GeForce7900GT
GeForce 8600 GT
Quadro FX 3700

てか、別に全ての環境で落ちるわけじゃなくて
落ちる場合もあるのでそれに頼るのは止めようねって流れだろ?
なんか前にも同じ事書いてスルーされて切れてた奴と同じ匂いがする

299 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 08:28:42 ]
>>288
明らかに古いごみドライバ使ってるとか
いんてるwのオンボードとかの話なら論外だぞ。

自前でソフトレンダラー組んだことあれば分かるが
WRAPのアルゴリズムは&演算1個だからどう考えても重くなりようがない。

300 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 08:32:22 ]
ソースのピクセル量が増えて負荷が増えるだけなんだから、
それで遅くなるビデオカードならwrapしようが、
パターンを敷き詰めてた大きなテクスチャを使おうが、
同じように遅くなるだけ。

301 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 08:44:31 ]
>>300
テクスチャキャッシュのキャッシュミスか・・・。
つーかそれならよほどデカイテクスチャ使ってるか
貧相なグラボつかってるかのどっちかだな。

302 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 10:30:28 ]
描画サイズが変わらないなら
何回wrapしても
ソースのピクセル量は変わらないし
サンプリング回数も変わらないし
フィルレートも変わらないと思うんだけど
もしかして何か別の話してる?

303 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:05:03 ]
wrapするかしないかの話をしているんだろ。
wrapせず描画色が決定して範囲外を単一カラーで塗りつぶす処理と、
何度もパターンを敷き詰める処理、当然前者の方が軽くなるというだけの話。

304 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:10:44 ]
塗りつぶしてる時点でコストは一緒でそ



305 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:38:31 ]
全然違うぞ。
どれだけ頭が悪いんだ?

306 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:42:35 ]
>>304
ミップマップ計算で重くなるという話ならこの辺に出てるね。

ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=4245145&SiteID=7

307 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:44:41 ]
とりあえずWrapの定義をはっきりさせようぜ

1、テクスチャ・アドレッシング・モード
(D3DSAMP_ADDRESSxのD3DTADDRESS_WRAP)

2、テクスチャ・ラッピング・モード
(D3DRS_WRAPxのD3DWRAP_x)

3、それ以外の何か

308 名前:306 mailto:sage [2009/01/27(火) 12:47:18 ]
さっきの書き方だと語弊があるか。

ミップマップを作っていない場合に極端に遅くなったって話ならここにでてる。
ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=4245145&SiteID=7

309 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:46:26 ]
なんかWrapを
スタンプみたいに敷き詰めてると勘違いしてるお馬鹿さんが混じってない?
単なるテクスチャ座標の扱いの違いだろ

310 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:55:25 ]

一番馬鹿

311 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:08:04 ]
UVが0-1の範囲を超えていたらスタンプのようになるし、
Wrapが設定されていなければ境界色なりで塗りつぶされる。

312 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:13:56 ]
違うだろう
結果的にスタンプになるだけで
やってることは
たとえば(u,v)=(2.5,3.8)を(u,v)=(0.5,0.8)
としてサンプリングしてるだけだ

313 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:18:19 ]
Windows via C/C++みたいなコンセプトがわかる書籍ってありますか?
ここにいる人は詳しそうなのでどういったもので勉強しているのか教えてください。

314 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:42:08 ]
DirectXのコンセプト?



315 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:57:49 ]
>>312
繰り返しにならなければ範囲外の色が決定できるんだから、
そのぶんの読み出しコストが無くなるだろ。
もう頭が悪いのは仕方がないから、せめて自分で塗りつぶし処理を書いてみろよ。

316 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:08:18 ]
話噛み合ってねーーー!!

317 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:38:49 ]
第三者だが噛み合ってなさ過ぎワロタ

318 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:54:24 ]
だれか助けてやれよw

319 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:03:03 ]
たとえばスクリーン上の100x100の領域に描画するとしましょう
この描画はどこで行っているかというとピクセルシェーダです
自分で塗りつぶし処理を書く必要はありませんね
以下が最小のテクスチャ付きピクセルシェーダです
固定機能パイプラインであっても見えていないだけで似たような処理をしています
float4 PixScene( float4 Diffuse : COLOR0,float2 Tex0 : TEXCOORD0 ) : COLOR0
{
 return tex2D( g_Texture, Tex0 ) * Diffuse;
}
これは、アドレッシングモードが違ってもまったく同じものが
ピクセルの数だけ、つまり100x100=10000回呼び出されます
たとえ広範囲に同じ色が固まっていっても関係ありません、どのモードでも1フレームあたり10000回です
ここでピクセルシェーダーの中をみてみましょう
tex2Dとはg_Texture(テクスチャです。ここでは256x256のテクスチャを既にセットしてあるとします)
のTex0(uv座標、頂点シェーダで計算済み)の色をサンプリングしてくれる関数と考えてください
例えば、Tex0.x=0.25、Tex0.y=0.5だったときはフィルタリングの状況にもよりますが
テクスチャの(64, 128)ドットの位置の色を返します
この色とDiffuse(ポリゴンの色、頂点シェーダで計算済み)を合成して最終的に塗りつぶす色を決定しています。
アドレッシングモードの違いはTex0の値が0.0〜1.0を超えたときのtex2Dの挙動を決定します
Tex0.x=1.25、Tex0.y=1.5だったとしましょう
CLAMPでは0.0以下であれば0.0、1.0以上であれば1.0として扱います
つまりTex0.x=1.0 Tex0.y=1.0と同じ色、テクスチャの(256, 256)ドットの位置の色を返します
WRAPでははみ出た分は巻き戻って計算します
つまりTex0.x=0.25、Tex0.y=0.5と同じ色、テクスチャの(64, 128)ドットの位置の色を返します
当然では在りますが、PIXで処理時間を計測しても両者に差異は見当たりません

320 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:06:21 ]
そういえば
nVidia系のボードだと
同じ処理を固定機能で書いた場合とシェーダーで書いた場合で
結構処理速度に違いがでるんだけど
ATI系だとほとんど差がでないんだけどこれって何でだろう?

321 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:33:15 ]
>>319
恥の上塗りをしてるだけだからやめとけって……

>>320
どっちの方向に違いが出るのよ?

322 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 19:23:04 ]
>>306,308
これだ

GeForce8300Gsでも激重になる現象確認
>>306,308の対応をしたら直った

というわけでmipmapに気をつけないと糞重くなります

323 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 20:39:27 ]
今まで気をつけていなかった方が逆に不思議なんだが。

324 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 20:43:10 ]
>>323
そこまでいうほどじゃねぇと思うな
俺なんか全く知らなかったしw



325 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:42:40 ]
なんでミップマップ使うと軽くなるか分かってないんだろうな・・・

float4 PixScene( float4 Diffuse : COLOR0,float2 Tex0 : TEXCOORD0 ) : COLOR0
{
 return tex2D( g_Texture, Tex0 ) * Diffuse;
}

このソースで速度が上下するのはtex2D()の部分。
テクスチャが大きすぎてキャッシュに乗らない場合は1サンプルごとに
メモリからの読み込みで帯域を食ってしまうが、キャッシュに乗るくらい
小さければキャッシュからの読み出しができるので大変高速に読み出せる。
ミップマップを使うと過剰なサンプリングを回避できる。

命令数と描画ピクセル数だけでは速度は決まらない。

テクスチャサイズが256x256で、-2.5をサンプリングしたら
-640&(256-1)の計算でサンプルピクセルが出る。
この計算がどの程度重いかは考えてくれ。

326 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:50:23 ]
でかいテクスチャを使うと重くなる理由がキャッシュだけしか思いつかない馬鹿が、
知ったかを晒す悲しいスレ。

327 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:59:58 ]
素直に感心した。なるほどな

328 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 22:12:57 ]
>>325
おおー
俺も理解できた
すごいね

329 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:36:16 ]
なんで、ATI系はおそくならないの?
多少大きいテクスチャを参照したぐらいで
露骨に性能減するって、しょぼい木がするけど
そんなもんなの?

330 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:40:02 ]
>>329
前、Radeon9600proもってたけど
遅くなった気がするけどな

331 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 00:13:01 ]
ドライバーのバージョンによっても変わるし、
実際のゲームだと描画するたびにテクスチャ切り替えとか
複数のテクスチャを1度の参照したりとかで重くなったりするから、
正確に何が重くなってるか測らないとあかん。


332 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 05:57:00 ]
>>331
変わるか?
あんまり大差ないよ

333 名前:デフォルトの名無しさん [2009/01/28(水) 13:12:45 ]
同次座標(D3DFVF_XYZRHW)での表示はビルボードと同じ効果が得られますか?

334 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:18:27 ]
はい



335 名前:デフォルトの名無しさん [2009/01/28(水) 13:29:32 ]
>>334 ありがとうございます

336 名前:デフォルトの名無しさん [2009/01/28(水) 16:36:54 ]
まぁそういう現象の起きるハードウェアは実際に結構あるので
Wrapに頼る設計はWindowsではやらん方がいいね

337 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:23:38 ]
XFileでアニメーションを実装するのとObjファイルを書きだしてモーションパスでアニメーションを実装するのはどちらがいいですか?

XFileは簡単だけど処理が重いと聞きました

この2つならどちらがいいかアドバイスお願いします

338 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:41:32 ]
ファイル形式が違うだけで処理の重さは処理を作るやつ次第だと思うが・・・

339 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 07:15:44 ]
Xファイルは処理が重いって言うより、単純にアニメーション再生させるなら簡単だけど
それ以上のことをやろうとすると難しいっていう感じだな

340 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 07:19:50 ]
>> 339

なるほど 例えばOBBで衝突判定をしたりとかですか?

341 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 07:27:22 ]
>>337
objファイルでアニメーションしたほうが何かといいよ

342 名前:デフォルトの名無しさん [2009/01/29(木) 15:54:56 ]
up2.viploader.net/pic3/src/vl2_094953.jpg
これだろ

343 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 16:27:31 ]
半透明のポリゴンを持つメッシュを表示したいんですが
普通に描画すると、半透明ポリゴンを先に描画してしまった時に後ろのポリゴンが表示されない場合があると思うんですが
どうすればいいでしょうか?

344 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 17:02:21 ]
Zバッファ法の限界なのでどうにもならない
半透明ポリゴンは最後に書き込む何らかの仕組みが必要



345 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:37:16 ]
ttp://www.hsjp.net/upload/src/up57929.jpg
販促チラシ


346 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:48:17 ]
ここんとこずっと朝から晩まで本見たりネット見たりしているのにいまだに画面に何か出すことすら出来ない






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<141KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef