08/08/28 13:35:26
書き込む前に考えるクセをつけるべきなのは>>306だなwwww
311:デフォルトの名無しさん
08/08/28 13:52:55
---煽りあいはここまで---
312:デフォルトの名無しさん
08/08/28 17:22:10
32*32を8000枚って、30MB超えたんだが、いったいどんな富豪グラボを想定してるんだろうw
313:デフォルトの名無しさん
08/08/28 17:55:04
大丈夫
いまどきの富豪なグラボは1GBある
314:デフォルトの名無しさん
08/08/28 17:57:52
淫乱負数からディスプレイアダプタを取得する方法が分からないのですが
誰か教えていただけませんか?
// ディスプレイアダプタを表すためのデバイスを作成
// 描画と頂点処理はハードウェアで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画処理はハードウェアで、頂点処理はCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SPFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画と頂点処理をCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_REF,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
//取得失敗
return E_FAIL;
これだとコンパイルエラーが出ます。。。
315:デフォルトの名無しさん
08/08/28 18:42:55
とりあえずエラーの内容も書こうぜ
316:デフォルトの名無しさん
08/08/28 18:55:45
Renderer.cpp(266行目) 淫乱負数からのポインタが取得できません
ちなみに使っているコンパイラは現役専門学生の友達が作ってくれたものです。
317:デフォルトの名無しさん
08/08/28 19:53:57
DEFAULTはそれこそ毎フレーム書き換えるようなデータに使うのが一般的。
その場合は当然DYNAMICフラグとセットにしてな。
それ以外のただの画像テクスチャなんてものはMANAGEDで問題ない。
速度的にDEFAULTが速いとか勘違いしてるかもしれないが
作成時に1回だけ書き換える程度の静的なデータには無意味だ。
一般的といっていいかは分からないけど、
MMOみたいな大量の文字を使うようなゲームでも普通は事前に
テクスチャに展開してUVで切り出して描画をするぞ。
1文字1テクスチャは色々とおかしいといわざるを得ない。
1文字単位でテクスチャの切り替えが発生するしキャッシュ効率も最悪。
318:デフォルトの名無しさん
08/08/28 22:45:27
>>316
淫乱負数について詳しく
319:デフォルトの名無しさん
08/08/28 23:23:35
【淫乱負数】
デクリメント負数のサイズ (バイト単位)。柔軟な頂点フォーマット (デクリメント) 頂点バッファの場合は、
淫乱負数 は少なくとも 1 つの頂点を格納できる大きさでなければならないが、頂点サイズの倍数である必要はない。
淫乱負数 は非 FVF バッファについては検証されない。
320:294
08/08/29 00:13:09
>>309
手抜きじゃなくて、無知で初心者なだけです。
常に最善を求めて頑張っています。
>>310
とりあえず>>306は私じゃないのであしからず。
>>312
いまどきのグラボは30MBくらいいけると想定して、
古いグラボはすっぱりと切る心づもりでした。
321:294
08/08/29 00:14:46
>>317
参考意見ありがとうございます。
charがどの文字に対応するかは絶対1つずつ判定が必要ですよね。
そしたら後は、1枚から特定の場所を切り出す処理がない分、
1つずつのテクスチャにした方が効率がいいかと思ったんですが、
そうではないんでしょうか?
私はプログラムやコンピュータに触りだしたのが最近で、
キャッシュ効率(たぶんハード寄りなこと?)というのがよく分からないんですが、
大量のテクスチャを使えば一時保存領域などを頻繁に入れ替えることになるから、
その分オーバーヘッドが生じて遅くなるってことでしょうか?
322:デフォルトの名無しさん
08/08/29 01:21:10
>>317
その書き方では、DEFAULTはロック書き換え用だと読めるが、
そうなの?
別に実測値を出せとは言わんが、それを示すドキュメントとかあるか?
323:デフォルトの名無しさん
08/08/29 01:25:44
扇形を簡単に描画させる方法ってないですか?
60度の角度で上方向に扇形を描画さしたいのですが(円弧の方が上)
開始地点は275から半径50の扇形を描画さしたいのですが
pD3Device->SetTexture(0, pTexture[0]);
pt[0].x = 250.0f;
pt[1].x = 300.0f;
pt[3].x = 275.0f;
pt[2].x = 275.0f;
pt[0].y = 225.0f;
pt[1].y = 225.0f;
pt[2].y = 275.0f;
pt[3].y = 275.0f;
pt[0].tu = pt[3].tu = 0.0f / 1024;
pt[1].tu = pt[2].tu = 200.0f / 1024;
pt[0].tv = pt[1].tv = 0.0f / 1024;
pt[2].tv = pt[3].tv = 200.0f / 1024;
pD3Device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,pt,sizeof(CUSTOMVERTEX));
これでは普通に三角形ができただけで・・・
角度計算とかで簡単に扇形にできないでしょうか?
324:デフォルトの名無しさん
08/08/29 04:00:28
>>321
テクスチャの切り替えはなるべく少なくした方が高速
325:233
08/08/29 05:00:57
解決しました
粗末な物を張ってすみませんでした
326:デフォルトの名無しさん
08/08/29 07:17:27
淫乱負数って一体何なんだ
327:デフォルトの名無しさん
08/08/29 07:33:53
>>321
テクスチャの切り出しなんて文字コードをインデックスにして
テーブルからUVを引っ張ってくるだけだろ。
今のCPUのキャッシュ容量なら余裕で全部乗る程度のキャッシュサイズだし、
別にテクスチャ自体を切り出して作るわけじゃないぞ。
「テクスチャの切り替えをする」ということはそのつど「DrawPrimitive」を呼ぶということだ。
昨今のグラフィックカードは細かいデータをたくさん出すようには設計されてないので致命的なほど遅い。
なので可能なら1枚のテクスチャに格納⇒文字全てを1個の頂点バッファに格納⇒DrawPrimitive1回で全ての文字を描画
これが実測でも理論でも最速になる。
DrawPrimitiveの連打に比べたら頂点データの作成やUVテーブルの参照なんてゴミみたいな負荷。
>322
SDKに入ってるドキュメントに書かれてるよ。
>動的な頂点バッファおよびインデックス バッファの使い方
>
>理想は頂点データまたはインデックス データがまったく変化しないことですが、これは必ずしも可能ではありません。
>アプリケーションがフレームごとに頂点データまたはインデックス データを変更する場合は多くあり、
>フレームあたり複数回変更することさえあります。
>このような場合は、D3DUSAGE_DYNAMIC を使って頂点バッファまたはインデックス バッファを作成する必要があります。
>この利用法フラグによって Direct3D を頻繁なロック処理用に最適化します。
>D3DUSAGE_DYNAMIC はバッファを頻繁にロックする場合にのみ有用であり、
>変化しないデータは静的な頂点バッファまたはインデックス バッファに格納する必要があります。
テクスチャやサーフェイスの場合だとシステムメモリにコピーをいちいち作れない、
レンダリングターゲットや深度バッファなんかもDEFAULTで作る必要あるけど。
328:327
08/08/29 07:43:05
補足。
D3DUSAGE_DYNAMICフラグはD3DPOOL_DEFAULTと一緒じゃないと使えない。
D3DPOOL_MANAGEDって単にシステムメモリにコピーもってて、
システム側のバッファ⇒DMA転送⇒VRAMのバッファってやってるだけ。
だからデバイスがロストしても復旧できる。
当然だけど描画中のバッファをLock()しようとした場合は描画終わるまで待たされる。
そうなると頻繁にバッファ書き換えるなら直接VRAMのバッファ変えるほうが速いのは当然だし
DYNAMICフラグの場合はLock()する度に別のアドレス返してくるからMANAGEDみたいに
データの保障は出来ないってことだな。
DYNAMICしたバッファは
Lock()→新しいビデオメモリ領域をmalloc()→そのアドレスを返す→描画終わったらドライバがfree()
っていう処理だから他のバッファみたいに描画中のバッファに干渉してパイプラインを止めなくてすむ。
だから書き換えないならMANAGEDでいいし、頻繁に書き換えるならDEFAULT+DYNAMICにしとけってな話。
ドキュメントの「DirectXGraphics」→「プログラミング ガイド」→「プログラミングのヒント」→「パフォーマンスの最適化」を参照。
329:デフォルトの名無しさん
08/08/29 11:06:50
書き込むスレ間違えたのでマルチスレッドになるかもですが、
シーンの作成時やレンダラーの初期化時に
HRESULTをいうのを使っているのですが
HRESULT Renderer::Initialize(HWND hWnd, BOOL isFullScreen, int clientWidth, int clientHeight)
LRESULTとの違いってなんですか?
LRESULT CALLBACK WindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
ウィンドウプロシージャルを定義するときはLのほうを使って
DirectXの初期化の時などはHを使うって事ですか?
330:デフォルトの名無しさん
08/08/29 11:23:45
LRESULTはもともとlongだったものからきてる、longで結果を返すものと思っていい。
HRESULTは内容が決まってる。COMが返すものと思っていい。
自分で作った関数は、よそから返ってきたHRESULTをそのまま返すもの以外はあまり使わないと思うよ。
331:デフォルトの名無しさん
08/08/29 11:36:43
>>330
なるほど~~
ありがとうございました!
332:デフォルトの名無しさん
08/08/29 12:29:25
テイルズっぽいゲームを作ろうと思っているのですがエフェクトの所で悩んでます
戦闘時のエフェクトとかってDirectXで描写するのとAdobeEffectsとかで作ったのを描写するのどっちが一般的なんですか?
333:デフォルトの名無しさん
08/08/29 12:39:54
3Dなら、プログラム率高い
2Dなら、ベタでいいんじゃね?
絵の量が多いと、プログラムしないとメモリが足りないけど
334:デフォルトの名無しさん
08/08/29 12:40:58
参考
URLリンク(rayz.skr.jp)
335:デフォルトの名無しさん
08/08/29 12:47:28
>>332
このスレ64から嫁
一般的かって話なら3Dで作るのが一般的
336:デフォルトの名無しさん
08/08/29 13:30:03
質問もマルチスレッドの時代になったか
337:294
08/08/29 20:40:02
>>327
文字列全てを1個の頂点バッファに格納するというのは、
同じ板ポリゴンに、位置をずらしながら1文字ずつ貼り付けていくということですよね。
板ポリの4頂点にテクスチャのUVを指定して、
板ポリ全体にテクスチャを貼り付ける方法しか知らないんですが、
板ポリゴンの一部にテクスチャを貼り付けるにはどうすればいいんでしょうか?
338:デフォルトの名無しさん
08/08/29 20:44:59
>>337
いうてる意味がわからんが「描画する文字数 x 4角形」分の大きさの頂点バッファをこしらえるだろ。
339:デフォルトの名無しさん
08/08/29 21:19:35
1文字あたりポリゴン2枚(三角形×2)
1個の頂点バッファにたくさんポリゴンを詰め込んで、1回のDrawPrimitiveで全部描く
340:デフォルトの名無しさん
08/08/29 22:21:31
>>328
D3DPOOL_MANAGEDはレンダリングターゲットには出来ない。
ということはGPUによる書き換えは発生せず、内容の書き換えが起こるとするとすれば
それは常にCPUからの場合のみ。
だとすれば、D3DPOOL_MANAGEDのリソースは、
メインメモリ側がマスタで、ビデオメモリ側がスレーブという考え方でかまわない訳で、
lockした場合は、常にメインメモリ側のポインタを返し、
unlockした時点でスレーブに反映させればいいから、別にCPUはストールしない。
と、勝手に思っていた訳だが。根拠はないが。
341:デフォルトの名無しさん
08/08/29 22:26:55
また、SDKの記述だが
D3DUSAGE_DYNAMIC+D3DPOOL_DEFAULTが
D3DPOOOL_MANAGEDより優位だとは特に書いていないぞ。
342:デフォルトの名無しさん
08/08/29 23:51:45
>>340
CPUのメモリに書き込む⇒CPU→GPUの転送をする⇒GPUのバッファが描画待ち状態だった⇒さぁどうなる?
>>341
毎フレームロックするような2Dのスプライトみたいなものとか、
3Dのパーティクルみたいなものには有利とは書かれているぞ。
モデルみたいな作りっぱのデータにはむしろマイナスだろう。
343:294
08/08/30 00:45:36
>>338
>>339
理解しました。頂点バッファって三角形何個でも繋げられるんですね。
今まで常に三角形2枚の長方形で1個の頂点バッファにしてました。
どうもありがとうございます。
344:294
08/08/30 00:47:27
>>328
起動時のフォントテクスチャ作成を、
D3DPOOL_DEFAULT、D3DUSAGE_DYNAMICから、
D3DPOOL_MANAGED、USAGEなしに変えたら、
LPDIRECT3DTEXTURE9#LockRectが20倍くらい速くなったんですが、
描画中だとD3DPOOL_DEFAULTの方がロック速いけど、
描画してない状態だとD3DPOOL_MANAGEDの方がロック速いってことでしょうか。
いずれにせよ、色々実測してみようと思います。
345:デフォルトの名無しさん
08/08/30 22:46:27
dxerr.lib dxguid.lib d3dx9.lib d3d9.lib このライブラリの中で
ゲーム会社の採用試験の作品提出の時に使ったまずいのってありますか?
346:デフォルトの名無しさん
08/08/30 22:53:47
まずいのはそんなことを質問するお前の頭
その時点で不採用決定だから気にするな
347:デフォルトの名無しさん
08/08/30 22:58:44
流石にネタだろw
348:デフォルトの名無しさん
08/08/30 22:59:47
>>345
windowsアプリケーションを作る時
#include <windows.h>
がないとの同じだぞ?
349:デフォルトの名無しさん
08/08/30 23:03:22
>>345
お前は心臓がなくて生きてられるか?(ペースメーカーなど除く)
350:デフォルトの名無しさん
08/08/30 23:25:28
>>345
d3d9.libだけは使ったらまずい。ほかは使っても大丈夫だよ
採用試験がんがれ!
>>346-349
しんだほうがいい
351:デフォルトの名無しさん
08/08/30 23:28:48
>>345
プログラマーって>>350みたいなの多いから気をつけた方がいいよ
別に気に入らなければ答えなきゃいいだろうっていう質問をネタに遊ぶ連中だから
352:デフォルトの名無しさん
08/08/30 23:32:30
再配布禁止なのはd3dx9***.dll系だろ・・・
353:デフォルトの名無しさん
08/08/31 00:28:48
こういうくだらない話に喰いつく奴をみると
ネット経験が浅いんだろうなぁ、ウザいなぁと何時も思う。
354:デフォルトの名無しさん
08/08/31 01:01:16
>>352
実行ファイルの隣に置いておくのが駄目なだけで
再配布が禁止されてるわけじゃないよ
355:デフォルトの名無しさん
08/08/31 01:49:17
採用担当はいちいちそんな所みてねぇよ
356:294
08/08/31 04:38:21
色々試してみましたが、
やっぱうちだとPOOL_DEFAULT より POOL_MANAGEDの方が速いっぽいです。
あと、HARDWARE_VERTEX_PROCESSING より SOFTWARE_VERTEX_PROCESSINGの方が速い。
357:デフォルトの名無しさん
08/08/31 05:24:16
>>356
システムメモリとビデオメモリを理解してないんですね
わかります
358:デフォルトの名無しさん
08/08/31 08:08:45
>>356
そりゃロック速度は速いだろうけど描画は遅くなるだろ・・・
359:デフォルトの名無しさん
08/08/31 08:47:02
>356
測定条件が明確じゃないのに、ここでどっちが早いとか
書いても意味ねーぞ
360:294
08/08/31 14:24:52
C#で測定ツールを作ってみたんですが、
測定条件こんな感じでどうですか?
URLリンク(www.sepia.dti.ne.jp)
Managed DirectXは少し遅いらしいけど。
361:デフォルトの名無しさん
08/08/31 14:33:26
>>354
エーダメだったの?
362:デフォルトの名無しさん
08/08/31 16:28:42
>>360
いやぁ
その前にシステムメモリとビデオメモリの違い
ってわかる?
多分、そんなの測ってもケースバイケースよ?
いまのままだとどんな条件のときにそのプログラムが速くて
そんな条件のときにそのプログラムが遅いのかわかんないでしょ?
それを知りたい?
それとも虚構の条件でのみ速いって主張するそのプログラムを
みんなに認めてもらいたいだけ?
どっちか選んで方針決めてよ
363:294
08/08/31 16:59:03
何の違いですか?転送速度とか?
詳しい違いはしりません。
>それを知りたい?
知りたい。
364:294
08/08/31 17:00:47
あとはうち以外の環境でも実測して、
結果と理論を合致させたいです。
365:デフォルトの名無しさん
08/08/31 17:01:41
何で敢えて「その前にシステムメモリとビデオメモリの違い」を無視しているのかなぁ。
366:デフォルトの名無しさん
08/08/31 18:59:07
iPhoneのように画像をマウスの動きに合わせて左右にスライドさせて見るような画像ブラウザを作りたいのですがDirectXで可能でしょうか
お勧めのライブラリーなどあればよろしくお願いします
367:デフォルトの名無しさん
08/08/31 18:59:37
>>361
ちゃんと書いてあっただろ・・・。
もし商業でやってたらアウトだぞ。
再配布していいのは「再配布パッケージ」だけで
「再配布パッケージの中のファイル(d3dx9_32.dllなど)」を
単独で再配布してはいけない
>>363
その詳しい違いを調べてるんじゃないの?
ただロックして書き込み速度だけみたいなら
mallocしたバッファにでも書けば?
368:デフォルトの名無しさん
08/08/31 19:32:36
>>363
んじゃ
システムメモリってのはPCのCPUで演算させるときに
データをおかなきゃならんところなんよ
ビデオメモリってのはグラフィックボードのGPUで
演算させるときにデータをおかなきゃならんところよ
>あと、HARDWARE_VERTEX_PROCESSING より SOFTWARE_VERTEX_PROCESSINGの方が速い。
これもさ、LockとかDrawPrimitiveUpやってんじゃねぇの?
なのでそんな結果になっちゃうわけよ
つまりな、描画方法がグラボの能力をまったく使えてないw
369:デフォルトの名無しさん
08/08/31 20:35:00
>>367
エーそうだったのか
ありがとう
370:デフォルトの名無しさん
08/09/01 13:49:43
2Dスプライトを実装する際の
頂点バッファ、インデックスバッファの扱いについて質問です
これらはスプライト毎に用意したほうがいいのでしょうか?
それともシステムに対して一つ用意してそれを使いまわせばいいのでしょうか?
371:デフォルトの名無しさん
08/09/01 14:56:14
>>370
1個だけ作っておいて
スプライトを順次埋め込んでいけばオッケ
表示するときに一発で済む
372:デフォルトの名無しさん
08/09/01 17:59:13
>>371
一つの頂点バッファに動的に頂点を追加し
テクスチャごとにインデックスバッファを作成して描画ということでしょうか?
一つの動的な頂点バッファをマイフレームロックして書き換えるのと
テクスチャごとに静的頂点バッファを生成して切り替えて使うのだと
どちらがパフォーマンスにやさしいのでしょうか?
373:デフォルトの名無しさん
08/09/01 19:01:41
初めてDirectXクリックしたら はい いいえの文字が出たのでいいえクリックしたら
DirectX診断ツールが出てきた・・・はい いいえの内容教えてください
たしか はい がおすすめですと書いてあった
バージョンが最新?DirectX 9.0cになってたいいえクリックすると自動で9.0cがインストールするの?
詳しい方教えてくださいおねがいします。
374:デフォルトの名無しさん
08/09/01 21:59:35
なんでこの文はFAILEDが2個もあるんですか?
//--------------------------------------
// モデルを生成
//--------------------------------------
// 球体(Sphere)の生成
if(FAILED( FAILED(D3DXCreateSphere( pD3DDevice,
1.0f,
36,
36,
&m_pMesh,
NULL)))) {
return E_FAIL;
}
375:デフォルトの名無しさん
08/09/01 21:59:50
とりあえず
・プログラミングの話しではない
・日本語がおかしい
376:デフォルトの名無しさん
08/09/01 22:10:08
>話しではない
お前も日本語がおかしい
377:デフォルトの名無しさん
08/09/01 22:15:36
if(FAILED(D3DXCreateSphere( pD3DDevice, これでいいと思うんですけど
if(FAILED( FAILED(D3DXCreateSphere( pD3DDevice, これにする理由ってなんですか?
378:デフォルトの名無しさん
08/09/01 22:36:14
>>377
後生ですからFAILEDマクロの定義を調べた上で初心者スレに出直してください。DirectXには関係がありませんから。
379:デフォルトの名無しさん
08/09/02 00:56:57
DirectXの画面上にエディットコントロールを貼り付けると激しくちらつきますが、
これは相性が悪いのであきらめろということですか?
380:デフォルトの名無しさん
08/09/02 08:26:34
>>372
異なるテクスチャを要求されるか
頂点バッファが一定量(例えばスプライト100個)を越えるまで
一つの頂点バッファに溜め込んで
上記条件を満たしたら表示する
>>379
DX搭載のUIを使うか
エディットコントロールの部分をクリッピングする
381:デフォルトの名無しさん
08/09/02 10:24:08
>>380
その手法はヘルプには書いてありましたが
たとえば
スプライト0~49がテクスチャA
スプライト50~99がテクスチャBを資源にしている場合
ひとつの頂点バッファで一括で100個描画をする方法あるのでしょうか?
パーティクルみたいに同じテクスチャを数100個表示するようなときには有効そうですが
382:デフォルトの名無しさん
08/09/02 11:31:27
>>381
テクスチャごとに(その例では50)表示しても
マルチテクスチャで無理して全部(その例では100)表示しても
速度差は出ないぞ
383:デフォルトの名無しさん
08/09/02 11:49:29
>>380ハァハァ・・・めんどいよぉ~
384:デフォルトの名無しさん
08/09/02 12:01:55
ウィンドウならWS_CLIPCHILDRENで
385:デフォルトの名無しさん
08/09/02 12:02:54
超初心者でプログラミングのサイトを読み進めながら組んでるんですが、
"error C2065: 'm_pD3Ddev' : 定義されていない識別子です。"
こんなエラーが出てビルドする事が出来ません。
恐れ入りますが、よろしくお願いします。
386:デフォルトの名無しさん
08/09/02 12:04:57
LPDIRECT3DDEVICE8 m_pD3DDev;
をクラス定義に入れろ。
387:デフォルトの名無しさん
08/09/02 12:44:28
>>386
有難うございます。
無事に解決する事が出来ました。
388:デフォルトの名無しさん
08/09/02 13:28:41
って8でよかったのか?
389:デフォルトの名無しさん
08/09/02 16:48:14
>>384わおすげー できた!おじちゃんありがとー!
390:デフォルトの名無しさん
08/09/02 23:57:18
LWでXファイルを書きだしたあとDirectXで読み込むときテクスチャーが読み込まれないの何でですか?
DirectXのほうでテクスチャーを張り付ける処理をしなければいけないってことです?
391:デフォルトの名無しさん
08/09/03 00:10:54
DirectXをダウンロードしたのですがスタートメニューから[DirectX]を検索して
プログラム欄のフォルダを見ても中が空なんですがこれできちんとダウンロードされているのでしょうか?
よろしくお願いします。。
392:デフォルトの名無しさん
08/09/03 00:14:21
OSはvista
DirectX10.0です
いまいち効果が感じられないので質問するに至りました
393:デフォルトの名無しさん
08/09/03 00:14:51
DirectXってどれ?
ランタイム?SDK?
394:デフォルトの名無しさん
08/09/03 09:19:46
>>390
DirectXの何で読み込んでいるかにもよる
ポリゴンしか読んでないなら
そりゃテクスチャも読まないとダメでしょう
よくあるトラブルは
テクスチャへのパスが間違っていること
一度Xファイルを覗いてみてパスが正しいか確認すべし
395:デフォルトの名無しさん
08/09/04 17:33:09
DirectXとOpenGLで共用できるようなメッシュクラスを作りたいと思っているのですが、
OpenGLのように頂点座標や法線、テクスチャ座標が別々の配列に分かれているデータを
一度に描画する方法はないのでしょうか? どなたか教えて下さい。
396:デフォルトの名無しさん
08/09/04 17:53:30
FVFに直すしかないんじゃね?
397:デフォルトの名無しさん
08/09/04 18:53:35
>>395
このへんが参考になるんじゃね?
URLリンク(marupeke296.com)
398:デフォルトの名無しさん
08/09/04 19:59:01
そんなのあったんだ!
399:デフォルトの名無しさん
08/09/04 20:41:08
スキンメッシュAと普通のメッシュaをそれぞれD3DXLoadMeshHierarchyFromXとD3DXLoadMeshFromX
で読み込ませたところ、なぜかaがAのモーションに引き寄せられるのですが。
解決方法が分かる人はいませんか?
400:399の補足
08/09/04 20:47:16
普通のメッシュを複数読み込んだ場合、最初の一つ以外は普通に描画されます。
401:399
08/09/04 21:16:59
>>399 >>400
すいません。直りました。レンダリングさせる順番を間違えてました。
402:395
08/09/05 08:36:21
>>397
どうもありがとうございます! とても参考になりました。
403:デフォルトの名無しさん
08/09/06 19:28:57
テ゜バイスがなくなったときの処理はなくてもいいの?
404:デフォルトの名無しさん
08/09/06 19:46:37
×テ゜バイス
○デバイス
405:デフォルトの名無しさん
08/09/06 21:58:35
突然、何の前提条件の説明もなく質問する脳味噌の足りない馬鹿って、
どうして発生するんだろう?
406:デフォルトの名無しさん
08/09/06 22:04:21
DirectX以外の事もおおむね初心者だからです
あなたのESP能力が試されているのです
というわけでデバイスロストでググってまたきなさい
407:デフォルトの名無しさん
08/09/07 11:00:33
if(pD3DDevice->present(0,0,0,0)) {
pD3DDevice->Reset(&m_D3DPP);
408:デフォルトの名無しさん
08/09/07 11:33:22
>>407
そんな最低のソース組むやつと仕事は出来ない。
409:デフォルトの名無しさん
08/09/07 11:40:01
>>408
トンマ ドベ アンポンタン ダボ アホ
410:デフォルトの名無しさん
08/09/07 11:47:58
2000ミリ秒って何秒ですか?
411:デフォルトの名無しさん
08/09/07 11:51:59
2秒?
412:デフォルトの名無しさん
08/09/07 12:33:11
>>410
PG辞めろ
413:デフォルトの名無しさん
08/09/07 12:34:06
>>412
トンマ ドベ アンポンタン ダボ アホ
414:デフォルトの名無しさん
08/09/07 12:43:22
>>413
トンマ ドベ アンポンタン ダボ アホ
415:デフォルトの名無しさん
08/09/07 16:46:28
>>414
トンマ ドベ アンポンタン ダボ アホ
416:デフォルトの名無しさん
08/09/07 17:06:00
この流れを何とかしてくれ
無視するわけにはいかない
417:デフォルトの名無しさん
08/09/07 17:07:42
>>41
トンマ ドベ アンポンタン ダボ アホ
418:デフォルトの名無しさん
08/09/07 17:20:20
自演にしては手が込んでるな・・・
ID出ないからって調子乗りすぎ
419:デフォルトの名無しさん
08/09/07 17:21:24
>>418
トンマ ドベ アンポンタン ダボ アホ スケベ ノロマ
420:デフォルトの名無しさん
08/09/07 23:39:23
キーフレームアニメーションの分野に入ったんですけど この分野の概念は重要ですか?
421:デフォルトの名無しさん
08/09/08 00:52:12
>>420
それが重要かどうかは、420が何をしようとしているか分からなければ答えられないんじゃないか?
まずはそれよりも、
>キーフレームアニメーションの分野に入ったんですけど
もうちょっと、自分が言わんとしていることが人に伝わる文章になっているか、それを気にしたほうがいい。
422:デフォルトの名無しさん
08/09/08 19:35:57
コリジョンが簡単にできるPosbiliedクラスって本当に売ってるんですか
423:デフォルトの名無しさん
08/09/08 20:38:25
>>420
そのぐれー理解しとけレベルとして聞いてるならもちろん理解しなきゃダメレベル
っていうかこれ嫌がったらキャラのアニメーション、エフェクトのアニメーションとか
アニメーションまわり全部苦手になるじゃん
理解しろ
424:デフォルトの名無しさん
08/09/09 16:27:56
板ポリに張り付けたテクスチャの透明度を動的に変化させたいのですが
いままではカラー情報無の頂点(座標+テクスチャ座標のみ)をつかって
ピクセルシェーダーで直接テクスチャカラーを
指定したアルファ値で書き換えていたのですが
これを固定機能パイプラインで再現するにはどうしたらよいのでしょうか?
調べた限りでは頂点情報にカラー情報を入れて
そこのアルファ値を使ってブレンドしているようなものは見つけましたが
これだとアルファ値を変化させるたびにLockして書き換えることになるような気がします
なにかさっくりとブレンド比を指定することはできないのでしょうか?
固定機能パイプラインを使ったプログラムほとんどしたことがないのでよろしくお願いします
425:デフォルトの名無しさん
08/09/09 17:16:48
板ポリなんだから、DrawPrimitiveUPを使えばいいんじゃない?
いちいちロックしなくて済むし
426:デフォルトの名無しさん
08/09/09 18:49:08
DrawPrimitiveUPのUPって何の略ですか?
427:デフォルトの名無しさん
08/09/09 18:55:05
ウンポーコ
428:デフォルトの名無しさん
08/09/09 19:04:09
User memory Pointer
429:デフォルトの名無しさん
08/09/09 19:46:21
>>428
THXRY
430:デフォルトの名無しさん
08/09/10 04:52:39
>>424
俺も悩んだ。頂点毎に色を変える必要がなければ、
1.レンダーステートでライトを有効にする。
2.ライト自体は全てOFF。
3.マテリアルカラーのデヒューズあたりをいぢる。
で変わったはず。
ただし、この方法だとなぜか元々頂点カラーの入っているポリゴン(グーローポリゴン)
は変えることができなかった。解決方法は今も模索中。
431:デフォルトの名無しさん
08/09/10 10:33:18
>>430
ありがとうございます
D3DRS_BLENDFACTORにて対応することにしました
432:デフォルトの名無しさん
08/09/10 17:33:59
StreamDataサンプル
URLリンク(msdn.microsoft.com)
が見つからないんですが、どのバージョン落とせば入ってるんでしょうか・・・
February2007を使っています。
どこかでサンプルだけ落とすことって出来るんですか?
あとDirect Sound詳しく解説しているページや書籍があったら教えて頂きたいです。。。
433:デフォルトの名無しさん
08/09/11 22:48:19
drawprimitiveとLPD3DXSPRITE->Drawによる描画を同時に使っているのですが
描画した結果をキャプチャして一枚のテクスチャにするにはどうすればいいですか?
434:デフォルトの名無しさん
08/09/11 22:58:04
テクスチャをターゲットにする
435:デフォルトの名無しさん
08/09/11 23:06:31
スプライトに関連づけられたデバイスがSetRenderTargetでテクスチャ指定すれば
DrawPrimitiveのものだけでなくスプライトもそのテクスチャに描画されるということですか?
436:デフォルトの名無しさん
08/09/11 23:09:45
グダグダ言う前にとっととやれ
437:デフォルトの名無しさん
08/09/11 23:48:51
D3DUSAGE_RENDERTARGETでテクスチャを作成して
・レンダーターゲットに設定して描画
・GetRenderTarget→StretchRectでフレームバッファからコピー
お好きな方をどうぞ
438:デフォルトの名無しさん
08/09/14 17:04:12
DirectInput使ってキー入力してるんですが、ウィンドウを一旦非アクティブにすると、それ以降全てのキーが押された状態になるようです。
どうすれば直るでしょうか・・・
439:デフォルトの名無しさん
08/09/14 17:56:34
協調レベルの設定を見直したら大丈夫になりました。
自己完結です。ご迷惑おかけしました
440:デフォルトの名無しさん
08/09/14 21:24:29
行列計算とか距離計算だけをGPU?にやって欲しいんだけども、どうしたらそこで計算してくれますか?
441:デフォルトの名無しさん
08/09/14 21:42:21
ちょっと立ち止まって
ホントにGPUで計算したほうが結果的にはやくなるのか考えてみよう
442:デフォルトの名無しさん
08/09/14 22:41:23
昔はGPUでやってたよね(´・ω・`)
443:デフォルトの名無しさん
08/09/14 23:53:34
ゲームの場合
どう考えてもCPUの遊んでる時間のほうが長いんじゃね?
444:デフォルトの名無しさん
08/09/14 23:54:32
>>443
何いってるんだ・・・?
445:デフォルトの名無しさん
08/09/15 08:37:45
つかFPU以上に速く処理できる場所ってあるのか?
446:デフォルトの名無しさん
08/09/15 10:10:32
頂点毎に行列計算があるっていうなら止めないけど
あくまでキャラのローカル座標程度ならCPUのほうがいいと思うよ
447:デフォルトの名無しさん
08/09/15 10:42:46
そろそろ破線描画について考えようぜ
448:デフォルトの名無しさん
08/09/15 11:46:16
1軸固定のビルボードで余裕
449:デフォルトの名無しさん
08/09/15 12:50:24
>>445
GPU
450:デフォルトの名無しさん
08/09/16 20:09:45
今まで全然気づかなかったんだけど、Manaded DirextX9のDirectDrawって
もしかしてアルファブレンドに対応してるんですか?
SDK見てたらAlphaSourceConstantプロパティとか見つけたけど
また実装されてないとか・・・かな。
451:デフォルトの名無しさん
08/09/17 12:51:44
よく考えたらこれスプライトのことだな、すまん
452:デフォルトの名無しさん
08/09/19 15:43:38
DirectXをマスターしたいんですがお勧めの本教えてください。
453:デフォルトの名無しさん
08/09/19 15:46:51
その前にマスターの基準を明確にしてください。
454:デフォルトの名無しさん
08/09/19 15:48:00
MikuMikuDanceが作りたいです。
455:デフォルトの名無しさん
08/09/19 18:01:31
つDirectX逆引き500
つGameProgramingGems1~6
つGPUGems
つリアルタイムレンダリング
456:デフォルトの名無しさん
08/09/20 12:08:13
DirectXゲームグラフィックスプログラミングを買ってきました。
457:デフォルトの名無しさん
08/09/20 17:40:28
ウィンドウのクライアント領域サイズのテクスチャと変換済み座標を持つ頂点をつかって、
画面全体に画像を表示しようとすると、微妙にゆがんでしまいます。
これはどういったことが原因として考えられるでしょうか。
458:デフォルトの名無しさん
08/09/20 18:36:45
どうゆがむのかな
459:デフォルトの名無しさん
08/09/20 19:11:48
1ピクセルおきの格子画像を作って表示させると、モワレ見たいになってしまいます
460:デフォルトの名無しさん
08/09/20 19:14:53
ノートパソコンじゃあるまいな
461:デフォルトの名無しさん
08/09/20 19:17:32
普通に画像を表示させたらモワレがでないので、ディスプレイの問題とは思えないのです
462:デフォルトの名無しさん
08/09/20 19:24:20
普通って?
463:デフォルトの名無しさん
08/09/20 19:25:13
すいません、ペイントとかで開くとってことです
464:デフォルトの名無しさん
08/09/20 19:27:41
クライアント領域の大きさはいくつ?
DrawPrimitiveUPとかでやってるのならUVの設定とか頂点位置の設定が怪しいような
465:デフォルトの名無しさん
08/09/20 19:28:17
同じ画面モードで表示してみてダメなのか?違うモードでは?複数のビデオカードでも同じなのか?ドライバのバージョンは?CRTや液晶では?
466:デフォルトの名無しさん
08/09/20 19:42:25
0.5ずらして書いてないとかいうふざけた理由じゃあるまいな
467:デフォルトの名無しさん
08/09/21 12:24:04
いきなり返事がなくなったな
468:デフォルトの名無しさん
08/09/21 22:31:47
どうも困ったことになってしまいましたので、教えてください。
今まで何の問題もなく快適な速度で動いていた3Dベンチや3Dゲームなんですが、
久々に動かしてみると「3D処理系のゲーム全般含めて…」初めのほうはいいんですど、
途中でいきなり60fps前後のものが30~20fpsにまでフレームが落ち込んで処理落ちしています。。。
3年ほど前に購入したFFXIベンチ動作認定済みのハイエンド型のノート型なんですけど、
実際に動かしている3Dゲームはこれよりも遥かに要求スペックの低いものです。
おかしなことに2Dゲームのときもこの症状が出てきます。これって何が原因かと思いますか?
ツールを使って自分でチェックしたけど、もうダメ・・・解らなかったです。。。
ビデヲメモリの容量も問題ないと思うし、バス幅も問題ないと思う。CPU&GPUの性能も問題ないと思います。
メインメモリの一部の領域が壊れたら、こんな症状になるのかな?と、思ってMEMTEST86+にてメモリチェック
を行ってみましたが、エラーもなく正常でした。
他に、ゲーム中にいきなりフレームが2/1にまで落ち込む原因は何が考えられるでしょうか?
教えてくだされば助かります。よろしくお願いします。
----------------------------------------------------------------
原因のパソコン : [DynaBook G8 / 型番:X20PDEW]
OS : WindowsXP SP2 / DirectX 9c
詳細仕様 : URLリンク(dynabook.com)
URL : URLリンク(dynabook.com)
----------------------------------------------------------------
469:デフォルトの名無しさん
08/09/21 22:44:37
で、C/C++と何の関係があるのかをまずは明確に説明しろ。
470:デフォルトの名無しさん
08/09/21 22:46:44
DirectX初心者質問スレ、って言ってもここはプログラム板なんだが…
471:デフォルトの名無しさん
08/09/21 22:49:53
>>468
リカバリーしる!
472:デフォルトの名無しさん
08/09/21 23:01:33
そういうときはOS再インスコでまっさらな状態にするのと簡単に直る。
長年使ってると色々な所でボトルネックが増えてきて新品時とはありえないほどパフォーマンスが落ちる。
473:デフォルトの名無しさん
08/09/22 00:52:58
リカバリーだな
それでも「途中で落ちてくる」場合は放熱系の性能が落ちてるかもしれんね
なら分解して掃除機orサポート逝きだな
474:デフォルトの名無しさん
08/09/22 00:56:10
サポートやってるとそれぐらいのは来るんじゃね?
475:デフォルトの名無しさん
08/09/22 09:54:47
DirectX勉強中なのですがDirectXにはテキストボックスとかは
無いのでしょうか?
全部自前でやるのでしょうか?
476:デフォルトの名無しさん
08/09/22 10:04:49
なんか定期的にその話出るな・・・
やり方は複数ある。もちろん自前でやってもいい
477:デフォルトの名無しさん
08/09/22 13:06:00
ヘタレの俺はダイアログ出してそこにエディットコントロールだがな・・・
478:デフォルトの名無しさん
08/09/22 13:11:07
勉強中ならDXUTでいいんじゃね?
てか、最近のサンプルって全部DXUT使って書いてあるよね
479:デフォルトの名無しさん
08/09/22 13:27:30
凝り性の俺は自前で処理する
どうでもいい部分に凝るのはなかなかに楽しい
進捗に貢献しないのでほどほどにしておかないといけないけれど・・・
480:デフォルトの名無しさん
08/09/22 13:30:37
給料泥棒ですね
481:デフォルトの名無しさん
08/09/22 15:00:38
質問です。
xファイルを読み込んでプログラムでボーンを動かして
アニメーションしたいと考えてますが
ボーンを動かす方法がわかりません
ヒントください...
482:デフォルトの名無しさん
08/09/22 15:39:19
ひどい質問だな
483:デフォルトの名無しさん
08/09/22 16:12:57
単にスキンメッシュがしたいんです。
ってことなのか
頂点シェーダや固定機能パイプラインを使わないで
CPUでボーンを動かしたいんです。
のどっちなんだ?
484:デフォルトの名無しさん
08/09/22 17:55:35
DirectXを使うならbccじゃなくてvc++のほうを使ったほうがいいんでせうか?
485:デフォルトの名無しさん
08/09/22 17:57:03
C++自体もVCの方がいいよ
486:デフォルトの名無しさん
08/09/22 18:41:22
XFile
なんとかAllocaterとか使わず
自前で読み込んでやってみたら意外と簡単で感動した
487:デフォルトの名無しさん
08/09/23 18:02:38
すいません、ここの処理がよく分からないのですが
//--------------------------------------
// 背景を描画
//--------------------------------------
// Z比較を行なう
pD3DDevice->SetRenderState(D3DRS_ZENABLE, TRUE);
// 元画像に合わせてオブジェクトのスケールを変える
if(m_imgInfoBack.Height != 0) {
aspect = (float)m_imgInfoBack.Width / (float)m_imgInfoBack.Height;
}
vScale.x = aspect;
D3DXMatrixScaling(&mScale, vScale.x, vScale.y, vScale.z);
mWorld = mScale;
// ワールド変換マトリックスをパイプラインにセット
pD3DDevice->SetTransform(D3DTS_WORLD, &mWorld);
これだけじゃ質問の意味が分からないかもしれません・・・、申し訳ない
// 元画像に合わせてオブジェクトのスケールを変える の所の処理について説明してもらえませんか
よろしくお願いします
488:デフォルトの名無しさん
08/09/23 18:26:42
正方形状に頂点を配置してるから、元画像の縦横比を保つために変換行列で正方形を横に広げることを指示してる。
489:デフォルトの名無しさん
08/09/23 19:14:07
>>488
ありがとうございます
490:デフォルトの名無しさん
08/09/24 16:13:21
GPUの描画能力を活かして描画ソフト(ポリゴンで二次元的な線や図形を描く)を作りたいのですが、
最終的にレンダリングされた画面をファイルに保存するときはどのような手順を踏めばよいでしょうか?
491:デフォルトの名無しさん
08/09/24 16:24:40
つD3DXSaveTextureToFile
492:490
08/09/24 17:28:10
>>491
ありがとうございました!!
493:デフォルトの名無しさん
08/09/24 18:19:38
最強の入門書は?
494:デフォルトの名無しさん
08/09/24 19:15:33
DirectX以前の質問になってしまうが、教えて欲しい。
直方体や円柱の林の中を一人称視点で移動できるようなプログラムが
組める位までの知識が欲しいんだけどお勧めの書籍とかある?
当方のスキルは算数は困らん程度に出来るが、数学は微妙だ。
プログラムの言語はCとC++は一通り出来る(はず)。
MFC使って自分用のツールを作る程度のことは出来る。
495:デフォルトの名無しさん
08/09/24 20:45:39
URLリンク(sorceryforce.com)
こんなわかりやすいサイトないですか?
496:デフォルトの名無しさん
08/09/24 22:49:58
キーボード、マウス、ゲームコントローラーとして認識されていない機器をDirectInputで扱うことはできますか?
トランジスタ技術8月号についてきた78k0マイコンにスイッチを付けてコントローラーの様にしようと思ったのですが、
パソコンには仮想comポートとして認識されているため途方に暮れてます。
497:デフォルトの名無しさん
08/09/25 09:55:44
ドライバ書くのがいいかも。
って署名なしは入れにくいか
498:デフォルトの名無しさん
08/09/25 11:39:02
>>494
三角関数、ベクトル、行列あたりの知識は絶対必要。
499:デフォルトの名無しさん
08/09/25 11:46:47
>>494 程度なら行列は使い方だけ分かれば数学的な知識なくても何とかなるけどな
500:デフォルトの名無しさん
08/09/25 12:14:29
すみません超初心者版で質問したのですが
スレが消えてしまったのでこちらに改めて質問させてください
リアルタイムロードシステムの妄想をしているのですが
テクスチャをロードする際にMipMapの低レベルサーフェイスから順に
読み込めないかといろいろ試しているのですがいい方法が浮かびません
デバイスのCreateTextureで必要なバッファを確保し、あとから自力で
DDSファイルなりを読み込んでロックして放り込めば出来るかと思ったのですが
D3DPOOL_DEFAULTで作成したものしかロックできないんだとか
USAGE_DYNAMICは効率が悪いから使いたくないよ・・・・
なんかいい方法ないでしょうか?
501:デフォルトの名無しさん
08/09/25 12:40:31
>USAGE_DYNAMICは効率が悪いから使いたくないよ・・・・
この考えが間違っている
使え
以上
502:デフォルトの名無しさん
08/09/25 13:47:54
>>501 回答ありがとうございます!
リファレンスのD3DUSAGE_DYNAMICを見直してみたところ、
頂点バッファに関しては配置場所が変わる可能性があるようですが、
テクスチャに関しては特にそういった記述が見当たりませんでした。
つまりテクスチャに関してはDYNAMICにしても、速度的なデメリットは無いんでしょうか?
宜しくお願いしますm(_ _)m
503:デフォルトの名無しさん
08/09/25 15:15:51
MipMapの低レベルサーフェスから順に読み込む理由が知りたい。
っていうか、Lockできる条件を勘違いしてるだろ。
>D3DPOOL_DEFAULT で作成されたテクスチャはロックできない。
(SDKのヘルプより)
504:494
08/09/25 16:02:40
>>498、499
とりあえず教えて貰ったキーワードを元に、
ググる先生に参考書になりそうな本を聞いてくる。
505:デフォルトの名無しさん
08/09/25 16:05:47
>>504
来月始め頃にちょうどいいのが出るような気がした
506:デフォルトの名無しさん
08/09/25 16:08:09
っと、名前忘れてたんで探してきた、これだ
URLリンク(www.oreilly.co.jp)
もちろん1行も読んでないので、どんなもんかはわからん。
507:デフォルトの名無しさん
08/09/25 16:12:26
移動するくらいなら算数だけできればおk
508:500
08/09/25 16:20:39
低レベルから順にロードする理由は、数フレームにわたってリアルタイムロードする場合は
低解像度でもいいので出来る限り早く読み込んで表示したいからです
それから
>D3DPOOL_DEFAULTで作成したものしかロックできないんだとか
は
>D3DPOOL_DEFAULTで作成したものは、USAGE_DYNAMICを指定しないとロックできないんだとか
の間違いでした。すみません
509:デフォルトの名無しさん
08/09/25 17:00:08
>>508
D3DPOOL_DEFAULTならLockするより、UpdateTextureや
UpdateSurfaceを使った方が速い。
510:500
08/09/25 17:45:03
ご意見どうもです
UpdateSurfaceでやると、ロックするのと違いなぜ速くなるのでしょうか?
システムメモリ上にもテクスチャを作ることになりそうであまりやりたくないかなと^^;
また、D3DXLoadSurfaceFromMemoryと言う関数を見つけたのですが、
これで代用することもできますでしょうか?
511:デフォルトの名無しさん
08/09/25 17:58:41
入門書はなにがよろしくって?
512:デフォルトの名無しさん
08/09/25 19:22:44
>>510
UpdateTextureはDMAが使用される。
転送速度そのものは、DMAを使おうが使うまいが大差ないが
DMAの場合は転送中にCPUがフリーになって他の処理ができる。
513:デフォルトの名無しさん
08/09/25 21:32:03
>>512
それならMANAGEDでいいですやんって話
514:デフォルトの名無しさん
08/09/25 23:44:30
ポイントプリミティブを同じ座標に描画して色のブレンドを行いたいのですが上手く行きません。
これは無理なことなんでしょうか?
515:デフォルトの名無しさん
08/09/26 02:42:55
directx10 SDK だとdirectsoundが使えないとかないよね?
音が鳴らない・・・
516:デフォルトの名無しさん
08/09/26 07:46:42
↑
音だけ鳴らす最小限のサンプルを見つけて、そこからチェックしてみたら?
517:デフォルトの名無しさん
08/09/26 07:49:48
DirectX10のSDKなんてないだろ。
DirectSound自体はDirectX8の頃から変わってないし最新SDK使ってても普通に鳴るぞ。
518:デフォルトの名無しさん
08/09/26 12:12:09
自分のプラグラムのバグだとは思わないのかね
何でも人のせいにするんじゃないよ
519:デフォルトの名無しさん
08/09/26 12:18:32
directx10 SDK→Vistaを使ってる
VistaとDirectSoundの相性関係でうまく再生できてない
って事はない?
何れにしろ再生できるはず
520:デフォルトの名無しさん
08/09/26 12:54:06
存在しないSDKの名を上げ、何をどうしたのかも書かず、
自分のプログラムを疑わず他人のせいにする。
プログラマ適性0だから、そのそも足を洗うのが正しい選択だろう。
521:デフォルトの名無しさん
08/09/26 17:27:24
OpenALへようこそ
522:デフォルトの名無しさん
08/09/26 17:41:30
やっぱそういう流れなのかな^^;
日本語ドキュメントさえあればそれでもいいんだけど
XAudio2ってどうなってんの?未だ未完成だよね
523:デフォルトの名無しさん
08/09/26 17:46:29
3DCGツールにボーンってあるじゃないですか?
あれってDirectXの機能じゃないですよね?
自分で実装する領域ですよね?
素人ですまそ。
524:デフォルトの名無しさん
08/09/26 17:48:16
補助機能みたいなのはあるにはあるが自分で実装する部分だね
525:デフォルトの名無しさん
08/09/26 17:50:46
>>524
そうですよね。ありがとうございます。
例えば人体のモデルがあったとしても
ボーンを入れるならボーンごとにモデルを分けないと
いけないってことですよね。
526:デフォルトの名無しさん
08/09/27 15:14:37
>ボーンごとにモデルを分けないと
頂点バッファやインデックスバッファ自体はひとつでもいい。
各頂点にボーンの番号付けて、頂点シェーダでそれ見て変換する。
527:デフォルトの名無しさん
08/09/27 15:29:06
>>525
別のボーンに限らずモデル描画自体は自分で全部実装する部分なのでボーンだけが特別なわけじゃない。
528:デフォルトの名無しさん
08/09/27 15:58:52
>>459と同じ状況に陥りました。拡大するとより一層モアレが目立ちます。
デバイスタイプをHALからREFに変えたら画像がはっきりするのですが、
かなり重たくなってしまいます。
REFを使わないでモアレを消す方法を知っている方がいればお願いします。
PCは「Let'Note」で「directx9 」使ってます。
529:デフォルトの名無しさん
08/09/27 16:48:55
ビデオカードを変える
530:デフォルトの名無しさん
08/09/27 16:52:16
ビデオカードによって見た目は変わるんだよ
現状でモアレを消すならミップマップを使う、モアレの出ないような絵にする
531:デフォルトの名無しさん
08/09/27 17:29:54
>>529 >>530 ビデオカード変えたらかなり綺麗になりました。
こんなに変わるものなんですね・・・
ミップマップの方も挑戦しようと思います。
アドバイスくれた方ありがとう御座いました m(>_<)m
532:デフォルトの名無しさん
08/09/27 20:38:37
>>531
デバイスの初期値もあまりあてにはならない。
全てのステートを起動時に初期化するべき。
あとビデオカードのユーティリティで強制的に
異法性フィルタやMSAAとかがONになっている可能性もある。
533:468
08/09/28 00:10:55
>>471-473
レスが遅れてしまいましてすみません。
貴重なご意見をありがとうございました。
皆さんの意見を参考に、こちらで色々と作業をやってみたいと思います。
原因解消の復旧というか、最後の手段はやはりOSの再セットアップしかなさそうですね。
がっばってみます。
534:504
08/09/29 14:06:49
>>505-506
レスが遅くなってすまん。
まさにぴったりなタイトルだよ。 マジサンクス。
早速、密林に予約した。
535:デフォルトの名無しさん
08/09/29 18:24:39
DirectX9勉強して1年になるのですが、関数が多すぎて全部覚えられそうにありません・・・。
皆さんはどんなふうに覚えてますか?
536:デフォルトの名無しさん
08/09/29 18:26:36
名前とかスコア表示用にアルファベットと数字のビットマップを等間隔で出力するツールってないかな?
537:デフォルトの名無しさん
08/09/29 18:29:14
>>536
SentSentBampTool ???
538:デフォルトの名無しさん
08/09/29 18:39:28
>>535
覚えない
いつもMSDNを参照してる
539:デフォルトの名無しさん
08/09/29 18:53:09
>>535
関数を沢山覚える必要はないが、
貴方のやりたい事にもよるけど、例えば
マルチパスレンダリングの手順などは覚えていた方がいいと思う。
皆はどう思う?
540:デフォルトの名無しさん
08/09/29 21:32:07
DirectX 初心者です。 DirectX9 を用いて下記のことを
やっているのですが、上手く表示が出来なくて困っています。
DrawPrimitiveにてD3DPT_TRIANGLELISTを指定して
4つ三角形をテクスチャを貼り付けてレンダリングしようと
しているのですが、D3DRS_ZENABLE=TRUE , D3DRS_ZWRITEENABLE=TRUE
とした時にテクスチャがうまく貼り付けられなくて困っています。
D3DRS_ZENABLE=FALSE とすると、うまく貼り付けられるのですが
今度は各三角形を個別に描画したような絵になってしまいます。
D3DRS_ZENABLE=TRUE, D3DRS_ZWRITEENABLE=TRUEでも、D3DRS_ZFUNCに
D3DCMP_ALWAYS とするとテクスチャはうまく貼り付けられるのですが、
D3DRS_ZENABLE=FALSE とした場合同様、各三角形を個別に描画した
ような絵になってしまいます。
よろしくおねがいします。
541:デフォルトの名無しさん
08/09/29 22:29:13
Zの問題とテクスチャの問題は別だ
まずZENABLE=FALSEの状態で正しく描画されるようにしよう
うまく描けたら、ZENABLE=TRUEの状態でもいけるように直す
テクスチャ座標がまずいんでない?
542:デフォルトの名無しさん
08/09/29 22:39:00
>>541
ありがとうございます。 こんな感じで定義しています。
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_TEX1 )
typedef struct {
FLOAT x, y, z;
FLOAT u,v;
} CUSTOMVERTEX;
CUSTOMVERTEX vertices[] = {
{ 0.0f, 0.5f, -0.5f, 0.0f, 0.0f },
{ 0.0f, 0.5f, 0.5f, 1.0f, 0.0f },
{ 0.0f, -0.5f, -0.5f, 0.0f, 1.0f },
{ 0.0f, 0.5f, 0.5f, 1.0f, 0.0f },
{ 0.0f, -0.5f, 0.5f, 1.0f, 1.0f },
{ 0.0f, -0.5f, -0.5f, 0.0f, 1.0f },
{ -0.5f, 0.5f, 0.0f, 0.0f, 0.0f },
{ 0.5f, 0.5f, 0.0f, 1.0f, 0.0f },
{ -0.5f, -0.5f, 0.0f, 0.0f, 1.0f },
{ 0.5f, 0.5f, 0.0f, 1.0f, 0.0f },
{ 0.5f, -0.5f, 0.0f, 1.0f, 1.0f },
{ -0.5f, -0.5f, 0.0f, 0.0f, 1.0f }
};
よろしくお願いします。
543:デフォルトの名無しさん
08/09/29 23:18:37
>>541
すみません。
ZENABLE=FALSE の時には正しく描画されているように見えます。
ただ、1つ1つの三角形を個別にレンダリングしたような感じになっ
てしまいます。(陰影などが全く反映されません)
よろしくお願いします。
544:デフォルトの名無しさん
08/09/29 23:47:55
それは、テクスチャが貼れてないだけ?
ポリゴン自体は描けてる?
Zバッファのクリアをミスってるとか
545:デフォルトの名無しさん
08/09/29 23:51:19
法線がないようだが、ライティングはオフにしてる?
546:デフォルトの名無しさん
08/09/29 23:57:28
>>544
>>545
ありがとうございます。
はい、テクスチャがうまく描画されないだけみたいです。
Zバッファのクリアはとくにしていないのですが、どうやれば
良いでしょうか?
はい、ライティングは無効にしてあります。
SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );
SetRenderState( D3DRS_LIGHTING, FALSE );
SetRenderState( D3DRS_ZENABLE, TRUE );
SetRenderState( D3DRS_ZFUNC, D3DCMP_LESSEQUAL );
SetRenderState( D3DRS_ZWRITEENABLE, TRUE );
SetRenderState( D3DRS_ALPHATESTENABLE, FALSE );
SetRenderState( D3DRS_SPECULARENABLE, FALSE );
SetRenderState( D3DRS_DITHERENABLE, FALSE );
SetRenderState( D3DRS_FOGENABLE, FALSE );
SetRenderState( D3DRS_SPECULARENABLE, FALSE );
SetRenderState( D3DRS_RANGEFOGENABLE, FALSE );
SetRenderState( D3DRS_STENCILENABLE, FALSE );
よろしくお願いします。
547:デフォルトの名無しさん
08/09/30 00:10:28
>>544
>>545
ありがとうございます 動きました!
Zバッファをクリアする必要があることを知りませんでした。。。orz...
本当にありがとうございました。
548:デフォルトの名無しさん
08/09/30 13:02:49
すごく初歩的な質問で恥ずかしいのですが・・・
DirectXで3Dゲームを作る場合、3Dグラフィクス自体は(キャラクターのモーションなど)専用のグラフィックツールで作ると言う形なのでしょうか?
549:デフォルトの名無しさん
08/09/30 13:09:52
あ・た・り・ま・え
550:デフォルトの名無しさん
08/09/30 17:44:47
1>gamemain.cpp
1>c:\documents and settings\^^^^^^\デスクトップ\src\test90walking\test1\../../class/classlib.h(70) : fatal error C1083: include ファイルを開けません。'dpaddr.h': No such file or directory
これと同じエラーが20個もでてコンパイルできないのですがどう対処すればいいのでしょうか・・・?
3Dリアルタイムアニメーションという書籍のサンプルです。
551:550
08/09/30 17:45:25
dpaddrというヘッダファイルがどこにもなくて・・・。
552:デフォルトの名無しさん
08/09/30 17:56:38
DirectX SDK には以下のコンポーネントは含まれなくなりました。
Direct3D 8 とそれ以前のすべてのバージョン
Direct3D RM
DirectAnimation
DirectMusic
DirectInput7 およびそれ以前のすべてのバージョン
DirectPlay
DirectPlayVoice
DirectX 8 時代の HRESULT 変換ルーチン
Managed DirectX サンプルとドキュメント
これらのコンポーネントをご利用になりたいデベロッパーは、MSDN から入手可能な August 2007 DirectX SDK をダウンロードする必要があります。
553:デフォルトの名無しさん
08/09/30 17:56:48
DirectPlay関連のヘッダーだろ
DirectX8のSDKにあるんじゃないかな。
554:デフォルトの名無しさん
08/09/30 18:09:13
ありがとうございます
インストールしてみます
555:デフォルトの名無しさん
08/09/30 22:17:42
BCCでDirectXを使うにはどうすればいいんですか?
556:デフォルトの名無しさん
08/09/30 22:20:24
SDK入れよう
557:デフォルトの名無しさん
08/10/01 00:45:19
>>548に便乗して質問。
どんなグラフィックソフト使ってる?
558:デフォルトの名無しさん
08/10/01 07:37:30
3DS MAX
559:デフォルトの名無しさん
08/10/01 08:36:05
うらやましい限りだぜ
俺はBlender
560:デフォルトの名無しさん
08/10/01 09:14:54
Mayaってどうなんだろ
561:デフォルトの名無しさん
08/10/01 09:39:52
この手のツールは無料から始めたほうがよさげ。
使い切れずに放り投げるには高すぎるからなw
562:デフォルトの名無しさん
08/10/01 09:50:07
金があったら
ZBrush+3DSMAXが最強な希ガス
563:デフォルトの名無しさん
08/10/01 10:30:15
俺はMikuMikuDance
564:デフォルトの名無しさん
08/10/01 10:35:51
MAXの無料版ってもう無いの?
565:デフォルトの名無しさん
08/10/01 10:42:11
先日買った書籍に3Dリアルタイムアニメーションというのがあるのですが。
LightWaveで作ったアニメーションをUViewで読み込んでOBJ形式で描きだして
DirectXで読み込む方法を使っているのですがUViewは現在販売していないらしく
他のソフトで代用して欲しいと最後に筆者が記述していたのですが
他のソフトってどんな物があるのですか?
何個か教えてもらえたら嬉しいです!
566:デフォルトの名無しさん
08/10/01 11:41:51
obj形式なら普通にエクスポート出来ると思うが?
じゃなくてOBJ形式をXファイルに変換とか?
何れにしてもLightWaveの標準機能で出来た希ガス
567:デフォルトの名無しさん
08/10/02 10:46:19
ID3DXEffectを使用した場合、シェーダのグローバル変数の共有や、ステートの一括変更などが可能ですが
これらの処理をID3DXEffectを使用しないで自前で実装することは可能でしょうか?
リファレンスを見ているのですが、変数を共有する方法は全く見当たりませんし
ステートブロックを自前で管理したとしても、API呼び出しは回数は減らせないですよね?
ID3DXEffectを使用しないという人は結構いると思うのですが、この辺はどうやって解決しているんでしょうか・・・
宜しくお願いしますm(_ _)m
568:567
08/10/02 10:51:24
すみません、ステートブロックに関してはIDirect3DStateBlock9が使えることが分かりました
これに関しては何とかなりそうです。
569:デフォルトの名無しさん
08/10/02 11:06:45
俺はMayaかってしまった。マジすごいなこれ。
570:デフォルトの名無しさん
08/10/02 12:05:45
ブルジョワジーめ
571:デフォルトの名無しさん
08/10/02 16:20:40
August 2007のDirectX SDKを入れていますが、IA64のライブラリがついていません。
付属してるバージョンのSDKを知ってる方はいませんか?
572:デフォルトの名無しさん
08/10/02 16:34:22
うああああああ
シェーダー定数の共有のさせ方わっかんねーwww
燃えてきたぜ
573:567
08/10/02 17:22:54
結局sharedキーワードでうまく共有する方法は分からないが
レジスタを直接指定すれば共有できることは分かった
取りあえずこれでいこうと思います。もっといい方法があったら教えていただけると助かりますm(_ _)m
574:デフォルトの名無しさん
08/10/02 22:51:57
>>573
1、ID3DXEffectPoolオブジェクトを作成(D3DXCreateEffectPoolを使用)
2、sharedをつけた変数を宣言したFXファイルを作成
3、共有したいFXファイル全てに2のFXファイルをインクルード
4、3のFXファイルをコンパイル時、D3DXCreateEffectに1のID3DXEffectPoolオブジェクトを引数で渡す。
575:デフォルトの名無しさん
08/10/02 22:59:03
ん?
ID3DXEffectを使わないで変数の共有をしたいって言ってるのか?
そりゃー、逆アセンブルしてD3DXがどう解決しているか確認してみりゃいいんじゃね
まーEffectPoolなんて使ってる以上、力技だろってのは想像がつくがな
576:デフォルトの名無しさん
08/10/02 23:04:30
単純に変数を一時的にEffectPoolに入れておいてるだけで、
結局描画時に全部毎回マッチングしてレジスタに設定してるんじゃ無いっけ?
あくまでユーザー側からは同じ変数のように見えているだけで。
577:デフォルトの名無しさん
08/10/03 08:32:57
>>576
マジすかw
だとしたら効率的には何の意味もないんだな^^;
578:デフォルトの名無しさん
08/10/03 10:58:52
頂点シェーダーにハードウェア対応していないグラフィックカードでは
頂点処理はCPUで実行されると思いますが、その場合に
D3DPOOL_DEFAULTを指定して作成したっ頂点データは
システムメモリ上に配置される可能性が高いんでしょうか?
システムメモリ上に配置されるということはレンダリングの度にシステムメモリから
ビデオカードへのデータ転送が発生しているのでしょうか?
579:デフォルトの名無しさん
08/10/03 13:08:38
>>576
そういえば、頂点シェーダー(VS)とピクセルシェーダ(PS)を別々にビルドしてセットする場合って、
VSとPSそれぞれの定数テーブルに値をセットする必要があると思うけど
(VSとPSでレジスタ空間が違うからなのか?違うよね?)
この辺もD3DXEffect系使った時って意識しないから、やっぱD3DXEffect系は内部でいろいろやってるのか…
580:デフォルトの名無しさん
08/10/03 20:26:43
1>.\MapModel.cpp(622) : error C2065: 'DXFILEFORMAT_BINARY' : 定義されていない識別子です
最後にこのエラーだけ解決できません・・・。
対処方法を教えていただけませんか?
581:デフォルトの名無しさん
08/10/03 20:32:44
>>578
頂点変換をハードウェアで対応してなければ
システムメモリから転送するしかない。
RadeonHD3450が5000円で買えるんだから
素直にDirectX10対応のビデオカード買えばいい。
>>579
かといって自分で全部管理した方が速くなるのか?という話になると
どちらかといえば遅くなるだろうから素直にID3DXEffect使う方がいい。
すでにDirectX10ではそれしかないし。
582:580
08/10/03 20:37:52
if (FAILED(D3DXSaveMeshToX(name, pMesh, NULL, material, NULL, 3, DXFILEFORMAT_BINARY)))
return false;
return true;
}
コードです
583:デフォルトの名無しさん
08/10/03 20:55:18
>>582
使ってるSDKが新しすぎるんじゃね?
よく分からんわ
584:デフォルトの名無しさん
08/10/03 22:28:42
>>580
それは、dxfile.hに定義がある。
使いたければ、includeしろ。
てか、それ間違ってるんで
#include <d3dx9xof.h>
を追加して
D3DXF_FILEFORMAT_BINARYを使え。
585:デフォルトの名無しさん
08/10/03 22:33:51
おまいらどうやってDirectX勉強したの?
独学?
586:デフォルトの名無しさん
08/10/03 22:45:02
独学
587:デフォルトの名無しさん
08/10/03 23:00:30
すっげー
588:デフォルトの名無しさん
08/10/03 23:05:32
俺はDirectX5の頃からだぞ、なめんな
あと歳は聞くな
589:デフォルトの名無しさん
08/10/03 23:13:15
WinGから
じじい言うな
590:デフォルトの名無しさん
08/10/04 00:11:11
d3dx9_xx.dllにはいろんなバージョンがありますが、ロードするのは一番数字が大きいものでいいのでしょうか。
それとも、各バージョンごとで互換性が低いのでしょうか。
591:デフォルトの名無しさん
08/10/04 01:15:57
つかってるSDKによって勝手に対応するバージョンのものが呼ばれる
592:デフォルトの名無しさん
08/10/04 01:23:05
それはd3dx9.libをリンクしていたらってことですよね。
友達にプログラムを渡したら二人が二人ともd3dx9_xx.dllがないとエラーが出るといっていたので、
とりあえず一番に、最新のDirectXを入れるように言ったのですが、
プログラム側で選択してもよいものなのかと疑問に思ったのです。
593:デフォルトの名無しさん
08/10/04 01:28:19
>>592
>プログラム側で選択してもよいものなのかと疑問に思ったのです。
それをやれるだけのスキルがあるならやればいいと思うけど、
「やってみたいんですけどうまくいきません」というのならやるなと言いたい。
594:デフォルトの名無しさん
08/10/04 01:31:04
>>592
Web Installerで全部のd3dx9_xx.dllをインストールしてくれるから、これ実行してもらうといいよ。
URLリンク(www.microsoft.com)
595:デフォルトの名無しさん
08/10/04 01:37:51
ということは少なからず差異があるようですね。
>>594のページを教えて、インストールさせようと思います。
ありがとうございました。
596:デフォルトの名無しさん
08/10/04 05:27:32
Direct3D 9 Driver Development Kitなんて何処にあるんだ・・・?
597:デフォルトの名無しさん
08/10/04 07:23:51
ぶっちゃけ
自分のPCにはいってる一番番号の大きいdllを
exeと同じフォルダに入れて渡せば動くよ
598:デフォルトの名無しさん
08/10/04 10:49:32
>>588
WinG~GameSDK
599:デフォルトの名無しさん
08/10/04 13:29:21
typedef struct _D3DLVERTEX {
D3DXVECTOR3 pos;
D3DCOLOR color;
D3DCOLOR specular;
D3DVALUE tu;
D3DVALUE tv;
} D3DLVERTEX, *LPD3DLVERTEX;
#define D3DFVF_LVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1)
_D3DLVERTEX についている_の意味ってなんですか?
600:デフォルトの名無しさん
08/10/04 13:44:02
別にそこで使った名前は他で使わないから適当でううんだけど
よそと名前がぶつかったら困るでしょ。
そのために自分たちだけで決めたルール
601:デフォルトの名無しさん
08/10/04 14:30:43
なるほど そういうことですか
ありがとうございjます
602:デフォルトの名無しさん
08/10/04 22:58:01
おしえてください。
ウィンドウサイズの変更イベント OnSize() の中で、
Reset() を使っているのですが、D3DERR_INVALIDCALL
というエラーが出て先に進めなくてこまっています。orz...
D3DPRESENT_PARAMETER の中身は、
BackBufferWidth 0
BackBufferHeight 0
BackBufferFormat D3DFMT_X8R8G8B8
BackBufferCount 0
MultiSampleType D3DMULTISAMPLE_NONE
MultiSampleQuality 0
SwapEffect D3DSWAPEFFECT_DISCARD
hDeviceWindow = GetSafeHwnd() で取得したハンドル
Windowed 1
EnableAutoDepthStencil 1
AutoDepthStencilFormat D3DFMT_D16
Flags 0
FullScreen_RefreshRateInHz 0
PresentationInterval 0
です。
よろしくお願いします m(_ _)m
603:デフォルトの名無しさん
08/10/04 23:02:45
ウィンドウハンドルがNULLとか
604:デフォルトの名無しさん
08/10/04 23:23:42
>>603
ありがとうございます。
D3DERR_INVALIDCALLが発生する原因がわかりました。
リソースをD3DPOOL_DEFAULTで確保するとダメみたいです。
OnSize() でウィンドウサイズを可変した時に3D画像のアスペクト比が
変わってしまうのを防ぎたかったのですが、Resetを呼び出してもダメ
みたいです。
アスペクト比を固定するにはどのようにすれば良いでしょうか?
よろしくお願いします。
605:デフォルトの名無しさん
08/10/04 23:32:34
D3DPOOL_DEFAULTで作成したリソースをいったん削除してからデバイスをリセットして、その後でリソースを作り直す。
606:デフォルトの名無しさん
08/10/04 23:39:07
>>605
ありがとうございます。
早速ためしてみます。
607:デフォルトの名無しさん
08/10/04 23:41:30
>>604
何がしたいのかわからないんだが
ウインドウサイズが変わった時点で
変更後のサイズからアス比を再計算して
射影行列を作る時に指定しているアス比を変更するだけじゃだめなのか?
D3DXMatrixPerspectiveFovLHとかの話
ついでに流れ的に関係あるようでないような質問
テクスチャとかメッシュとかはパフォーマンス的には置いといて
デバイスのロストを気にしなくても良い様にできるけど
ID3DXEffectだけは対応しなくちゃいけない感じなんだが
これって何かの設定で対応しなくて良いようにできるものなの?
608:デフォルトの名無しさん
08/10/04 23:50:09
>>607バックバッファの大きさは変わらないんだからぼんやりしちゃうだろ
609:デフォルトの名無しさん
08/10/05 00:23:15
デフォルトのバックバッファを使わないで、
後から確保した物を使えばリセットする必要性は皆無
610:デフォルトの名無しさん
08/10/05 00:48:32
>>607
ID3DXEffectの仕様として管理下はサポートされていないので
それは無理だろ。
ただ、ロスト対応が必要な理由として、シェーダ引数のテクスチャと
ステートブロックがあるからだろうと考えられるので
エフェクトに渡すテクスチャは管理下のみ、
pass内でステートの変更はしない、ステートブロックは使わない、などの
対策をすれば、大丈夫になるかもね。
611:デフォルトの名無しさん
08/10/05 00:51:57
マルチディスプレイで
WindowモードのWindowを他方のWindowへ移動すると
presentが遅くなるのはどうしようも無いですか?
612:デフォルトの名無しさん
08/10/07 16:03:48
VOID DrawText(ID3DXFont* pFont, char* text, DWORD x, DWORD y, D3DCOLOR Color)
{
RECT Rect;
SetRect(&Rect, x, y, CW_USEDEFAULT, CW_USEDEFAULT);
pFont->DrawTextA(text, -1, &Rect, DT_LEFT | DT_NOCLIP, Color);
}
の
pFont->DrawTextA(text, -1, &Rect, DT_LEFT | DT_NOCLIP, Color);
この部分で
error C2660: 'ID3DXFont::DrawTextA' : 関数に 5 個の引数を指定できません。
と言うエラーが出てしまいます
自力で調べた所DirectX SDKの仕様が変わったためにコンパイルできないらしいと言うところまではわかったんですが
どのように書き直せば良いのかわかりません
どのように直せば良いのでしょうか
ちなみにSDKはaugust 2007です
よろしくお願いします
613:デフォルトの名無しさん
08/10/07 16:14:53
第一引数にD3DXSPRITEを渡さないとダメ
最新のSDKのマニュアルとサンプルを見るべし
614:612
08/10/08 14:40:09
ありがとうございました
やってみます
615:デフォルトの名無しさん
08/10/08 15:35:55
これからDirectXをまなぼうと思っています
ゲームをつくりながら解説していくようなサイトを探しています
オススメがありましたら教えてください
C++とWINAPIの基本は理解しています
616:デフォルトの名無しさん
08/10/08 15:36:41
age失礼しました
617:デフォルトの名無しさん
08/10/08 16:12:12
DirectInputで作成したマウスデバイスで、強調レベルを非排他に設定したときだけAquireメソッドが成功しません。
どういうときに失敗するのでしょうか。
618:デフォルトの名無しさん
08/10/08 18:39:17
>>617
Aquireは排他制御のためのメソッドだから、非排他設定なら必要ないだろう。
619:617
08/10/08 21:22:12
どんなサイトの解説を見ても、必ずAcquireメソッドをよんでるんですが・・・
少なくともサイトの管理人の環境では、実行できてるってことですよね?
620:デフォルトの名無しさん
08/10/08 21:40:22
>>619
Acquireを呼んでいるのと、Acquireが成功するかは別問題。
MSのサンプルだってAcquireは呼んでいる。
でも、それが成功したかなんて気にしていない。
621:617
08/10/08 21:54:33
日本語版のMSDNでようやく該当する記述を見つけました。
Acquireの戻り値として、
>DIERR_OTHERAPPHASPRIO 他のアプリケーションの優先レベルの方が高いので、この呼び出しを実行できない。
>この値は、標準の COM 戻り値である E_ACCESSDENIED に等しい。このエラーが返されるのは、
>デバイスに対するアプリケーションのアクセス権がフォアグラウンド アクセス権であるにもかかわらず、
>バックグラウンドであるときにデバイスを取得しようとした場合である。
とありました。WM_CREATEの処理内で呼び出していたために失敗していたようです。
大変お騒がせしました。まさか日本語ページの方が詳しいなんて・・・
622:デフォルトの名無しさん
08/10/09 00:11:47
DirectSoundはDirextX8も9も一緒なんですか?
DirectSoundCreate8からDirectSoundCreate9になるのかと思ったんですがないといわれます。
ライブラリの追加はdsound.lib dxguid.lib winmm.lib だけでいいんですか?
623:デフォルトの名無しさん
08/10/09 02:15:01
質問です。
DirectXで作られたゲームを公開する場合、マイクロソフトの著作権表記などは
必要なのでしょうか?
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
一応上を読んでみたのですが、ごちゃごちゃ書いてあって正直よくわかりません。
624:デフォルトの名無しさん
08/10/09 08:26:40
>>622
dsound.hの中を見ればわかるよ
DIRECTSOUND_VERSION >= 0x0800
なので8も9も同じ
libはそれでいいんじゃない
未解決とか言われたら追加すればいい
625:デフォルトの名無しさん
08/10/09 10:12:20
質問です
DirectX8で作られた古いソースが出てきたのですが、現在PCには9.0cのSDKが入っています。
上記ソースをコンパイルしようとしたところ
#include <d3d8.h>
#include <d3dx8.h>
こいつらがないと言われてしまったのですが、DirectX8のSDKをインストールしないとダメってことでしょうか。
(普段は9のプログラムを組んでいるので)競合しそうで怖いのですが、何か良い手はありますでしょうか
626:デフォルトの名無しさん
08/10/09 10:19:36
俺も場合は複数バージョンのSDKをインストールしないで解凍して保管する
で、includeやlibは新しいバージョンを優先しとけばないものだけ古いものから参照される
627:デフォルトの名無しさん
08/10/09 12:46:20
>>625
>>552
628:デフォルトの名無しさん
08/10/09 13:06:39
>>625
オプションのVC++ディレクトリを
C:\Program Files\Microsoft DirectX SDK (March 2008)\Include
C:\Program Files\Microsoft DirectX SDK (August 2007)\Include
・
・
こんな感じにしてるが心配ならDX8のときは順番を入れ替えればいいんじゃない
629:デフォルトの名無しさん
08/10/09 15:14:18
DirectInputのマウスデバイスで相対座標のデータを得るとき、値1が1pxと対応しているわけではないと思うのですが、
どうやってピクセル単位の座標変化を求めればいいでしょうか。
630:デフォルトの名無しさん
08/10/09 15:59:32
対応してた気がするが?
631:デフォルトの名無しさん
08/10/09 16:09:01
629
つまりプログラムのミスですか。確認してみますorz
632:デフォルトの名無しさん
08/10/09 17:09:17
サウンドバッファはプライマリとセカンダリ両方作る必要はあるんですか?サンプルを見たんですが、2つ作ってるのにセカンダリしかつかってないように見えるんですが
633:629
08/10/09 19:43:32
やっぱりどうしても、実際のカーソルの位置と、DirectInputで求めたカーソル移動量が食い違います。
スクリーン上で1000px水平に移動させると、移動量の合計が600~800くらいになっています。
下がそのコードなのですが、どこか間違っているところがありますか?
void MouseDevice::UpdateState()
{
HRESULT hr;
if (hr = pDevice_->Acquire(), FAILED(hr))
{
LOG_WARN("IDirectInputDevice8::Acquire 非アクティブになった?");
return;
}
DIMOUSESTATE mouseState;
if (hr = pDevice_->GetDeviceState(sizeof(mouseState), &mouseState), FAILED(hr))
{
LOG_ERROR("IDirectInput8::GetDeviceState");
return;
}
cursorPos_.x = clamp(cursorPos_.x + mouseState.lX, 0L, 1279L);
cursorPos_.y = clamp(cursorPos_.y + mouseState.lY, 0L, 1023L);
//SetCursorPos(cursorPos_.x, cursorPos_.y);
POINT pt;
GetCursorPos(&pt);
std::stringstream ss;
ss << "MOUSE " << cursorPos_.x << "," << cursorPos_.y << " (" << pt.x << "," << pt.y << ")";
LOG_INFO(ss.str().c_str());
}
634:デフォルトの名無しさん
08/10/09 20:07:33
>>633
関係ないけど ,演算子をそんな風に使う人は初めて見た
635:デフォルトの名無しさん
08/10/09 20:10:37
WAVEFORMATEX構造体のnSamplesPerSecに値がはいらないんですが、どうしてですか?
WAVEFORMATEX FEX;
ZeroMemory(&FEX, sizeof(WAVEFORMATEX));
FEX.nSamplesPerSec = 44100;
ここで変数をみても44100が入ってなくて0なんですけど
636:デフォルトの名無しさん
08/10/09 20:12:16
>>633
試してないのでわからんけど、マウスカーソルの加速の分がずれてるとか・・・?
637:デフォルトの名無しさん
08/10/09 20:25:37
>>636
ありがとうございます。「directinput マウス 加速」で検索したら解決しました。
DirectInputではマウスドライバから直接データを得るので、ウィンドウズのカーソルを意識するアプリケーションは
Win32関数かメッセージを使うように書いてありました。
638:デフォルトの名無しさん
08/10/09 20:30:29
//ローカル回転&ワールド移動 >> ワールド変換行列設定
//
//角度はRAD
HRESULT CDXDevice::SetWorldTransformLW(D3DVECTOR &l_rot, D3DVECTOR &w_trans, int index)
{
D3DXMATRIX mat,mat2;
D3DXMatrixIdentity(&mat);
if (l_rot.x) {
D3DXMatrixRotationX(&mat2, l_rot.x);
D3DXMatrixMultiply( &mat, &mat, &mat2);
}
if (l_rot.z) {
D3DXMatrixRotationZ(&mat2, l_rot.z);
D3DXMatrixMultiply( &mat, &mat, &mat2);
}
if (l_rot.y) {
D3DXMatrixRotationY(&mat2, l_rot.y);
D3DXMatrixMultiply( &mat, &mat, &mat2);
}
D3DXMatrixTranslation( &mat2, w_trans.x, w_trans.y, w_trans.z);
D3DXMatrixMultiply( &mat, &mat, &mat2);
return SetWorldTransform( &mat, index);
}
行列を掛ける順番って x z yなんですか?
639:デフォルトの名無しさん
08/10/09 20:36:35
望む結果に応じて好きな順序で掛ければ良い
640:デフォルトの名無しさん
08/10/09 21:37:53
どなたか>>623の質問に答えられる人はいませんか?
641:デフォルトの名無しさん
08/10/09 23:19:49
DIRECTXで描画をしながら、Windowsのテキストボックスなどを表示したいのですが
どのような方法がありますでしょうか?
普通にウィンドウにコントロールを作成するだけでは
DIRECTX側のpresentで上書きされてしまい、表示することができません。
ウィンドウモードならば、ウィンドウ作成時にWS_CLIPCHILDRENを指定することで
テキストボックスを部分のみをクリッピングすることができたのですが
フルスクリーンモードでは、当然上書きされてしまいます。
フルスクリーンモードでも通用する、何か良い方法はありませんでしょうか?
642:デフォルトの名無しさん
08/10/09 23:25:12
GXUT custom UI
643:デフォルトの名無しさん
08/10/10 00:00:03
ニセフルスクリーンモードにする
644:デフォルトの名無しさん
08/10/10 00:01:41
>>641
上書きしないところに描かなければ良いだけ
そんな当たり前なことを聞く意味が分からない
645:デフォルトの名無しさん
08/10/10 00:11:34
>>644
日本語でおk
646:デフォルトの名無しさん
08/10/10 00:14:58
上書きしたくなければ、その位置に描くなということだろ
647:デフォルトの名無しさん
08/10/10 00:21:06
>>644
上書きしなきゃいいって問題じゃない。
GDIサーフェスについて勉強してこい。
648:デフォルトの名無しさん
08/10/10 00:34:59
設定をフリップにせず、present時に適切に描画位置を指定すれば上書きされない。
いくら無能でもその程度のことぐらい理解出来るだろ。
649:デフォルトの名無しさん
08/10/10 01:31:48
別途専用ウィンドウを描画する
650:デフォルトの名無しさん
08/10/10 07:31:36
このメソッドは、Microsoft Windows Graphics Device Interface (GDI) のダイアログ ボックスを、フルスクリーン モードのアプリケーションで使えるようにします。
構文
HRESULT SetDialogBoxMode( BOOL bEnableDialogs );
651:デフォルトの名無しさん
08/10/10 13:22:58
>>635
どうやって確認してるの
ブレークポイント?
652:デフォルトの名無しさん
08/10/10 23:28:45
StretchRectでモザイク的なもの作ろうと思ってるんだが、どうもメソッドが失敗しちゃう。
GetRenderTargetで成功しているコピー元とコピー先と同じの使ってるから何とかなると思ったが・・・
しかもMSDNの言ってることがよー分からん。RTテクスチャって何ですか?単純なオフスクリーンってなんですか・・・
天才が居たら助言頼む
653:デフォルトの名無しさん
08/10/11 00:31:44
そういう用途に使うのなら素直にテクスチャとして、適切に位置指定して描画しろ。
654:デフォルトの名無しさん
08/10/11 00:47:19
規制で書き込めませんでした…
>>642
DXUTでしょうか? ちょっと調べてみます。
>>643
自前で解像度変更して、ごまかすことも考えたのですが
強制終了した場合に解像度が戻らなくなってしまったりしそうで悩んでいます
>>644
>>648
言ってることはわかりますし、以前にその方法も考えたのですが
コントロールが単純な位置にあり、少ない方形でまとめられるのならまだしも、
「コントロールの位置が固定でなく、しかも複数が散らばる」という
状況ではどうしようもなくなってしまうので止めました。
>>649
テキストボックスから入力が必要な場面のみダイアログを描画、という
方法も考えたのですが、できるだけ1ウィンドウでやりたいと思っております。
(どうしようもなかったら、ダイアログを出そうかとも思っていますが…)
>>650
使用してみましたが、やはりフルスクリーンでは効果がないようです。
色々と調べてみた限りでは、ダイアログやメニューに対して効果があるようですが
ウィンドウに、子ウィンドウとして貼り付けたコントロールにも使用できるのでしょうか?
655:デフォルトの名無しさん
08/10/11 00:55:41
クリッピング程度の単純な処理すら書けないのなら、
そもそもプログラムを組むのを諦めろ。
656:デフォルトの名無しさん
08/10/11 01:01:18
>>654
逆に考えるんだ
ダイアログに効果があるのならダイアログに貼り付ければいいだろ
657:デフォルトの名無しさん
08/10/11 01:21:36
>>655
>>648で言われたようにクリッピング的な処理は調べてみたのですけども、
今回の条件の場合には適切な方法なのでしょうか?
presentにはrect単位で転送領域を区切る方法などもあるようです。
ですが、仮にど真ん中にBOXがあったら、これを避けるように方形で区切ると
上下左右の4個の領域に区切るということになり、
仮にこのコントロールが複数ある場合には、非現実的に思えました。
(見当違いな意見を言っているようでしたら、すいません)
>>656
やはり難しいようなので、ダイアログを使って別ウィンドウに出すか、
もしくは最初に言われたDXUTとやらの勉強を始めてみたいと思います。
一応、presentの「後に」GDIでコントロールの画像を転送する、
という方法でトライしてみましたが、どうもちらついたりしてダメみたいです。
658:デフォルトの名無しさん
08/10/11 02:16:27
複数矩形があろうが、その分だけ分解すればいいだけ。
その程度のことが非現実的だったら、
Windowsが行っているGUIのクリッピングは超常現象なのか?
659:デフォルトの名無しさん
08/10/11 02:50:44
まっさきにDXUTのサンプル動かしてみるようじゃないと、今後も苦労しそうだな・・・
660:デフォルトの名無しさん
08/10/11 20:30:03
hr = device->CreateIndexBuffer(
sizeof(WORD)*m_index_count,
0,
D3DFMT_INDEX16,
(fVRAM ? D3DPOOL_MANAGED : D3DPOOL_SYSTEMMEM),
&m_index,
NULL);
最初のsizeof(WORD)*m_index_count,って
*は乗算ですか?ポインタですか?
初心者すぎる質問ですいません。。。。。
661:デフォルトの名無しさん
08/10/11 20:48:44
>>660
つ、釣られないぞ・・・・。
662:デフォルトの名無しさん
08/10/11 21:08:24
どうみても乗算
663:デフォルトの名無しさん
08/10/11 21:08:27
DirectX関係なさ過ぎる・・・
お前に必要なのはCの参考書だ。
664:デフォルトの名無しさん
08/10/11 21:18:22
ポインタだよ。
次の方どうぞ
665:デフォルトの名無しさん
08/10/12 09:18:14
HRESULT CDXPrimitive::SetVertex(LPVOID lpvertex, int point_num)
{
HRESULT hr;
LPVOID p;
//有効なデータ個数
m_point_active = point_num;
//バッファをロック
hr = m_vertex->Lock( 0, 0, (void**)&p, 0 );
if (FAILED(hr))
return hr;
//copy
CopyMemory( p, lpvertex, (DWORD)(point_num * m_pointsize));
//バッファのロックを解除
hr = m_vertex->Unlock();
return hr;
}
return hr と return S_OKの違いってなんですか? 調べても分からなかったので教えてください
666:デフォルトの名無しさん
08/10/12 09:28:51
returnの意味がわかってないのか?
667:デフォルトの名無しさん
08/10/12 09:34:15
return は この場合はHRESULTに返す値の事ですか?
hrとS_OKの違いが分からないです;;。
MSDNライブラリーでHRESULTで検索しても解りませんでした
668:デフォルトの名無しさん
08/10/12 09:36:40
>>665
まず入門書でもいいから
Cの本を一冊以上読破して
C++の本を一冊以上読破して
Win32の本を一冊以上読破してから来い
669:デフォルトの名無しさん
08/10/12 10:05:26
>>667
S_OK 定数
hr 変数
670:デフォルトの名無しさん
08/10/12 10:50:59
ちょっと質問です。
トランスフォーム済み頂点を使って、たとえば 100×100 の画像を表示したいと思います。
テクスチャの1辺は 2^n にしたいので、128×128のテクスチャを作るのですが…。
頂点座標をどうしようか迷っています。
1.xy=(0,0)-(100,100), uv=(100/128, 100/128)
2.テクスチャのあまりの部分を透明にして、頂点座標は xy=(0,0)-(128,128), uv=(0,0)-(1,1)
どちらが一般的でしょう?
1の方が管理が楽だし、あまりの部分を別の画像を置くのに使えるし、いいことづくめなのですが、
ピクセル単位で画像をそのまま表示したいので、誤差がでないかどうかが心配です。
(試してみたら問題はなかったのですが、うちの環境でたまたま問題がなかっただけかもしれないので)
よろしくお願いします。
671:デフォルトの名無しさん
08/10/12 20:18:37
教えて下さい。
64x64のテクスチャをプリミティブで表示しています。
用意したテクスチャは、1色の青で塗りつぶして縁を白で
囲んだだけのものなのですが、表示した時に縁がギザギザ
した感じになってしまいます。
綺麗に表示する方法はないでしょうか?
よろしくおねがいします。
672:デフォルトの名無しさん
08/10/12 22:06:17
>>589
今回の特集(いつもなんだがw)見てるとまず視聴率の数値ありきなんだよな
その作品の時代的位置付けやアニメ史上の位置付けを説明するってことを
NHKなんかが特集する時はやるもんだけどそういうことを数字だけで済ませて怠ってる
構成の仕方でもっといろんな作品を見せて興味を惹かせることは可能なはずなんだよ。
それをせずに、最近のものは数字が取れない、て最初から可能性を閉じてしまっている。
673:デフォルトの名無しさん
08/10/12 22:41:29
テレビはダメ
NHKに期待
そのNHKはちゃんと期待にこたえてアレを年末にやるっていうんだからよくわかってる
2ch殺すつもりだよ
674:デフォルトの名無しさん
08/10/12 22:48:26
いいから消えろカスども
675:デフォルトの名無しさん
08/10/13 00:43:40
//画像をスプライト表示
LPDIRECT3DTEXTURE9 g_pTexture = NULL;
LPD3DXSPRITE g_pSprite = NULL;
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;
D3DXVECTOR3 center,position;
void DrawStartMenu(void)
{
g_pSprite->Begin( NULL );
RECT rc;
rc.left = 0;
rc.top = 0;
rc.right = 256;
rc.bottom = 256;
D3DXCreateTextureFromFile(g_pd3dDevice,"data\\sky2.jpg",&g_pTexture );
D3DXCreateSprite(g_pd3dDevice,&g_pSprite);
g_pSprite->Draw(g_pTexture,&rc,¢er,&position,0xFFFFFFFF);
g_pSprite->End();
}
g_pTexture->Release();
g_pSprite->Release();
ビルドは通るのですが、実行するとアクセス違反が起きます
どこに問題があるのでしょうか?
676:デフォルトの名無しさん
08/10/13 01:56:18
>>675
とりあえず、DrawStartMenu関数を後半から1行ずつコメントアウトで削っていって正常に動く部分を調べろ
677:676
08/10/13 02:10:27
・・・とは言ったがこれじゃ正常に動く部分なさそうだ。
最初のg_pSprite->Begin( NULL );を消してD3DXCreateSprite(g_pd3dDevice,&g_pSprite)の
後ろに移動させてくれ。
678:デフォルトの名無しさん
08/10/13 03:20:59
移動したけどアクセス違反が起きる
679:デフォルトの名無しさん
08/10/13 03:24:47
ブレイクポイントつかってどの行ででるのか調べるぐらいしろよカス
680:デフォルトの名無しさん
08/10/13 03:33:01
そもそも論としてデバイスはちゃんと作ったのかよ
Beginを上にもってくるぐらいだから手順が全く理解できてなさそう
681:デフォルトの名無しさん
08/10/13 03:37:28
独学の初心者だから勘弁してくれ
682:デフォルトの名無しさん
08/10/13 03:37:59
URLリンク(princess-tiara.biz)
ここを参照して完成されたサンプルに追加する形で作ってる
683:デフォルトの名無しさん
08/10/13 03:41:42
お前の追加したコードが糞なんだから
元のコードにリンク張られても困る
684:デフォルトの名無しさん
08/10/13 03:44:15
とりあえず>>676か>>679をやってから出直してこい。
つーかデバッガの使い方を覚えろ。
685:デフォルトの名無しさん
08/10/13 03:46:01
分かった頑張ってみるよ
こんな夜中に有難う
686:デフォルトの名無しさん
08/10/13 03:51:52
画像が見つからなくてD3DXCreateTextureFromFileが失敗してるに一票
687:デフォルトの名無しさん
08/10/14 10:35:46
>>675 のコードを見て、まさか g_pSprite = NULL のまま使ってるんじゃ・・・とか思うのは俺だけ?
688:687
08/10/14 10:38:53
って、指摘済みだったか
689:デフォルトの名無しさん
08/10/15 20:16:43
板ポリゴンにテクスチャ貼り付けて縦スクロールの背景を作ったんですけど
ポリゴンの境界がうっすらと見えてしまうのはどうにかならないでしょうか?
690:デフォルトの名無しさん
08/10/15 20:25:22
(´∩ω∩`)
691:デフォルトの名無しさん
08/10/15 20:44:05
見ちゃダメ
692:デフォルトの名無しさん
08/10/15 20:49:47
>>689
1ピクセルずらして重ね合わせればいいんじゃね
693:デフォルトの名無しさん
08/10/15 21:29:24
>>692
それも試してみたんですが駄目なんですよね…
PS初期だとこういうゲーム結構ありましたよねー。
原因がさっぱりわからない…
694:デフォルトの名無しさん
08/10/15 21:33:58
>>689
つくりが悪いだけじゃ?
695:デフォルトの名無しさん
08/10/15 22:03:52
>>693
ダメというのがどうダメなのかによるが
どうせ補間されてるせいで0.5ピクセルずれてるんだろ。
指定範囲を1ピクセル分元絵の内側にずらして
その分重ね合わせるようにすれば普通はいけるはず。
696:デフォルトの名無しさん
08/10/15 22:08:54
とりあえず複雑な絵じゃなくて境界がわかりやすい
縞模様とかでテストしてみればいい
697:デフォルトの名無しさん
08/10/15 22:12:40
背景を単色にしよお
698:デフォルトの名無しさん
08/10/15 22:21:23
環境: C++ VisualStudio2008 DirectX9
立方体のXファイルを合計2000個弱ばかり表示する単純な(自分ではそう思ってる)プログラムを書いてみたのですが
これの動作が檄重で、タスクマネージャで調べてみたらメモリを700MB程喰らってます。
(ちなみに自分のマシンはメモリ3GB超積んでるのでスワップアウトは発生してないと思います)
テクスチャをいちいち読み込んでるのが原因かと推測してるのですが、
これは普通どう処理するもんなんでしょう?
独自のファイルハンドラみたいなのを書いて、プログラム本体の下に敷いて、
同一ファイル名のテクスチャを要求されたらメモリキャッシュのアドレスを渡すとか
そんな感じで処理するのが普通なんでしょうか。
699:デフォルトの名無しさん
08/10/15 22:26:57
うん、そう
700:デフォルトの名無しさん
08/10/15 22:26:58
スプライトでテクスチャを描くときに
ポジションの奥行きを0以外にすると表示されないのね。
どうすればいいの?
701:デフォルトの名無しさん
08/10/15 22:28:30
>>700
スプライトでテクスチャを描くのをやめるか、
ポジションの奥行きを0にすればいいと思うよ。
702:デフォルトの名無しさん
08/10/15 22:29:10
>>700
スプライトなんて面倒だから使うなってのが2chで聞くと大抵返ってくるレス
ポリ使って描画したほうが死ぬほど応用利くしなにより楽
どーしてもスプライトでやんなきゃ俺の気がすまねーっていうなら
詳しい人探すっきゃないw
703:デフォルトの名無しさん
08/10/15 22:31:09
同じファイルを2000個も別々に読み込んだらどうなるかぐらい
カバでもわかるだろ
704:デフォルトの名無しさん
08/10/15 22:33:04
>>703
うまくキャッシュに決まれば気にしない程度になることはあるのかもしれん
705:デフォルトの名無しさん
08/10/15 22:33:48
Zが0~1じゃないとか
706:デフォルトの名無しさん
08/10/15 23:13:59
>>695
こんな感じにズレてます。
URLリンク(hishou.ddo.jp)
線形補間はこのように使用しています。
theDevice->SetSamplerState(0 ,D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
theDevice->SetSamplerState(0 ,D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
指定範囲を1ピクセル元絵の内側にずらすってことは
ポリゴンからテクスチャが1ピクセルはみ出るように設定するということですか?
一応そう仮定して動かしてみましたが駄目でした…
707:デフォルトの名無しさん
08/10/15 23:20:15
>>706
アドレッシングモードがクランプじゃなくね?
ヘルプに「三角形ラスタ化ルール」ってのがあって読むとわかる
708:689
08/10/15 23:43:33
あ、すいません。
ポリゴンの境界が見えるって意味なんですが。
下から上に1枚のポリゴンを継続的に流してスクロールさせてるんですが
その1枚1枚のポリゴンの境界が出てしまうってことを言いたかったんです。
日本語が下手ですいません…
709:デフォルトの名無しさん
08/10/15 23:52:16
>>706
サンプリングの設定とUVと表示座標の問題だと思うが・・・。
710:デフォルトの名無しさん
08/10/16 02:06:25
>>706
どうみてもそれ元画像の下または上のラインが表示されてるでしょ
ポリゴンの境界が見えるとかいう問題ではない。
元画像のつなぎ目の部分を別のテクスチャで使用してないんなら
1ピクセル幅だけでいいからとなりの画像の端を書いておけば
そういう白い線はとりあえず消えるよ。
みっちり書き込んでるなら範囲を縮めるしかないが、
試したんならそっちの画像もうpしてみ。
白い線が出てないならあとはポリゴンの座標を調整すればいいだけ。
711:デフォルトの名無しさん
08/10/16 02:10:32
ちょっと日本語がおかしいな。
・元画像のつなぎ目の部分を別のテクスチャで使用してないんなら
・元画像の指定範囲の上下を別のテクスチャ用に使用してないんなら
712:デフォルトの名無しさん
08/10/16 02:12:56
ダメだ。眠くてミスしまくりだ。
>>710の修正部分
×元画像のつなぎ目の部分を別のテクスチャで使用してないんなら
↓
○元画像の指定範囲の上下を別のテクスチャ用に使用してないんなら