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


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

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



1 名前:デフォルトの名無しさん [2007/09/08(土) 22:21:46 ]
※回答する人も、質問する人も必ず読んでください

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

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

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

【C++】 DirectX初心者質問スレ Part13 【C】
pc11.2ch.net/test/read.cgi/tech/1182351826/

445 名前:430 mailto:sage [2007/09/28(金) 11:45:50 ]
そうか、ライブラリに頼ってもこういう結果になる世界だったか……。
認識がチクロやサッカリンより甘かったわ。

昔のSDKでは動くのかな。動くならでそれで我慢するなり、
そうでなければ別のに乗り換えるしかないんじゃね。

446 名前:デフォルトの名無しさん [2007/09/28(金) 12:12:34 ]
>>442ですが
WindowsのバージョンはXP SP1
DirectXのバージョンは最新版(2007/7くらいのやつ)
DirectX SDKは8.1です UDX最終バージョンに合わせました
画面が全く出ないわけではなく、文字や線とかはかけます
もしかしたら、SDKも最新したらいいんですかね

447 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 12:15:21 ]
だから、一言で表示されないといわれても
色々あるわけで・・・

・そもそもファイルが読み込めてない
・読み込めてるが座標変換がされてない
・座標変換されてるがカメラの範囲内にない
・カメラの範囲内にあるがでか過ぎて(小さすぎて)みえない
・あるべき場所にはあるが光源が無い
・透明になってる
・カリングの設定が間違ってる,etc,etc

どこで失敗しているのかくらいデバックできるだろ?
それがわからなければ直しようが無い
これは環境云々の問題じゃないぞ

448 名前:デフォルトの名無しさん [2007/09/28(金) 12:22:50 ]
>>447
サンプルをそのまま使っているんですよ 見えないサンプルって無いと思います

449 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 12:29:13 ]
>>448
あのなぁ

あんたがどういう環境でやってるのか知らんが
たとえば使ってる文字セット
がユニコードなのかマルチバイトなのかが違うだけで
Xファイル内のテクスチャファイル名が読めなかったりするんだぞ?

ライブラリに合わせて環境をかえるんじゃなくて
環境にあわせてライブラリを変えることを考えろよ

450 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 12:36:22 ]
馬鹿はほっとこうぜ

451 名前:デフォルトの名無しさん [2007/09/28(金) 12:54:42 ]
ありがとうございました
UDX動きました
実行ファイルの生成される位置にXファイルがないだけでした


452 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 13:54:46 ]
ださすぎw

453 名前:デフォルトの名無しさん [2007/09/28(金) 15:00:47 ]
www.rupan.net/uploader/download/1190959146.zip

UDXで人物を表示したんですけどメタセコでみるのより画像が悪すぎです
どうしてですか?



454 名前:453 [2007/09/28(金) 15:01:47 ]
パスは 0 です

455 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 15:15:25 ]
光源を設定してないとかじゃネーノ ( ´_ゝ`)

456 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 15:16:17 ]
>>453
D3DX8BOR.DLLが見つからなかったため、このアプリケーションが開始できませんでした

お前もう、いい加減にしとけよ

457 名前:デフォルトの名無しさん [2007/09/28(金) 15:25:49 ]
>>456
www.rupan.net/uploader/download/1190960639.zip
PASS 0
これでみれますか?

>>455
光源はいってるかよくわかりません サンプル書き換えただけなので 入れてみます

458 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 15:54:11 ]
>>457
フルスクリーンはマジ簡便

見た限り光源計算がされてない
Xファイル自体に法線情報がはいってないので
ライブラリー内で
法線データがないときに自前で生成しているのか?とか
しているとして
ライトの設定がちゃんとしてあるか確認だな


459 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 16:32:12 ]
ぜんぜん簡単に使えてないところがミソ

SDKのチュートリアルから地道にやったほうがよっぽど近道なのに、
そうやって手を抜こうとするから基本的なことすら理解できずに余計な苦労をする。

460 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 16:56:11 ]
DirectXを一から勉強する方法教えてくれ!!
俺は燃えているぞおおおお!!

461 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 17:00:53 ]
>>460
これを最初から最後まで読むといいよ
msdn.microsoft.com/library/ja/DirectX9_c/directx/graphics/programmingguide/programmingguide.asp

462 名前:デフォルトの名無しさん [2007/09/28(金) 17:12:01 ]
マウスとカーソルで動かせます これだけのことを生DirectXでやったら大変でしょ?コードは↓これだけ
www.rupan.net/uploader/download/1190966958.zip

#include"udx.h"
CMesh m;CObject o;
void StartUp(){
SetVPos(VEC3(0, 1.5, -5));
m.Load("0.x");
o.SetMesh(&m,VEC3(0,0,5));}

void MainLoop(){
MouseLook(0.2f);
BeginScene();
ON_HOLD(DIK_LEFT) o.RotY(0.05f);
ON_HOLD(DIK_RIGHT) o.RotY(-0.05f);
ON_HOLD(DIK_UP) o.RotZ(-0.05f);
ON_HOLD(DIK_DOWN) o.RotZ(0.05f);
o.Render();

devSetLighting(FALSE);DrawAxis();
devSetLighting(TRUE);
BeginFont();
ShowCameraInfo(0,0);
EndFont();EndScene();}

void CleanUp(){}

463 名前:デフォルトの名無しさん [2007/09/28(金) 17:14:05 ]
>>458
なんかテクスチャーがあると絵が変になるみたいです
462はテクスチャー無しです メタセコが変なXファイルを生成しているのかUDX側なのか不明です



464 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 17:20:51 ]
ここはDirectXの質問スレであって
ライブラリの使い方の質問スレじゃないんだか
そんなの、ライブラリ製作者に聞けよ

465 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 17:25:37 ]
>>463
もうこれで最後な
メタセコでXファイル出力するときに
法線(スムージング)とUVマップの
チェック項目にチェックをいれろ

これでだめなら
お前のライブラリの使い方が悪い
基本を理解してないのに使おうとしても
応用が利かないってことがもうわかっただろ?

466 名前:デフォルトの名無しさん [2007/09/28(金) 17:28:29 ]
できましたサンクス

467 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 17:29:33 ]
マイクロソフトによる講演「Windows Vista ゲーム開発」、数多くの国内PCゲームが躓いたIME問題は、SDKサンプルのささいなバグだった!?
www.watch.impress.co.jp/game/docs/20070927/wv.htm

468 名前:デフォルトの名無しさん [2007/09/28(金) 17:44:41 ]
>>441
ありがとうごぢゃいます。勉強させていただきます。

>>467
DXUTでIMEエディットボックスが利用できなかったのでおれの環境おかしいのかなぁとおもってましたが、
よくわかりました。教えてくれてありがとうございます。

469 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 18:19:19 ]
Xファイルが大量にUPされてるサイトとかない?
モデル作れないorz

470 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 20:19:45 ]
お金くれれば作ってあげる。
キャラ一体30万でいいよ。

471 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 20:42:45 ]
30万とかぼったくりだろ。
俺だったら1ポリ1000円でいいよ。

472 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 21:07:18 ]
な、なら俺は1頂点500円だ

473 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 01:25:24 ]
ここ2,3日の質問レスはどれも死ねと回答したくなるような代物だった。
俺は何を思って初心者スレにいたのだろう。
たぶん俺はここにいるべきではないのだ。
自分のゲームを作る仕事に戻ったほうがいい.....





474 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 02:59:38 ]
そうだ帰れ帰れ

475 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 06:23:48 ]
>>473
そう思っただけでまったく回答なんてしてなかったんだろ?
ここにいるべきではないな

476 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 07:58:53 ]
>>473はスカトロの話題で進んでほしかったらしいよ

477 名前:431 mailto:sage [2007/09/29(土) 11:36:28 ]
>>434
あ・・・なるほど(汗)
おかげさまでできました!
ありがとうございました!

478 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 12:44:30 ]
>>475
そのとき回答していない=ここにいるべきではない
とはならないだろ。回答できるだけの知識があって、回答できる質問がないかここに見に来たけどむかつく質問しかない、って言ってるんだから、それが理由で去るなら、このスレは回答者を一人失っただけ。回答者は答えなくても何も困らない。

技術的に初心者なのはぜんぜん構わないが、質問者として初心者なやつには答える気は全く起こらない。

479 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 17:31:23 ]
DirectSoundでサウンドボードに入力される音声を再生したいです。
キャプチャバッファを作りWAVファイルに録音する方法は分かったのですが、
リアルタイムに再生する方法が分かりません。
おそらくセカンダリバッファに入力音声を入れて
(バッファのポインタ)->Play();
とすれば良いと思うのですが、キャプチャデバイスからの音声をセカンダリバッファに
放り込むやり方が分かりません。
ググっても、キャプチャデバイスを使うものは再生無しで録音するものばかりです・・・。

ご助言、よろしくお願いいたしますm(_ _)m

480 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 17:51:38 ]
ストリーミング再生の事?
www2.muroran-it.ac.jp/circle/mpc/program/windows/spti_cdda/spti06.html

481 名前:479 mailto:sage [2007/09/29(土) 18:23:16 ]
>>480
ストリーミング再生です。
そのページは読んでみたのですが、音楽CDの読み込みに特化しているようで
参考になりませんでした。

482 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 19:19:57 ]
結局のところ、録音バッファと再生バッファの両方をロックしてmemcpyで終わりだろ。
何を悩んでいるんだ?

483 名前:toshi mailto:sage [2007/09/30(日) 00:30:09 ]
自分の理解の為に、3D知識についてwikiやhtmlページにまとめようと思っています。
(^o^;
本やWEBを参考に下記ページのようにまとめてみました。ぶしつけですが、
もし宜しかったら、皆様に間違いや補足知識の指摘を頂けないでしょうか?
toshi104.odap.jp/cgi-bin/3Dprogram/2007-09-28.html
辛口で構わないのですが、始めて3日足らずの初心者なので、間違いや不備は
沢山あると思います。どうぞ宜しくお願い致します。
(※リンクはしばらく残しておきます。)(※掲示板も設置しました)
(※宣伝ではないですよ。趣味です。ゲーム好きです。)




484 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 00:46:18 ]
一番辛口に言うと
「チラシの裏にかいとけ」


一応斜め読んで気になったのは
FVFっていずれ使われなく(使えなく)なるんじゃね?とか
射影座標とスクリーン座標がごっちゃになってそうとか

485 名前:toshi mailto:sage [2007/09/30(日) 01:35:47 ]
レス感謝です。
>「チラシの裏にかいとけ」
あはは、そうですね。でもレス感謝です。

>FVFっていずれ使われなく(使えなく)なるんじゃね?
そうなんですか?頂点フォーマットですよね?他にどんなのがあるのでしょう?
一応DirectX9.0関連の本やWEBで一般に使われていたので・・・。
差し支えなければ、教えて下さい。

>射影座標とスクリーン座標がごっちゃになってそうとか
なるほどー、射影座標っていうのがあるんですね。勉強になります。
本に書いてありませんでした。でも、遠近法等を表現する「平行投影」「透視投影」
のハナシはありました。つまり、スクリーン座標前の変換である「プロジェクション変換」に含んでしまっているみたいですね。
どもです。

486 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 03:42:38 ]
>>478
ごちゃごちゃいいわけウザイw

例え自分の正義に基づいてどうであっても
他人がお前をウザイと思えばお前の中でどうであってもウザイことに変わりはない

お前が知らないから答えられなくても、
お前が知っていて答えなくても質問者にとってはどうでもいいことだ

それにお前の望む質問者なんてもんは多分ほとんどいないといいきれるほど稀な存在だろう
初心者なんてのは色々ひっくるめて初心者なんであって
技術の部分「だけ」が足りない奴なんてのはほとんどいないといっていいだろう
そういう奴等をあらかた無視して色々お膳立てしてあって
「ハイ、後は、この部分の回答だけ貰えばOKなんです」
なんて状態になるわけない
こんなのいたら質問スレになんてくるわけない
多くの初心者は総合的に初心者であることがほとんど

要は俺がいいたいことは
現実にない状況(理想)を勝手に望んでそれを当然のこととするのはウザイ
ってことだ

まあ、ウザイだけで、正しいとか正しくないとかは問題じゃないからねw
好きにやりなよw

487 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 03:43:29 ]
とりあえず寝ればいいんじゃね

488 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 10:28:26 ]
>>485
プロジェクション変換は
スクリーン座標に変換するものではなく
ビュー変換から射影座標に変換するためのもの
そこからさらにVierport変換をかけて
ようやくスクリーン座標になる
Direct3Dの場合は
Viewport変換はViewpotの設定にしたがって
デバイスが勝手にやってくれるので忘れられがちだけど


でも、こんなのをまとめたところで
「で?」っていう感じがしないでもないんだが・・・

489 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:11:12 ]
自分の知識を整理するって意味では有用じゃないの

他人からしたらあまり意味ないけど

490 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:17:52 ]
そんな時のためにチラシの裏があるんだよ

491 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 14:27:51 ]
ダイレクトX死ね

492 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 15:12:53 ]
>>486
ごちゃごちゃ言いわけしてるのは君w
まあどうでもいいけど

493 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 18:40:21 ]
XFileフォーマットに関して質問です。

現在D3DXを使わずにXファイルの書き出しをしています。
しかし、圧縮バイナリ"xof 0302bzip0032"の後の8バイトが何を指しているのか
分からずつまずいています。
前4バイトはおそらく解凍後のバイナリサイズだと思うのですが
残りの4バイトが分からないのです。

ご存知の方いらっしゃいましたらご教示お願いします。






494 名前:479 mailto:sage [2007/09/30(日) 18:54:05 ]
>>482
おかげさまでできました。
ありがとうございましたm(_ _)m

495 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 22:08:33 ]
新ねエーきょうみねええーあひゃひゃひゃ
今からここは初心者の性根を叩き
なおすつういみのしょしんしゃすれになるぜーーー


496 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 22:12:46 ]
新ねえー興味ねええあひゃひゃひゃふあ
つうかいまからここは初心者の性根を叩きなおす
といういみでのしょしんしゃすれになったから

497 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 00:15:27 ]
>>446
>>451
>>453
>>454
>>457
>>462
>>463
割れOS使ってんなよ

498 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 00:39:14 ]
最近のSDKはダウンロード時にチェックされんのか
あんま意識してなかったけどそういやそうだった

だから古いのを使いたがるのね

499 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 07:31:45 ]
古いSDKを使いたがる奴=割れ厨ってことだな

500 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 11:59:59 ]
XP SP1で止まってる奴は十中八九割れ

501 名前:デフォルトの名無しさん [2007/10/01(月) 15:19:08 ]
テクスチャって2の累乗の正方形じゃないとダメみたいなことを
聞いたことがあったようななかったような気がするんですが、
そんな仕様ってありましたっけ?
CreateTextureFromFileとかで普通に読み込んで表示できてるんですが・・・

502 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 15:37:21 ]
>>501
かつて、そういうGPUがあった。

503 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 15:57:57 ]
>>501
TextureCaps の D3DPTEXTURECAPS_POW2 フラグと
D3DPTEXTURECAPS_SQUAREONLY フラグが立っているときがそれ。



504 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 16:34:19 ]
>>503
全然気にせず作っていた、、、どの世代のGPUってそんな制限あったんだろう?
そのCAPってDX9だけどDX10にはCAPがないからその制限ないのかな?


505 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:15:20 ]
>>504
2の累乗制限に関しては
・条件付きnon-pow-2サポート
・無条件non-pow-2サポート
の2種類がある。
ttp://msdn2.microsoft.com/en-us/library/bb172513.aspx

[条件付きnon-pow-2サポート]
D3DPTEXTURECAPS_POW2==TRUE && D3DPTEXTURECAPS_NONPOW2CONDITIONAL==TRUEのとき

[無条件non-pow-2サポート]
D3DPTEXTURECAPS_POW2==FALSE && D3DPTEXTURECAPS_NONPOW2CONDITIONAL==FALSEのとき

これとは別に、テクスチャの縦横サイズをそろえる必要があるかどうかの
D3DPTEXTURECAPS_SQUAREONLYフラグがある。

PixelShader 3.0への対応条件に
・D3DPTEXTURECAPS_SQUAREONLYがFALSEなこと
・条件付きまたは無条件のnon-pow-2テクスチャをサポートすること
が含まれているので、PixelShader 3.0対応ハードなら基本的に問題ない。
ttp://msdn2.microsoft.com/en-us/library/bb219845.aspx

C:\Program Files\Microsoft DirectX SDK (August 2007)\Samples\C++\Direct3D\ConfigSystem\CardCaps.pdf
にCAPS一覧がある。

>そのCAPってDX9だけどDX10にはCAPがないからその制限ないのかな?
ない。

またIDirect3DDevice9ExはPixel Shader 3.0対応は必須ではないが、
条件付きまたは無条件のnon-pow-2テクスチャをサポートすることは必須になっている。
Aeroが使える環境では必ず何らかのnon-pow-2テクスチャサポートがある。


506 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:38:22 ]
この制限があった有名なビデオカードは3dfx社のVoodooだよね。
もう10年近く前のカード。DX9では本来対応すべきなんだろうけど
今ならフラグをチェックして制限があれば「対応外」としてもかまわない気がする。

507 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:52:17 ]
そしてVoodoo以外はその制限があるカードが確認できない、都市伝説と化している。
あると主張する人が具体的な製品名を挙げることが出来た例は皆無。

508 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:58:52 ]
C:\Program Files\Microsoft DirectX SDK (August 2007)\Samples\C++\Direct3D\ConfigSystem\CardCaps.xls
から調べてみた。
April 2006時点のものらしいので、ドライバのアップデートで変わってるかもしれないことに注意。

[D3DPTEXTURECAPS_SQUAREONLY]
そんなカードは無い。

[pow2のみ]
Pixomatic, Permedia 3, Wildcat VP870, ViperII Z200, 315, Xabre, TNT 2

[conditional non-pow2]
Millennium G450, DeltaChrome, Volari Family, 865G, 945G, RADEON 7000, RADEON 7200, MOBILITY M9,
RADEON 8500, RADEON 9000, RADEON 9100 IGP, RADEON 9200, MOBILITY FIRE GL, RADEON 9600,
RADEON 9700 , RADEON 9800, X300, X700, X800 , X850, X1800, GeForce 2, GeForce4 MX, GeForce3 Ti500,
GeForce4 Ti4200, GeForce FX 5200, GeForce FX 5900

[unconditional non-pow2]
Parhelia, GeForce 6200, GeForce 6800, GeForce 7800, Quadro FX 4400

>507
[pow2のみ]に挙げた7つは制限を持つらしい。
まあいまさら考慮する必要がないと思うけど。

509 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 18:59:16 ]
二乗制限はまだ結構あるっぽい
正方形制限は今時ほぼなし

って事で大丈夫?

510 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 19:07:25 ]
>>509
pow2 textureのみサポートはほぼ無くなったけど
条件付きnon-pow2テクスチャサポートの「条件」の部分を忘れやすいので注意という感じ。

A device that exposes this capability can use such a texture if all of the following requirements are met.
・The texture addressing mode for the texture stage is set to D3DTADDRESS_CLAMP.
・Texture wrapping for the texture stage is disabled (D3DRS_WRAP n set to 0).
・Mipmapping is not in use (use magnification filter only).
・Texture formats must not be D3DFMT_DXT1 through D3DFMT_DXT5.

ある程度大規模になってくるとDXTはどうしても使いたくなるので
商用ゲームなんかでは2の累乗を前提としたライブラリにしてると思う。
個人とかデモ用途なら、上の条件を踏まなければたいてい大丈夫。

511 名前:510 mailto:sage [2007/10/01(月) 19:19:11 ]
まあ大規模って言っても色々あるか。

とにかく条件付きnon-pow2テクスチャサポートのカードは去年の段階でも結構残ってる。
圧縮テクスチャとかミップマップを必須と思うなら
ライブラリレベルで2の累乗化を考慮しておいた方が良いよという感じ。
あと背景のテクスチャとかでテクスチャアドレッシングモードやラッピングモードを弄りたいという場合も
2の累乗化しておいた方が良い。

まあドキュメントにはダメって書いてあっても実際には動いちゃうケースもありそうな気はするけど。

そんな機能は使わんというのなら多分気にする必要はない。

512 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 20:29:03 ]
でもどうせなら2の累乗にしておくのが速度的には無駄がない悪寒。
# いや、DirectXは詳しくはないんですがGPUのアーキテクチャ的にね

513 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 20:39:35 ]
>>512
確かにテクスチャキャッシュは2の累乗を前提としている可能性はあるかもね。

とはいえいつも「気楽にやりたい派」と「厳格に行きたい派」の対立なので
必要な情報だけしめして後は各自に任せるでいいんじゃないかと。
ミップマップや圧縮テクスチャを使ったことないって人もいるだろうし。



514 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 21:23:07 ]
そんなこと言っても、自作ゲームの一枚絵を256x256で分割してる人今でもいるんじゃね?
手挙げてみ。

515 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 21:48:13 ]
まぁでも普通はきりのいい2の累乗で描くだろうからな。
で、正方形でなくてもいいってなら
とくに制限は無いようなもんか。

516 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 00:27:31 ]
Error: 外部シンボル 'DirectDrawCreateEx' が未解決
と、メイク時表示されます。
window.hとddraw.hをインクルードしているんですが何が不備なんでしょうか?
BCC devで、Borlandコンパイラ使っています。

517 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 00:34:52 ]
>>516
どうみてもリンク時のエラーです。本当にあ(ry

リンカにddraw.libを参照させろ。あとdxguid.libも必要になりそうな予感。
BCCなんぞしらんから、方法は自分で調べれ。

518 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 07:24:21 ]
最近
DirectX以前の問題の質問が多いな

519 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 08:29:34 ]
bcc32用DirectX SDK
ttp://www.clootie.ru/cbuilder/index.html#DX_CBuilder_SDKs

520 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 08:32:15 ]
インポートライブラリだけならimplibで生成できるけどD3DXとかのスタティックライブラリは上の使わないとbcc単独では無理
(VC++とBCBにobjの互換性がない)

521 名前:デフォルトの名無しさん [2007/10/02(火) 09:25:52 ]
>>519
上のやつ以外にdirectX SDKも必要


522 名前:デフォルトの名無しさん [2007/10/02(火) 09:56:15 ]
ゲーム画面のジャギーを消したいんで、CreateDeviceのとき
D3DPRESENT_PARAMETERDの”MultiSampleType”に
D3DMULTISAMPLE_2_SAMPLESを設定してるんですが、
UI用に2Dの変換済みポリを描画するときにはアンチがかかってほしくないです。

こういうときはどうしたらいいでしょうか?

523 名前:デフォルトの名無しさん [2007/10/02(火) 19:07:22 ]
MultiSampleTypeは随時切り替えられるようなメソッドってないですよね?



524 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 19:24:55 ]
D3DRS_MULTISAMPLEANTIALIAS


525 名前:デフォルトの名無しさん mailto:age [2007/10/02(火) 22:47:17 ]
C++でdirectx9を使っている素人です。

1 バックバッファクリア
2 予めファイルから読み込んでいた小さな正方形テクスチャをバックバッファに並べてマップを作る
3 予めファイルから読み込んでいたプレイヤー用のテクスチャをマップ上に描画
4 バックバッファをサーフェイスに転送し表示

1〜4を繰り返す中で3の表示位置をずらすことで移動を表現しているのですが、
2を毎回行うためやたら処理が遅くなります。
そこで予め大きなテクスチャに小さなテクスチャを並べてマップを作っておいてそれを2で
バックバッファに貼り付けようと思うのですが方法が見つからず困ってます。

D3DXCreateTextureで作成したテクスチャにD3DXCreateTextureFromFileで読み込んだ
テクスチャを並べるにはどうすればよいのでしょうか?
LockRectして描画は思っているのとは違う気がします・・・

526 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 22:55:32 ]
>>525
なんでわざわざロード時に作る必要あんの?
HDDなんて広大なんだから、あらかじめフォトショップでくっつけておけよ

527 名前:525 mailto:sage [2007/10/02(火) 23:07:38 ]
>>526
ランダム要素を取り入れるため動的に生成できたらなと^^;
でかいマップを作って部分ずつ表示したほうが楽でしょうか

528 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:09:14 ]
>>525
つーか、それってなんかおかしくね?
どんだけマップ並べたらパフォーマンスが落ちるんだよw

テクスチャを1枚描画するたびに
BeginSceneとEndSeneを毎回読んでるとか
座標を更新するのに
毎回ロックして直接書き込んでるとか
そういうアホな落ちじゃねぇの?

529 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:20:38 ]
つーか525ってRPGでマップ描画するときの定石じゃね?

530 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:26:09 ]
>>525
いまどき何も考えずベタにチップ描画しても、たいして負荷があるとは思えないけど。
2をどうやってるのか描くんだ。たぶん犯人はそこだ

531 名前:525 mailto:age [2007/10/02(火) 23:36:20 ]
g_d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 0.0, 0);
g_d3ddev->BeginScene();
if(!g_d3dsp)
{
 D3DXCreateSprite(g_d3ddev, &g_d3dsp);
}
g_d3dsp->Begin(NULL);

// ここでマップを描いてる(つもり)
for(int y = 0 ; y < SCREEN_GRID_Y_MAX ; y++) {
 for(int x = 0 ; x < SCREEN_GRID_X_MAX ; x++) {
  RECT rc = {0, 0, 32, 32};
  D3DXVECTOR3 center(0, 0, 0);
  D3DXVECTOR3 pos((float)(x * GRID_WIDTH), (float)(y * GRID_HEIGHT), 0);
  g_d3dsp->Draw(g_map_texture, &rc, ¢er, &pos, 0xFFFFFFFF);
 }
}

// ここでプレイヤーを描いてる(少しずつ動かす)
RECT rc = {0, 0, 32, 32};
D3DXVECTOR3 center(0, 0, 0);
D3DXVECTOR3 pos(hoge_x, hoge_y, 0);
g_d3dsp->Draw(g_player_texture, &rc, ¢er, &pos, 0xFFFFFFFF);

g_d3dsp->End();
g_d3ddev->EndScene();
g_d3ddev->Present(NULL, NULL, NULL, NULL);

>>529ですです。win32apiでHDCとかでガリガリ書いたことがあるのですがDirectXならもっと簡単にできるのではと。

晒すけど怒らないでね♥

532 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:40:47 ]
なんで毎回D3DXCreateSpriteしてるん?

533 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:41:20 ]
テクスチャ座標を適切に設定した頂点リストを作れば一発で描画できるだろ。



534 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:42:44 ]
さげ

535 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:45:38 ]
チュートリアルをすっ飛ばしてID3DXSpriteなんか使うから余計なところで苦労することになる。

536 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 23:51:03 ]
>>532毎回じゃないっす。ウィンドウ最小化して戻したときにResetした時ぐらいです。

見よう見まねでよくわかってないです・・・わかるように教えれ・・・。

537 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 00:01:39 ]
>>536
5行目!おまえは自分のソースもよめねーのか

538 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 00:25:19 ]
ポインタがnullだったらになっているから毎回やっているわけではないだろう。

とりあえずはID3DXSpriteを使うのをやめれば解決するだけの話。

539 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 00:43:55 ]
>>531
これ、解像度1024x768?
だったら

1024/32で32
768/32で24
32x24で768回DrawPrimitive呼んでるからこれやると遅くなるよ

あらかじめフォトショップでチップを配置してマップにしろ
それかロード時にチップからチップEX(極小チップを
もうちょっとまとめた単位、理解できる?分子→原子→中性子みたいな関係だw)
テクスチャを作成(これはできるよな?)

仕組みがゲームの仕様に食い込んでるから
もし仕事でやってるなら企画とデザイナに相談しないと駄目だな
速度に問題がでなくてかつ汎用性を維持した程度にチップをある程度まとめなきゃ駄目だろ
極小単位のチップって絵的な問題だろ?でもマップの汎用性の単位のチップはもっとでかいだろ?
そこの仕様をカッキリきらんとどうにも身動きとれないね
難しいのはプログラムじゃなくて仕様がふにゃふにゃだからだな

540 名前:525 mailto:sage [2007/10/03(水) 01:01:27 ]
>>539
画面いっぱい使っているわけではないので400回くらいです。
個人的に製作してるので仕事ではないです。

今までずっと変態御用達エディタでガリガリC書いてコマンドラインでコンパイルしてたんですが、
VisualC++とDirectXでゲームでも作って見ようかと思ったのがきっかけです。
CとWin32APIでガリガリするよりはよほど建設的だと感じますが、わけわからんw

頂点とかで混乱してたところにspriteなんて便利そうななもの見つけたばっかりにとんだ・・・
現在spriteを使わないように書き換えています。
なかなかエラーが取れない;

541 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 01:03:48 ]
DirectSoundでの効果音の管理など、いろいろな場所で読み込みや
再生の関数を使う必要がある場合、クラスにまとめず、ばらばらの関数として
使用できる設計にするべきなのでしょうか?何かいい方法があれば教えてください

542 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 01:23:10 ]
Visual C++2005で
ttp://www.h2.dion.ne.jp/~takusoft/directx8/d3d/chapter1/sec01/d3d_01.html
のコードをコンパイルしたらエラーがいっぱいでてくるんですが・・・
最初に #include "stdafx.h" を、ソースに追加しましたか?とでて
そのとおりにしたら
識別子が足りないとか、型指定がありませんとか
どうすればいいのでしょうか?

543 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 01:35:35 ]
古い情報を参照するのをやめるか、エラー事に自分で一つ一つ対処するか。



544 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 04:39:41 ]
->Releaseで落ちちゃうってことはつまりどういうことですかね?

545 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 07:03:09 ]
インタフェースがすでに存在していないとか






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

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

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