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


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

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



1 名前:デフォルトの名無しさん mailto:ライシンマハケン [2008/07/17(木) 13:50:04 ]
1 名前:デフォルトの名無しさん[sage] 投稿日:2008/04/09(水) 09:55:56
※回答する人も、質問する人も必ず読んでください

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

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

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

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

655 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 00:55:41 ]
クリッピング程度の単純な処理すら書けないのなら、
そもそもプログラムを組むのを諦めろ。

656 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 01:01:18 ]
>>654
逆に考えるんだ
ダイアログに効果があるのならダイアログに貼り付ければいいだろ

657 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 01:21:36 ]
>>655
>>648で言われたようにクリッピング的な処理は調べてみたのですけども、
今回の条件の場合には適切な方法なのでしょうか?

presentにはrect単位で転送領域を区切る方法などもあるようです。
ですが、仮にど真ん中にBOXがあったら、これを避けるように方形で区切ると
上下左右の4個の領域に区切るということになり、
仮にこのコントロールが複数ある場合には、非現実的に思えました。
(見当違いな意見を言っているようでしたら、すいません)

>>656
やはり難しいようなので、ダイアログを使って別ウィンドウに出すか、
もしくは最初に言われたDXUTとやらの勉強を始めてみたいと思います。
一応、presentの「後に」GDIでコントロールの画像を転送する、
という方法でトライしてみましたが、どうもちらついたりしてダメみたいです。

658 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 02:16:27 ]
複数矩形があろうが、その分だけ分解すればいいだけ。
その程度のことが非現実的だったら、
Windowsが行っているGUIのクリッピングは超常現象なのか?

659 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 02:50:44 ]
まっさきにDXUTのサンプル動かしてみるようじゃないと、今後も苦労しそうだな・・・

660 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 20:48:44 ]
>>660

つ、釣られないぞ・・・・。

662 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 21:08:24 ]
どうみても乗算

663 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 21:08:27 ]
DirectX関係なさ過ぎる・・・
お前に必要なのはCの参考書だ。



664 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 21:18:22 ]
ポインタだよ。
次の方どうぞ

665 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 09:28:51 ]
returnの意味がわかってないのか?

667 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 09:34:15 ]
return は この場合はHRESULTに返す値の事ですか?

hrとS_OKの違いが分からないです;;。

MSDNライブラリーでHRESULTで検索しても解りませんでした

668 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 09:36:40 ]
>>665
まず入門書でもいいから
Cの本を一冊以上読破して
C++の本を一冊以上読破して
Win32の本を一冊以上読破してから来い

669 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 10:05:26 ]
>>667
S_OK 定数
hr 変数

670 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん [2008/10/12(日) 20:18:37 ]
教えて下さい。

64x64のテクスチャをプリミティブで表示しています。

用意したテクスチャは、1色の青で塗りつぶして縁を白で
囲んだだけのものなのですが、表示した時に縁がギザギザ
した感じになってしまいます。

綺麗に表示する方法はないでしょうか?

よろしくおねがいします。

672 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 22:06:17 ]
>>589

今回の特集(いつもなんだがw)見てるとまず視聴率の数値ありきなんだよな
その作品の時代的位置付けやアニメ史上の位置付けを説明するってことを
NHKなんかが特集する時はやるもんだけどそういうことを数字だけで済ませて怠ってる
構成の仕方でもっといろんな作品を見せて興味を惹かせることは可能なはずなんだよ。
それをせずに、最近のものは数字が取れない、て最初から可能性を閉じてしまっている。


673 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 22:41:29 ]
テレビはダメ
NHKに期待

そのNHKはちゃんと期待にこたえてアレを年末にやるっていうんだからよくわかってる
2ch殺すつもりだよ



674 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 22:48:26 ]
いいから消えろカスども

675 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 01:56:18 ]
>>675
とりあえず、DrawStartMenu関数を後半から1行ずつコメントアウトで削っていって正常に動く部分を調べろ

677 名前:676 mailto:sage [2008/10/13(月) 02:10:27 ]
・・・とは言ったがこれじゃ正常に動く部分なさそうだ。

最初のg_pSprite->Begin( NULL );を消してD3DXCreateSprite(g_pd3dDevice,&g_pSprite)の
後ろに移動させてくれ。

678 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 03:20:59 ]
移動したけどアクセス違反が起きる

679 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 03:24:47 ]
ブレイクポイントつかってどの行ででるのか調べるぐらいしろよカス

680 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 03:33:01 ]
そもそも論としてデバイスはちゃんと作ったのかよ
Beginを上にもってくるぐらいだから手順が全く理解できてなさそう

681 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 03:37:28 ]
独学の初心者だから勘弁してくれ

682 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 03:37:59 ]
ttp://princess-tiara.biz/directx/?chapter=3
ここを参照して完成されたサンプルに追加する形で作ってる

683 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 03:41:42 ]
お前の追加したコードが糞なんだから
元のコードにリンク張られても困る



684 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 03:44:15 ]
とりあえず>>676>>679をやってから出直してこい。
つーかデバッガの使い方を覚えろ。

685 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 03:46:01 ]
分かった頑張ってみるよ
こんな夜中に有難う

686 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 03:51:52 ]
画像が見つからなくてD3DXCreateTextureFromFileが失敗してるに一票

687 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 10:35:46 ]
>>675 のコードを見て、まさか g_pSprite = NULL のまま使ってるんじゃ・・・とか思うのは俺だけ?

688 名前:687 mailto:sage [2008/10/14(火) 10:38:53 ]
って、指摘済みだったか

689 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:16:43 ]
板ポリゴンにテクスチャ貼り付けて縦スクロールの背景を作ったんですけど
ポリゴンの境界がうっすらと見えてしまうのはどうにかならないでしょうか?

690 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:25:22 ]
(´∩ω∩`)

691 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:44:05 ]
見ちゃダメ

692 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:49:47 ]
>>689
1ピクセルずらして重ね合わせればいいんじゃね

693 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 21:29:24 ]
>>692
それも試してみたんですが駄目なんですよね…
PS初期だとこういうゲーム結構ありましたよねー。
原因がさっぱりわからない…



694 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 21:33:58 ]
>>689
つくりが悪いだけじゃ?

695 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 22:03:52 ]
>>693
ダメというのがどうダメなのかによるが
どうせ補間されてるせいで0.5ピクセルずれてるんだろ。
指定範囲を1ピクセル分元絵の内側にずらして
その分重ね合わせるようにすれば普通はいけるはず。

696 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 22:08:54 ]
とりあえず複雑な絵じゃなくて境界がわかりやすい
縞模様とかでテストしてみればいい

697 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 22:12:40 ]
背景を単色にしよお

698 名前:デフォルトの名無しさん [2008/10/15(水) 22:21:23 ]
環境: C++ VisualStudio2008 DirectX9

立方体のXファイルを合計2000個弱ばかり表示する単純な(自分ではそう思ってる)プログラムを書いてみたのですが
これの動作が檄重で、タスクマネージャで調べてみたらメモリを700MB程喰らってます。
(ちなみに自分のマシンはメモリ3GB超積んでるのでスワップアウトは発生してないと思います)

テクスチャをいちいち読み込んでるのが原因かと推測してるのですが、
これは普通どう処理するもんなんでしょう?
独自のファイルハンドラみたいなのを書いて、プログラム本体の下に敷いて、
同一ファイル名のテクスチャを要求されたらメモリキャッシュのアドレスを渡すとか
そんな感じで処理するのが普通なんでしょうか。

699 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 22:26:57 ]
うん、そう

700 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 22:26:58 ]
スプライトでテクスチャを描くときに
ポジションの奥行きを0以外にすると表示されないのね。
どうすればいいの?

701 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 22:28:30 ]
>>700
スプライトでテクスチャを描くのをやめるか、
ポジションの奥行きを0にすればいいと思うよ。

702 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 22:29:10 ]
>>700
スプライトなんて面倒だから使うなってのが2chで聞くと大抵返ってくるレス
ポリ使って描画したほうが死ぬほど応用利くしなにより楽

どーしてもスプライトでやんなきゃ俺の気がすまねーっていうなら
詳しい人探すっきゃないw

703 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 22:31:09 ]
同じファイルを2000個も別々に読み込んだらどうなるかぐらい
カバでもわかるだろ



704 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 22:33:04 ]
>>703
うまくキャッシュに決まれば気にしない程度になることはあるのかもしれん

705 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 22:33:48 ]
Zが0〜1じゃないとか

706 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:13:59 ]
>>695
こんな感じにズレてます。
ttp://hishou.ddo.jp/~bbs/up/img/up134.jpg

線形補間はこのように使用しています。
theDevice->SetSamplerState(0 ,D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
theDevice->SetSamplerState(0 ,D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);

指定範囲を1ピクセル元絵の内側にずらすってことは
ポリゴンからテクスチャが1ピクセルはみ出るように設定するということですか?
一応そう仮定して動かしてみましたが駄目でした…

707 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:20:15 ]
>>706
アドレッシングモードがクランプじゃなくね?

ヘルプに「三角形ラスタ化ルール」ってのがあって読むとわかる

708 名前:689 mailto:sage [2008/10/15(水) 23:43:33 ]
あ、すいません。
ポリゴンの境界が見えるって意味なんですが。

下から上に1枚のポリゴンを継続的に流してスクロールさせてるんですが
その1枚1枚のポリゴンの境界が出てしまうってことを言いたかったんです。
日本語が下手ですいません…

709 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 23:52:16 ]
>>706
サンプリングの設定とUVと表示座標の問題だと思うが・・・。

710 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 02:06:25 ]
>>706
どうみてもそれ元画像の下または上のラインが表示されてるでしょ
ポリゴンの境界が見えるとかいう問題ではない。

元画像のつなぎ目の部分を別のテクスチャで使用してないんなら
1ピクセル幅だけでいいからとなりの画像の端を書いておけば
そういう白い線はとりあえず消えるよ。
みっちり書き込んでるなら範囲を縮めるしかないが、
試したんならそっちの画像もうpしてみ。
白い線が出てないならあとはポリゴンの座標を調整すればいいだけ。

711 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 02:10:32 ]
ちょっと日本語がおかしいな。
・元画像のつなぎ目の部分を別のテクスチャで使用してないんなら
・元画像の指定範囲の上下を別のテクスチャ用に使用してないんなら


712 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 02:12:56 ]
ダメだ。眠くてミスしまくりだ。
>>710の修正部分

×元画像のつなぎ目の部分を別のテクスチャで使用してないんなら

○元画像の指定範囲の上下を別のテクスチャ用に使用してないんなら


713 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 03:48:31 ]
昨日に別スレで質問させていただいたのですが、このスレのほうが適しているようなので質問させていただきます。
現在VisualC++2008ExpressとDirectX SDK March 2008
をインストールしているのですが、DirectX App Wizard でサンプルプログラムを実行するにはどうすればいいでしょうか?
今もっている本ではVisualC++6.0で開発しているので、ファイル→新規作成→プロジェクト
とやってもコンソールアプリケーションやWinプロジェクトなどしか出ない状態です。
ツール→オプションでDirectXのライブラリなどが追加されているのは確認しました。
初歩的な質問ですがよろしくお願いします



714 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 07:42:21 ]
>>713
Winプロジェクトでいいよ


715 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 07:44:41 ]
最近のSDKには無いんじゃ?
普通に好きなように書けばいい

716 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 07:52:34 ]
Sample BrowserにEmptyProjectってのがあるからそれ使え

717 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 12:45:56 ]
レスありがとうございます。
もう最近のにはティーポットなどは含まれていないようです。
本ではフレームワークを基本に進めているので別の本を探してみます。図書館の本でよかった・・・
親切にありがとうございました。

718 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 15:26:23 ]
C#からは使えなくなったの?

719 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 16:18:29 ]
C#にはManagedDirectXがある

720 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 16:31:00 ]
スレ違うけど、C#はMDX1.1とXNAだな、本家のは。

721 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 17:34:21 ]
しかしここは質問しっぱなしで結果報告もお礼も言わない奴が多いな

722 名前:689 mailto:sage [2008/10/16(木) 17:38:31 ]
>>710
画像の下の1ピクセルだけが何故か若干薄くなっていたみたいです。
画像の方に原因があるとは考えてませんでした…
助かりましたー、ありがとうございました。

723 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 17:44:58 ]
>>721
煽るだけでまともな回答がされてないからじゃね?



724 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 18:15:37 ]
どう質問するのも自由
どう答えるのも自由
お礼も必要ないし答える必要もない
フリーダムだよ

725 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 18:42:53 ]
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。


726 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 19:11:07 ]
守られていないテンプレ貼ってもな。

727 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 19:20:54 ]
平たいポリゴン作ってテクスチャを張ると
こんな感じでちぎれたみたいになるんだけど
どうすればいいの?
ttp://image02.wiki.livedoor.jp/n/o/nijiguro/a17cc0db.jpg


728 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 19:41:58 ]
ブラックジャックによろしく!

729 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 19:48:03 ]
>>727 にゅう

730 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 19:48:57 ]
>>727
Zバッファが薄すぎるんじゃね?

731 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 20:11:51 ]
あー床に刺さったポリゴンがテロテロになってるんだね
エエエー('д`)

732 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 20:36:05 ]
EDITコントロールもDXUTも使わずに
DirectXで描画してる画面で文字入力ができるゲームとか
どんな技術つかってるんだろうか

733 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 21:33:10 ]
別にEDITコントロールだって
普通にウィンドウプロシージャ
だけでやってるんだぜ?



734 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 21:40:03 ]
DXUTだってDirectXで描画して文字入力が出来るんだから、
同じこと自分でやれば出来るに決まってると思うが

735 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 21:47:42 ]
そんな当たり前のこと言われても
そのやりかたが分かんないからすごいなと言ってるんだが

736 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 21:54:57 ]
単に文字表示をやってるだけでしょうに
文字変換ならIMEやIMMやTSFを呼んだり

737 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 01:18:38 ]
>>735
やり方もなにも、エディットコントロールの自作くらいで
疑問に思うことなんてほとんどないと思うが。
プロポーショナルフォントだと面倒だなーと思う程度。

738 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 01:51:16 ]
DirectXってMFCのダイアログウィンドウ上にも表示できるんですか?DirectX用の画面が必要なんですか?

739 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 04:27:06 ]
できるよ。
がんばれ。

740 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 07:04:21 ]
>>735はプログラマ向いてないと思う

741 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 08:17:39 ]
>>838
ピクチャーボックスとか適当なコントロールを配置して
そいつのウィンドウハンドルでデバイスつくれば
そのコントロールに対して描画できる

742 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 08:32:57 ]
そんなんせんでも、Present()時に書きたいウィンドウのハンドル指定すりゃドコにでもかけるぞ。

743 名前:デフォルトの名無しさん [2008/10/17(金) 09:35:58 ]
ソフトバンククリエイティブの3D格闘ゲームプログラミング、ちょっと読んでみたんですが
Xファイルを、メッシュ、面、法線と、順番にトークンごとに区切って読み込んでいたのですが
そんな方法しかないのでしょうか?
上から読んで行き、メッシュという文字があれば。。。のような感じでした。



744 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 09:41:26 ]
D3DXの関数使って読めばいいじゃないか。
Xファイルなんていちいち自前でパースする意味がわからんし。

745 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 09:48:33 ]
はー
こんなのマスターできる気がしねー
俺はおまいらに劣っているニカ?

746 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 09:55:15 ]
>>747
そうですよね。
テンプレートの読み飛ばしなどを意図してのことだったんでしょうか・・・

747 名前:デフォルトの名無しさん [2008/10/17(金) 09:57:17 ]
>>744さんでしたorz

748 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 11:41:49 ]
>>743
あの本は一通り読んだけど
ファイルフォーマットとしてXファイルを使っているが
プログラム的にはオリジナルの頂点形式のデータとして扱うために
自力でファイル解析しながら読み込んでる感じだ
解析が甘いから出力したソフトによって読めないファイルとかあるけどな
なぜそんなことしてるかっていうと
ハードの行列レジスタ数に依存せずに
CPUで無制限のボーン行列を変換してスキニングするため
サンプルのモデルは100本くらいボーンが入っててアホかと思ったが
いずれはオリジナルフォーマットとか作りたくなるだろうからいらない知識というわけではない

749 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 12:03:08 ]
行列レジスタなんてないけどね
あと100本くらいなら頂点処理をソフトウェアで走らせればいいだけなのでは?
まあフォーマット理解するのには自前で読み込むのも悪くない

750 名前:743 mailto:sage [2008/10/17(金) 14:26:36 ]
レスありがとうございます。
なるほど・・・ボーンの数を無制限にするなどのために自力で読み込んでいたのですね。
じっくり最後まで読んだわけではないのでボーンが100もあるとは気づきませんでした。
あの本を参考に3Dアクションゲームを作ってみようと思います。
ありがとうございました。

751 名前:デフォルトの名無しさん [2008/10/17(金) 19:03:40 ]
DirectX難しいよね・・・
C/C++は学んだけど、DirectXはどこから手をつけたら良いかわからない。
Win32APIの知識がいるのかな?
みなさんどうやって勉強したんでしょう・・・

752 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 19:12:27 ]
とりあえずソース付きのサンプルをいじってみる。
SDK付属のでもWEBに転がってるのでも本に付いてるのでも構わない。
Win32APIの知識はそんなに要らない。
Win32Applicationとして実装する最低限のことができればおk。

753 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 21:23:55 ]
managed directxを先にやると楽だよ



754 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 21:26:04 ]
骨が多い場合は頂点レジスタ数に合わせてメッシュを分割して描画するのが一般的だと思うが・・・。
D3DXで読めば分割後のテーブルデータも一緒に出してくれるので
自前フォーマットを使う場合でも中間データとしてはかなり便利だと思うがね。

755 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 21:28:35 ]
>>751
Win32APIじゃなくても、MFCやDXUTにしても、
必要かどうか疑問に思ったら、まず触ってみて簡単な
プログラムを作ってみるといい。
完璧に理解しようなんて思わなくてもいいから。

DirectXを主体にゲームなり作るにしても
他のものに触れるのは決して無駄にならないよ。






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

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

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