■過去ログ置き場に戻る■ 1- 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

【C++】 DirectX初心者質問スレ 【C++】
1 名前:デフォルトの名無しさん :04/05/17 12:50
DirectXスレは既にあるってのは知っていますが、
初心者が気軽に質問できるような雰囲気じゃないのでスレをたてますた。

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



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


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

2 名前:デフォルトの名無しさん :04/05/17 13:20
2

3 名前:デフォルトの名無しさん :04/05/17 13:21
3

4 名前:デフォルトの名無しさん :04/05/17 13:35
■ゲーム系なら……
DirectX総合スレ
http://pc5.2ch.net/test/read.cgi/gamedev/1083728025/
ゲームプログラミング相談室【Part6】
http://pc5.2ch.net/test/read.cgi/gamedev/1078503950/

■Delphiユーザーはこちら(QD,DelphiXなどのライブラリや非DirectXもOK)
Delphiゲームプログラミング相談室
http://pc5.2ch.net/test/read.cgi/gamedev/1006249204/
【Delphi】 ゲームつくるぞ(゚Д゚)ゴルァ 【作れば?】
http://pc5.2ch.net/test/read.cgi/gamedev/1051110669/

5 名前:デフォルトの名無しさん :04/05/18 14:28
DirectShowでMP3再生のソフトを作ろうとしているのですが、
サンプルみてもぜんぜんわかりません。
どこか解説されているサイトとかはないでしょうか?

6 名前:デフォルトの名無しさん :04/05/18 23:52
無能の>>1==>>5は自分の為だけにこのスレを立てた時空を越えたバカです。

このスレは放置してください。

7 名前:デフォルトの名無しさん :04/05/19 13:45
DirectXを勉強するのに良い書籍はありませんか?
Direct3Dの表示や当たり判定、物理演算などをお願いします

8 名前:デフォルトの名無しさん :04/05/19 16:59
このスレ使わないの?

9 名前:1 :04/05/19 22:17
tukauyo

10 名前:デフォルトの名無しさん :04/05/20 14:28
>>7
サンプルとかヘルプ読んどけ

>>8
使わないよ

/*******************************************
終了
*******************************************/

11 名前:デフォルトの名無しさん :04/05/21 06:49
>>10
物理演算ないよ

12 名前:デフォルトの名無しさん :04/05/21 08:40
そもそも何の物理演算がしたいんだよ?
目的を言わずに、とにかく計算がしたいと言っているのと同意なんだが、
それすら分からないほど無能なのか?
お前は物理演算と言いたいだけだろ?

13 名前:デフォルトの名無しさん :04/05/22 00:07
なんでいつも高圧的なんだ?

14 名前:デフォルトの名無しさん :04/05/22 01:36
いつも機嫌が悪いから

15 名前:デフォルトの名無しさん :04/05/22 01:51
香具師は生理中じゃねーの?


サンプルもヘルプもたいして訳にたたねー。
それも中途半端でお粗末な物・・・


16 名前:デフォルトの名無しさん :04/05/22 09:44
サンプルやヘルプが悪いのではなく、それを理解できない人間に問題がある。
何でも他人のせいにするのはよくない。
まずは自分が悪いことを認識するべき。

17 名前:デフォルトの名無しさん :04/05/22 20:05
仮に「BMPを表示するだけ」でもそれに辿り着けるまでえらい苦労する。
SDKのヘルプでいけばDirectX Graphicsあたりだろうな。
プログラミングガイドを見れば、関数の使い方とかはわかるが、
そいつをどう繋げていくのかが不明だ。

仮にD3DXCreateTextureFromFileを使うとしよう。
引数は3つしかねーし、バカでもわかるように説明書かれてるわな。
だけど、それをどうやって表示させるん?
関数の説明が載ってても肝心な情報が入ってこないわな。
時間かけて調べてりゃその内わかるけどさ、そんな暇人いるかって。
ググってみてもくだらねー解説サイトしかひっかからんし。

DirectXやる香具師が少ねーのも当然だわな

18 名前:デフォルトの名無しさん :04/05/22 20:26
>>17
VBでもやっていてください

19 名前:デフォルトの名無しさん :04/05/22 20:53
言語の基礎が分かっていないのに、いきなりWindows依存系の処理から始めたり、
Windowsプログラムが分かっていないのに、グラフィック系の処理をしようとしたり、
グラフィック系の処理が分かっていないのに、Direct3Dでなにか処理させようとしたり。

算数が出来ない人間が、いきなり数学の参考書を見ても意味不明なのは当然だろう。
自分にとって妥当なスタートラインが分かっていないのが問題なんだよ。
つまり参考書が悪いわけではない。

20 名前:デフォルトの名無しさん :04/05/22 21:58
ぬぅ・・・折角書いたのにどっかに誤投下したようだ。


21 名前:デフォルトの名無しさん :04/05/23 11:22
>>17
一通り,プログラミングガイドのテクスチャの項を読んだ者なら
サーフェイスへのコピーでそれをより簡単に実現するだろう。

また,「テクスチャはプリミティブに適用するものである」との解説も
読み取れないようであれば,プログラミングガイドを読むための日本語
読解力が欠如しているといえる。

このような者であれば,DirectX以外でも同様の状態に陥るであろう
ことは予想に難くない。

22 名前:デフォルトの名無しさん :04/06/02 11:30
>>21
は言い過ぎだと思う。確かにDirectXはむずい。
Bmp表示はテクスチャの設定、頂点データの定義、プリミティブの表示を理解してないとできない・・・。
Bmp表示くらいのクラス作ってくれたら段階を追って勉強できるのに。

ただDirectX勉強してると「その仕様もしかたがないことなんだ」と気づくはず。
今のPCスペックでは、リアルタイムレンダリングを実現させるにはレンダリングの内部の仕組みをよく理解して
最適化がプログラム側にゆだねられた仕様でないといけない。
DirectXはそういう仕様になっている(そうですよね?)。

>>17を含め初心者はまずレンダリングパイプライン(レンダリングの過程)を理解すればDirectXの理解が早くなると思う。

プログラマならいつも「おまじないコード」を自分のソースに入れとくのはプライドが許さないだろうし。


23 名前:デフォルトの名無しさん :04/06/02 12:07
プライドちゅうかきもちわるいんじゃ

24 名前:デフォルトの名無しさん :04/06/02 14:21
いまだに俺にとって#include <stdio.h>はおまじないですが何か?

25 名前:デフォルトの名無しさん :04/06/02 15:45
スレ違いだったらすみません。
DirectXを使ってソフトを作った場合、DirectXのランタイムを一緒に配布するには
MSの許可が必要なのでしょうか?


26 名前:デフォルトの名無しさん :04/06/02 17:07
>>25

FAQに日本語で書いてあるところぐらいはちゃんと読もうね。
http://www.microsoft.com/japan/msdn/directx/japan/license/dx_license.asp

27 名前:デフォルトの名無しさん :04/06/02 17:43
すみませんでした。
また、親切にURLをご提示頂きましてありがとうございました。


28 名前:デフォルトの名無しさん :04/06/02 18:15
質問があります。
DirectShowで、カメラとマイクからの入力をキャプチャしてAVIで保存しています。
現在、圧縮なしで保存しているのですが、
どうすれば圧縮をかけられるのでしょうか?

29 名前:デフォルトの名無しさん :04/06/02 20:15
まずは初心者と名乗るのをやめることが先決。
次からは挑戦者と名乗れ。

30 名前:デフォルトの名無しさん :04/06/02 20:16
誤爆った。

31 名前:デフォルトの名無しさん :04/06/02 21:28
>>29-30は先行者

32 名前:デフォルトの名無しさん :04/06/18 22:32
亀レスだけど
どうしてヘルプのチュートリアルを
何も考えずに追ってみる
とかやってみないんだろう。

これでDirectXの初期化からポリゴンの描画までいくんだけど・・・。

33 名前:デフォルトの名無しさん :04/07/04 13:27
そもそもピクセルシェーダって何ですか。

34 名前:デフォルトの名無しさん :04/07/04 21:47
ヤダヤダヤダ
DirectXなのにダイレクトに弄れないなんてヤダ
ヤダヤダヤ



 〃∩ _, ,_    /)    〃∩ _, ,_    /)      
⊂⌒( `Д´)ミ( ⌒ヽつ⊂⌒( `Д´)ミ( ⌒ヽつ
 `ヽ._つ⊂ノ⊂( ,∀、)つ.`ヽ._つ⊂ノ⊂( ,∀、)つ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|     ミ
                            |    〃 ∩  。
                            |   ⊂⌒从ヽ从゜o ザバーン
                            | 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
                            |       



35 名前:デフォルトの名無しさん :04/07/05 12:08
>32
さらに亀レスだけど、
DirectXで出来ることを理解する前に、
自分がやりたい事だけを知ろうとしているからだろ。

36 名前:挑戦者 :04/07/29 19:17
DirectXを始めようと思っている挑戦者です。

<質問>
DirectXSDKをインストールし、DirectXSDKについて解説してあるサイトを参考にパス等を設定した後、
ネット上で見つけたサンプルをコンパイルしようとしてもエラーが出てできません。
コマンドラインオプションは-Wでコンパイルしようとしました。

<エラー内容>
外部シンボル 'Direct3DCreate9' が未解決 (C:\C\DX.OBJが参照)
外部シンボル 'D3DXGetImageInfoFromFileA' が未解決 (C:\C\DX.OBJが参照)
外部シンボル 'D3DXLoadSurfaceFromFileA' が未解決 (C:\C\DX.OBJが参照)

<参考にしたサイト>
環境設定:ttp://goldfly.ld.infoseek.co.jp/program/directx/bcc90b.html
サンプル:ttp://www.geocities.jp/toru_website/sample/index.html#dxg(ここの"2Dの描画"のサンプル)

<開発環境>
BCC5.5
DirectXSDK9.0b
OS:WindowsXP(Home/SPなし)

37 名前:デフォルトの名無しさん :04/07/29 19:27
D3DXMATRIX *WINAPI D3DXMatrixRotationYawPitchRoll( D3DXMATRIX *pOut,
FLOAT Yaw,
FLOAT Pitch,
FLOAT Roll
);

の、yaw(y軸周り)とpitch(x軸周り)が逆になってませんか?

D3DXMatrixRotationYawPitchRoll( pOut, 0, rot.y, 0 ) == D3DXMatrixRotationY( pOut, rot.y)
D3DXMatrixRotationYawPitchRoll( pOut, rot.x, rot.y, rot.z ) == D3DXQuaternionRotationYawPitchRoll( pOut, rot.y, rot.x, rot.z )
になっちゃっているんですけど?



38 名前:デフォルトの名無しさん :04/07/29 19:42
俺 「C++ってなに?」

友人「ちんちんぷらぷら」

39 名前:36=挑戦者 :04/07/29 20:03
>>37
すいません、確認したいのですがどのファイルか分かりません。

40 名前:デフォルトの名無しさん :04/07/29 20:07
>>38

なんやそれ(w

41 名前:37 :04/07/29 20:08
すみません。36とは関係ないです。

42 名前:36=挑戦者 :04/07/29 20:16
>>41
あ、そうだったんですか。
こちらこそすいません。

43 名前:デフォルトの名無しさん :04/07/29 20:24
>36
ttp://www.geocities.jp/toru_website/dxg/1.html

44 名前:デフォルトの名無しさん :04/07/29 23:30
>>36
この辺のライブラリがリンクされてないんでしょ?BCCのリンカは判らんので設定は自力で頑張って。
d3dx9.lib d3d9.lib d3dxof.lib dxguid.lib dxerr9.lib (dsound.lib dinput8.lib 必要ならば)


45 名前:36=挑戦者 :04/07/31 01:18
>>43-44
ありがとうございます。
リンクされていないようだということでbccのcfgファイル見てみました。

…が、一向に解決しません_| ̄|○
bcc32.cfg、ilink.cfgを確認してみましたが、ちゃんと設定されているようです。

46 名前:デフォルトの名無しさん :04/07/31 01:20
>>45
プロジェクト設定のリンクを開いたら幸せになれるかも。

47 名前:デフォルトの名無しさん :04/07/31 01:23
VisualStudio.NET2003でDirectXアプリを作りたいんですけどプロジェクト作成ウィザードでDirectXアプリが出ません。
ライブラリとして普通のアプリで使えるようになるだけっすか?

48 名前:デフォルトの名無しさん :04/07/31 02:16
DirectXの視野変換で、zの変換が、F = Z far値,N = Z near値として、
z' = z{F/(F - N)} - FN/(F - N)・・・@
になっているけど、
zを[N,...,F]の区間に正規化したいわけだから、
z' = z*{1/(F - N)} - N/(F - N)
でなぜだめなんでしょう?実際これでちゃんと動いてます。
@式の分子のFがどっから何の為にでてくるのか判りません。実はz'もw=zで割るんですか?



49 名前:デフォルトの名無しさん :04/07/31 02:59
>>48
z' = (z-N)/w * {F/(F-N)} [0..1]
行列で計算する際は、割る必要があるから。

50 名前:48 :04/07/31 03:13
ごめん、嘘ついてました。ちゃんと動いてなかった。zバッファリングがおかしくなってた。


51 名前:48 :04/07/31 03:28
>>49
やっぱそうですね。ありがとう。


52 名前:49 :04/07/31 05:23
>>51
できるだけ、わからない部分は調べて+αでいろいろ知識増やさないと大変だぞ?あとあと・・・

53 名前:デフォルトの名無しさん :04/08/02 02:05
基本的なことですが
ピクソーシェーダの原理ってどういうものですか

54 名前:デフォルトの名無しさん :04/08/03 09:17
t-potが閉鎖したっぽいんだが・・・詳細キボンヌ

55 名前:デフォルトの名無しさん :04/08/03 09:31
http://if.dynsite.net/t-pot/

56 名前:デフォルトの名無しさん :04/08/03 15:56
>>55
54じゃないけど、おれからもサンクス。

57 名前:デフォルトの名無しさん :04/08/04 09:02
DirectXSDKsummer2004をインストールして、summer2003をアンインストールしたところ、
.NET-[新規作成]-[プロジェクト]のテンプレート選択で、
DirectXアプリケーションの項目がなくなってしまったのですが、
これを復活するにはどうすればいいのでしょうか?。。。

2004をインストールしてから2003をアンインストールしたのが悪かったのかと思い、
2004を一度アンインストールしてから、再インストールしてみましたが、ダメでした・・・。

もう容量きつくても、2003を入れっぱにしとけってことなんでしょうか・・・。

58 名前:デフォルトの名無しさん :04/08/04 09:17
S2004には存在しない。

59 名前:デフォルトの名無しさん :04/08/04 12:13
>>36
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%27Direct3DCreate9%27%E3%80%80%E3%81%8C%E6%9C%AA%E8%A7%A3%E6%B1%BA
>>45
もはや DirectX は関係ない

60 名前:デフォルトの名無しさん :04/08/04 14:37
>>58
そうなんですか、、、。

必要になったとき、容量と折り合いつけて2003入れることにします。

情報ありがとうございました。

61 名前:デフォルトの名無しさん :04/08/04 14:46
2004はサンプルブラウザからインストールしろって事なんだろ

62 名前:デフォルトの名無しさん :04/08/09 01:39
ビルドしたら
「D3DXSPRITE_ALPHABLEND」
「D3DXSPRITE_SORT_TEXTURE」
が定義されていない識別子です、
というエラーが出るのですが、
なにかインクルードとか、
し忘れているのでしょうか?



63 名前:デフォルトの名無しさん :04/08/09 08:27
>>62
d3dx9core.h

64 名前:62 :04/08/09 10:58
ありがとうございます。
できました。

65 名前:デフォルトの名無しさん :04/08/09 11:03
>>64
∀・) < エクスプローラ(インターネットじゃないほう)でF3を押すとファイルの内容を検索できるぞ。

66 名前:デフォルトの名無しさん :04/08/18 02:43
すみませんが質問です。
http://masafumi-t.cool.ne.jp/d3d05.htm
のサイトを参考にポイントスプライトのを作ってみているんですけど、
カメラをズームさせたり、Z軸移動をさせても、テクスチャが縮小はしますが、拡大してくれません。
なにか足りない設定があるのでしょうか?

67 名前:デフォルトの名無しさん :04/08/18 03:17
>>66
SetRenderStateのD3DRS_POINTSIZE_MAXはどうしてる?

68 名前:66 :04/08/18 13:06
>>67
64.0fを指定してみましたが、効果ありませんでした・・・

69 名前:66 :04/08/18 17:09
状況としては、一定のサイズ以上に拡大してくれない状態でして、
Z軸の移動は正常に行われ、カメラより手前に来ればちゃんと消えるようにはなってくれます。
が、遠近での縮小や、サイズ指定の縮小はしてくれるものの、拡大の処理がまったく行われません。
SetRenderStateのD3DRS_POINTSIZE_MAXを指定しても、改善しません。
出来ましたらアドバイスをよろしくお願いします。
orz

70 名前:デフォルトの名無しさん :04/08/18 18:03
>>68
>状況としては、一定のサイズ以上に拡大してくれない状態でして、
その一定の「サイズ以上」ってサイズが実はD3DRS_POINTSIZE_MAXの
サイズだったりしないよな?

71 名前:66 :04/08/18 18:31
>>70
ためしに1000.0fとかイタズラにでかくしても改善されませんでした。

72 名前:デフォルトの名無しさん :04/08/18 18:37
MaxPointSize とかどうなってんのよ?

73 名前:66 :04/08/18 18:55
>>72
調べてみたら、64.0fとなっていました。
これを変えるにはどうしたらいいのでしょうか・・・?

74 名前:デフォルトの名無しさん :04/08/18 19:16
>>73
それはグラフィックボードの性能によって違うので
MaxPointSize が 64.0fならそれ以上はそのグラフィック
カードでの出力は不可能。

75 名前:66 :04/08/18 19:28
>>74
グラフィックカードでは不可能ということは、ソフトウェアでエミュレーションさせれば
出切る可能性もあるということでしょうか?
あるライブラリを使用してポイントスプライトっぽいのを作ろうとしたときは
いくらでもテクスチャーを拡大出来るのですが

76 名前:73 :04/08/18 19:38
>>75
ちと誤解のある書き方をしてしまったが、

D3DCREATE_HARDWARE_VERTEXPROCESSINGとか
D3DCREATE_SOFTWARE_VERTEXPROCESSING

の問題ではなくD3DDEVTYPE_HALとかD3DDEVTYPE_HALの問題なので
REFデバイスでも64.0fなんで無理。

おとなしく、自前でビルボードで代用した方がよいかも。

77 名前:73 :04/08/18 19:38
すまん
>>D3DDEVTYPE_HALとかD3DDEVTYPE_HAL
ではなくD3DDEVTYPE_HALとかD3DDEVTYPE_REF

78 名前:73 :04/08/18 19:39
すまん
>D3DDEVTYPE_HALとかD3DDEVTYPE_HAL
D3DDEVTYPE_HALとかD3DDEVTYPE_REFだ

79 名前:66 :04/08/18 19:40
>>73
わかりました。
アドバイスありがとうございました。
ビルボードみながら奮闘してみます。

80 名前:66 :04/08/18 19:43
Σ(゚Д゚;)
>>73ではなく>>74ですね
すみません

81 名前:36=挑戦者 :04/08/23 02:24
すいません・・・だめです・・・
全部きっちり設定したはずなのに上手くいきません。
インストールしなおしてもう一回やってみたのですが、それでも上手くいきません。

リンクについての指摘が多いので、bcc32.cfgとilink.cfgを載せてみます。

◆bcc32.cfg
-I"c:\DXSDK\Include;c:\Borland\Bcc55\include"
-L"c:\DXSDK\Lib\BLib;c:\Borland\Bcc55\lib"

◆ilink.cfg
-L"c:\DXSDK\Lib\BLib;c:\Borland\Bcc55\lib"

ここが悪いのでしょうか。

82 名前:デフォルトの名無しさん :04/08/23 02:26
DirectX関係ないしw
結局夏厨を隔離しただけじゃねーかw

83 名前:36=挑戦者 :04/08/23 02:28
>>82
C++スレで聞いたほうがいいですか?

84 名前:36=挑戦者 :04/08/23 17:48
>>81
Cスレ逝って聞いてきます。
以後>>81はスルーよろしくお願いします。

85 名前:デフォルトの名無しさん :04/08/25 14:47
DirectXのサンプルなんかでよくある、

#define RELEASE(i) if(i){i->Release();i=NULL;}
BOOL EndDirectDraw(void){
RELEASE(lpFront);
RELEASE(lpDD);
return TRUE;
}

これがよく分かりません。
これの一行目が分かりません。
defineということなので何らかの定義をしてるってことは分かるんですが…
どういうことなんでしょうか?

86 名前:デフォルトの名無しさん :04/08/25 16:31
スレ違い。

87 名前:デフォルトの名無しさん :04/08/25 16:37
>>85
普通にメモリを動的に確保すると、どっかで開放しなきゃならん。
これがダルいしワケ♪ワカ♪ラン♪の元になる。
だもんでCOMオブジェクトは、保持するときはAddRef()を、手放すときはRelease()を呼び出す決まりを
作ることでメモリ管理を自動化するようになってる。
で、

第1部完
*>>87先生の次回作にご期待下さい!


88 名前:デフォルトの名無しさん :04/08/25 19:26
こんなスレ作ったところで、>>85のような厨しか沸かない罠

89 名前:86 :04/08/25 21:15
>>87
ありがとうございます。
何だかよく分からないけど、必要みたいですね。

90 名前:デフォルトの名無しさん :04/09/01 22:59
sampleのdirectplay→lobbyclientの原理を利用して
起動すると自動的に特定のアプリケーション起動してホストになるように
したいんですがどのように手をつけていけばよいでしょうか。

対になるものとして参加側のものもつくりたいです。
さらにはどれらをativeXコントールで行えれば理想です。

91 名前:デフォルトの名無しさん :04/09/01 22:59
それらを

92 名前:デフォルトの名無しさん :04/09/02 01:36
SkinnedMeshのサンプルを参考に勉強中なんですが
ID3DXAllocateHierarchyを継承してクラス作ったんですが(CAllocateHierarchy)
それを宣言するとC2259のエラーがでちゃいます。。。
調べたんですがよくわかりませんでした。



93 名前:デフォルトの名無しさん :04/09/02 12:32
面ごとにSetMaterialでマテリアルを適用する方法がわかりません。
最後に設定したSetMaterialがすべての面に適用されるっぽいんですが、誰かわかる人いませんか?

ちなみにXファイル使わずに、独自形式を読み込んで、
頂点バッファとインデックスバッファに面数×3回ループ掛けて
自前フラットシェーディングでDrawIndexedPrimitiveで描画してます。


94 名前:デフォルトの名無しさん :04/09/02 13:15
>>93
面ごとやりたけりゃ頂点色使えやチョッパリが

95 名前:デフォルトの名無しさん :04/09/02 13:47
>>94
emissiveを使いたいんです。

というかLPD3DXMESHで解決したからいいんですけどね。アハハー
レベル低ッ

96 名前:デフォルトの名無しさん :04/09/02 13:56
>>92
ID3DXAllocateHierarchyの4つのインターフェイスを、
引数や返値の型を含め、きちんと全て継承クラスで実装しているか確認。

>>93
使用したいマテリアルごとに、面(インデックスバッファ)をソートしてまとめて置き、
マテリアルの数だけ、マテリアルセット>DrawIndexedPrimitiveを繰り返す。

97 名前:デフォルトの名無しさん :04/09/02 15:02
BBX専用ブラウザありませんか?

98 名前:ちょうせんしゃ :04/09/02 17:48
DirectShowで、2台以上のカメラ映像を同時表示したいんですが。
コールバック関数内で画像の取得とクロスバーの切換やってみたら、カメラ画像が入り乱れて×。
切換直後のフィルタグラフ内のデータ消去とかでけへんかと考えよるけどうまくいかへんよ。
なんか、いい方法ありませんか?

99 名前:デフォルトの名無しさん :04/09/02 18:13
よーく見るとコールバック関数がスレッドセーフになってなかたとか。

100 名前:ちょうせんしゃ :04/09/02 18:28
>>99
ありがとうございます。よーく見てみます。

101 名前:デフォルトの名無しさん :04/09/02 19:32
>96

ありがとう。ちゃんと宣言(オブジェクトが作れた)できるようになりました。
特にCreateMeshContainerがサンプルとかwebで出回っているものと違いました。
ほんとにほんとにありがとうございます。

102 名前:挑戦者 :04/09/07 12:19
DirectX9を使って2Dのゲームを作りたいと思っているんですが、
解説書か解説サイトってありますか?

103 名前:デフォルトの名無しさん :04/09/07 16:54
error LNK2019: 未解決の外部シンボル _Direct3DCreate8@4 が関数 "long __cdecl InitDX8(void)" (?InitDX8@@YAJXZ) で参照されました。
error LNK2019: 未解決の外部シンボル _D3DXCreateTextureFromFileA@12 が関数 "void __cdecl StartInit(void)" (?StartInit@@YAXXZ) で参照されました。
fatal error LNK1120: 外部参照 2 が未解決です。

というようなエラーがでました
どうすれば治るのでしょうか
ご教授お願いします



104 名前: ◆Z0vd5w812U :04/09/07 17:21
>>103
d3d8.libとd3dx8.libをリンクライブラリに追加する。
またはソースコードに
#pragma comment(lib, "d3d8.lib")
#pragma comment(lib, "d3dx8.lib")
と記述する。

105 名前:デフォルトの名無しさん :04/09/07 17:23
>>102
DirectX8ならいいとこあるんだけどね
http://rina.jpn.ph/~rance/index.html

106 名前:デフォルトの名無しさん :04/09/07 17:29
>>104
レスありがとうございます
おかげさまで無事解決できました
ほんとうにありがとうございました

107 名前:挑戦者102 :04/09/07 20:10
>>105
レスありがとうございます。
自分も探したんですが、DirectX7とかDirectX8は結構あるのですが、
DirectX9はほとんど3Dしか扱っていない所が多くて…
もう少し探してみます

108 名前:デフォルトの名無しさん :04/09/07 20:10
3dしか扱ってないと勘違いしてるだけじゃないの?

109 名前:デフォルトの名無しさん :04/09/07 20:17
direct8と9ってどうちがうの?

110 名前:デフォルトの名無しさん :04/09/07 20:35
>102
スプライトとか使うんだよたしか。
でも2D使いたいんならDirectDraw使えば?

111 名前:デフォルトの名無しさん :04/09/07 20:58
DirectXにスプライト機能など存在しない。

112 名前: ◆Z0vd5w812U :04/09/07 22:09
>>102
DirectDrawを使うのが楽だと思う。DirectX7機能になるが、DX9環境でも使える。
または、Z=0としたDirect3D環境でガンバル。

113 名前:デフォルトの名無しさん :04/09/07 22:14
>>107
もしよろしければDirectX8で2Dゲームの解説してるところ教えてください


114 名前:挑戦者102 :04/09/07 22:48
いろいろ教えてくださって皆様ありがとうございました。
結局解説サイトは
ttp://www.plustarnet.com/aspil/
しか見つかりませんでしたがMSDNでも見ながら頑張ってみます。

>>113
いくつか見かけたのですがブックマークしてなかったので、
分からなくなってしまいました。すいません。

115 名前:デフォルトの名無しさん :04/09/07 23:56
IDirect3DTexture9
ID3DXSprite

2Dしか使わないなら
ドキュメントでこの二つのメンバを見れ
簡単や一日あれば余裕

116 名前:デフォルトの名無しさん :04/09/08 13:28
APIの命令使う方がいいのかダイレクトインプット使う方がいいのか
どっちがいいのでしょうかそれぞれの短所長所を教えてください

117 名前:デフォルトの名無しさん :04/09/08 14:14
VC++.netでdirectxのウインドウモードの時に
ウインドウに文字を表示するにはどんな命令を使えばいいのですか?

118 名前:117 :04/09/08 16:03
デバイスコンテキストで表示できました
あと、表示される文字のフォントサイズを小さくするにはどうすればいいのでしょうか?

119 名前:118 :04/09/08 16:20
directxと関係ないので他のところで聞いてきます

120 名前: ◆Z0vd5w812U :04/09/08 17:15
>>116
好きな方を使えばヨイ。
もしキミが学生で将来ゲームプログラマになりたいなどと考えているなら、両方使って違いを体感すべきである。

121 名前:デフォルトの名無しさん :04/09/08 22:52
>>120
趣味でゲーム作りたいなと思っています
directxでゲーム作る限りはダイレクトインプット使いたいんですけど
初期化とか色々めんどくさそうだし、どっちにしようか悩んでます

122 名前: ◆Z0vd5w812U :04/09/08 23:30
>>121
多分作っていくうちにあれこれしたくなるから、DirectInputを使うのがいいんじゃないかな。

123 名前:デフォルトの名無しさん :04/09/10 09:07
>>122
DirectInput難しそうなんでAPI使うことからはじめようと思います
アドバイスありがとうございました

124 名前:デフォルトの名無しさん :04/09/10 13:41
3Dゲーム中に、例えばメニューウィンドウなどの2Dを表示する時、
縦横50*100の画像があるとして、
これを120*200の矩形範囲内に画像の大きさ&縦横比を変えずに
リピート(縦に2.4枚分、横に2枚分リピート)したいのですが、
こういったことはスプライトではできないでしょうか。
やるとしたら力技で必要な枚数分スプライトを置く(2DRPGのマップように)
しか思いつかないのですが、
スプライト一枚の大きさを変えたりテクスチャを弄ったりで
なんとかできる方法はないものでしょうか。

また、一般的にこういったことをやるにはやはり
板ポリゴンに貼り付けてUV操作をするとか、そんな感じになるんでしょうか。

125 名前:124 :04/09/10 14:13
>120*200の矩形範囲内に画像の大きさ&縦横比を変えずに

すいません、これはあくまで例えの大きさでして、
この矩形(ウィンドウ)はマウスドラッグとかで
随時大きさを変えられるようにしたいです。

126 名前:デフォルトの名無しさん :04/09/10 23:05:40
ID3DXSpriteじゃ無理だと思うよ

UV操作といってもラップテクスチャアドレシングモードで
1.0以上のuvを、右端下端に設定するだけだよ
その例だとそのままu=2.0f、v=2.4f

幅120、高さ200そのままのTLVertexな板ポリを作り、上のuv設定すれば終了

127 名前:デフォルトの名無しさん :04/09/11 01:02:00
XP .net2003 2004summer

雑誌のソースコードでコンパイルをすると
    ID3DXSprite::Draw : 関数に 7 個のパラメータを指定することはできません。(C2660)
と出てきます。
そのソースの一部が以下のとおり。
    RECT rect={0,0,100,100};
    D3DXVECTOR2 vec2Scale(1.0,1.0);
    D3DXVECTOR2 vec2RotationCenter(1.0,1.0);
    D3DXVECTOR2 vec2Position(270,180);
    pSprite->Draw(pTexture,&rect,&vec2Scale,&vec2RotationCenter,0,&vec2Position,0xffffffff);
    pDevice->EndScene();
検索すると2004summerで変更されたらしいです。
その人は9.0bにバージョンを落としたみたいですが、2004summerで使う場合はDrawのパラメーターをどのように変えればいいのでしょうか。
ヘルプを使っても別のDrawしか出ていないようです・・。

128 名前:デフォルトの名無しさん :04/09/11 01:15:59
>>127
ttp://www.plustarnet.com/aspil/Programming/ID3DXSprite.htm

129 名前:デフォルトの名無しさん :04/09/11 01:33:11
>>128
レスありがとうございます。
2004夏から変更と書かれていたので使えるのか半信半疑だけど試してみます(・ω・)

130 名前:デフォルトの名無しさん :04/09/11 01:41:14
エラーは出なくなったけど画像が表示されない罠orz
改めてありがとうございます。

131 名前:デフォルトの名無しさん :04/09/11 01:46:37
XSIのデータをコンバートするプログラムで悩んでいます。
SI_TriangleListがSI_Modelの中に複数あったりするので面倒なのです。
個人的にはSI_Modelの括りごとにデータを分けられれば楽なのですが、そういう風にするうまいやり方が思いつきません。
やはり、読み込んだデータは一行一行別々にリスト管理して、それから数値などを取り出していくやり方しかないのでしょうか?


132 名前:124 :04/09/11 02:13:03
>>126
なるほど、やっぱそんな感じですか。
なんとなく見えてきました。ありがとうございました。

133 名前:デフォルトの名無しさん :04/09/11 07:51:25
directinputでマウスカーソルの座標を知るにはどうすればよいのでしょうか?

134 名前:デフォルトの名無しさん :04/09/11 10:55:47
>>133
サンプル嫁

135 名前:デフォルトの名無しさん :04/09/11 16:49:39
3×3の姿勢ベクトルから方位を出したいのですが、方法やどんな関数を使えばいいのでしょうか。

(1,0,0)
(0,1,0)
(0,0,1)  この状態だと方位は0度。

(0,0,1)
(0,1,0)
(-1,0,0)  この状態だと方位は90度。

方法が書いてあったと思われる向氏のサイトが閉鎖されてるし・・

136 名前:デフォルトの名無しさん :04/09/11 18:17:11
>>135
その行列の行を一本のベクトルと見立てて
ペイントで絵でも描いてみろ。
そうすりゃわかるだろ。

137 名前:デフォルトの名無しさん :04/09/11 18:35:46
>>136
atan2は使えないし、正確なPIが表示できないので誤差がかなりでる・・

138 名前:137 :04/09/11 18:36:17
↑atn2

139 名前:デフォルトの名無しさん :04/09/11 18:40:44


140 名前:デフォルトの名無しさん :04/09/11 18:45:12
>>135
ちょっと曖昧
方位を求めたいのか、角度を求めたいのか
「何の」方位を求めたいのか、「どこの」角度を求めたいのか

141 名前:デフォルトの名無しさん :04/09/11 18:53:13
const float3 x( 1.0f, 0.0f, 0.0f), z( 0.0f, 0.0f, 1.0f);

if( dot( z, m[2] ) >= 0.0f)
return acos( dot( x, m[0]));
else
return 2.0f * pi - acos( dot( x, m[0]));


142 名前:デフォルトの名無しさん :04/09/11 20:08:09
>>140
方位ってY軸の回転ね。
てか方位で曖昧って言われたの初めて(´・ω・`)

>>141
ありがとうございます。
ちと試してみま〜

143 名前:デフォルトの名無しさん :04/09/11 20:38:16
>>142
全ての発言が、お前に3Dは無理と感じさせる。

144 名前:デフォルトの名無しさん :04/09/11 20:40:50
>>142
下を向く(X軸かZ軸が180度回転した)状態で
それでも方位をY軸回転って言うの?

145 名前:デフォルトの名無しさん :04/09/11 20:40:52
くっ、レス書いてたが教える気が萎えるなw

146 名前:デフォルトの名無しさん :04/09/11 20:54:14
無理してまで教えなくていいですよ

147 名前:デフォルトの名無しさん :04/09/11 21:28:14
>>144
釣られているのかも知れんが
相対座標以外にも絶対座標があるのですよ。
おまいは寝転がると自分から地球の中心方向が南でその逆が北になると言うのか

148 名前:デフォルトの名無しさん :04/09/11 21:36:52
>>147
あのさ、基底ってわかる?
3Dで言うと、ローカル、ワールド、ビュウって基底が違うだろ。
意識的に混同して誤魔化してる?

自分が寝転んだら、自分の絶対座標の基底は逆になるだろ。
それとも3D初心者によくある、全部ワールド座標以外理解出来ない君ですか?

149 名前:デフォルトの名無しさん :04/09/11 22:03:45
誤魔化してきたぞw

150 名前:デフォルトの名無しさん :04/09/11 22:26:32
話し終わったのかな?
>>141のを使うと
    error C3861: 'dot': 識別子は、引数依存の照合を使用しても見つかりません。
とエラーが出てきますorz
dotを使えるようにするにはなにかインクルードしないといけないのでしょうか。


151 名前:デフォルトの名無しさん :04/09/11 22:42:35
>>141
よく見ればバンク角かorz
バンク角とピッチ角は出来てます・・。
変なゴタゴタも起こってますし、とりあえず別のところから作って見ます(´・ω・`)

152 名前:デフォルトの名無しさん :04/09/11 22:44:26
float3型は通ったんだよね?

つーか内積程度は自前で計算すれば?


153 名前:147 :04/09/11 22:45:04
>>148
人に教えれるほどやっているわけではないので間違ったことを言ってるのを前提に聞いてくれ。
まず基底の意味がそのクラスの元となっているもの(クラスと捕らえているのだがここは合ってるか?
そうすると
>3Dで言うと、ローカル、ワールド、ビュウって基底が違うだろ。
がおかしくなるので違うか。
自分の考えを書くと
> 自分が寝転んだら、自分の絶対座標の基底は逆になるだろ。
X軸{1,0,0} Y軸{0,1,0} Z軸{0,0,1}の基底クラス(地球(重力の反対がY軸ベクトルとする))があって、その派生が人間とする。
その人間が{{1,0,0},{0,0,1},{0,-1,0}}と横になっても、どっから見ようが方位は変わらないと思うのだが。
もちろん人間(派生)のY軸の回転と地球(基底)のY軸回転は違うわけだが。

154 名前:デフォルトの名無しさん :04/09/11 22:45:56
>>152
出来るかどうか・・・なんとか頑張ってみます。

155 名前:デフォルトの名無しさん :04/09/11 22:51:30
>>153
ローカルで横になって、ワールドで変化なしでも
ローカルで変化なしで、ワールドで横になっても

見た目は同じだが、ワールドでの姿勢制御行列は違うだろ。



156 名前:デフォルトの名無しさん :04/09/11 22:55:25
>>153
基底をわかってない。それで語り出すなよ。
人間には人間の基底があって、地球には地球の基底がある。
人間を地球の基底にもって行くのをLocalWorld変換と言うんだろ。

なんだよ…派生って…

157 名前:147 :04/09/11 23:22:22
半端な知識な点について申し訳ない。
>>155
ワールドがメッシュAでローカルがメッシュBとして
メッシュAの中にメッシュBがあると考えていたけど違うか。
メッシュAが姿勢を変えたらメッシュBも姿勢が変わる。
メッシュBが姿勢を変えてもメッシュAは姿勢が変わらない。
>>156
3年前は基底クラスと派生クラスと学んでいたのでそのまま使っているが最近(cpp)は違うのか。
それとも基底の解釈の仕方が違うのかも知れんが。

考え方が色々あるみたいなので当方も頑張って勉強します。
様々なサイトや本を見ながら格ゲーを作ったけどこの考え方で作れたのは奇跡に近いのか・・・

158 名前:デフォルトの名無しさん :04/09/11 23:33:56
>>157
これ以上、醜態を晒すなよ。

一つのメッシュで、ローカル、ワールド、ビュウと変換していくんだよ。
で、それぞれの座標系で姿勢制御行列は変わるだろ。

基底クラス?それはC++の話。
回転と姿勢制御で基底ってわからないの?
>{{1,0,0},{0,0,1},{0,-1,0}}
とか自分で言ってるじゃん?

>様々なサイトや本を見ながら格ゲーを作ったけどこの考え方で作れたのは奇跡に近いのか・・・
丸写し、サンプルコピペ、D3DXライブラリ等、知識なくとも作れるよ。
作れた == 知識ある
じゃない。

自前実装でもして勉強したら。


159 名前:デフォルトの名無しさん :04/09/11 23:36:50
>>157
>3年前は
>3年前は
>3年前は

3Dの適正ない…

160 名前:デフォルトの名無しさん :04/09/11 23:50:05
>考え方が色々あるみたいなので

…なと言えばいいのかな…
貴方の捉え方、理解のしかたをもって
基本的な考えを
>考え方が色々あるみたいなので
と言ってるの?

161 名前:デフォルトの名無しさん :04/09/12 00:10:07
>>135   もういないかな

向氏のページのぐぐるキャッシュ
http://www.google.co.jp/search?q=cache:6AL2u5uKMeYJ:member.nifty.ne.jp/Mukai/3d.htm+%E5%9B%9E%E8%BB%A2%E3%80%80%E3%82%AF%E3%82%AA%E3%83%BC%E3%82%BF%E3%83%8B%E3%82%AA%E3%83%B3&hl=ja


162 名前:147 :04/09/12 00:18:46
>>158
半端な知識と書いてある通り知識があるわけでないしそもそも基底の意味が分からん。
Javaで少し出てきたけどcppでは今のところ出てきていない。
DXでの自分の考えでは
基となるのが大きなメッシュ その中に小さなメッシュ
小さなメッシュにXファイルをいれて大きなメッシュから見た座標と姿勢を指定する。(3x3の行列)
カメラも大きなメッシュの中にあってこれも同じく座標と姿勢を指定する。(Zベクトルが視点)
人などの小さなメッシュは大きなメッシュを基にして動くのでみんなバラバラに動くことができる。
大きなメッシュが動くとその中にある全ての小さなメッシュ(カメラ)も動く。
大きなメッシュが180度回転しようが大きなメッシュを基にしているので
小さなメッシュやカメラも一緒に動く・・・結果中身に何も変化なし。
つまり大きなメッシュを動かしても小さなメッシュと東西南北などの方位は変わらないのでは。

>>160
本に書いてあることがバラバラでどれが基本なのかわからない。
なので自分にとって分かりやすい考え方を自分の基本にしている。
英単語を覚えるのは基本的に何度も読み書きをするだけど
無理やりローマ字読みしたり睡眠中に流して覚えると言うものそれが自分に合ってればその人の基本かと。
基本は違えど結果は同じわけだし。

163 名前:デフォルトの名無しさん :04/09/12 00:23:30
フレームとメッシュが滅茶苦茶に混同されている。
しかもメッシュの中にXファイルっていったい…。

164 名前:デフォルトの名無しさん :04/09/12 00:29:48
>>147
お前、キモイんだよ、間違った自分の考えをダラダラと。

基底とは数学の話だよ。なんだよJavaって。
でモロに、ワールドでの話でしかないだろ、下らない例をグダグダと。

>本に書いてあることがバラバラでどれが基本なのかわからない。
>なので自分にとって分かりやすい考え方を自分の基本にしている。
数学的な物は、バラバラなわけないだろ。
で今は、モロに3Dの数学的な姿勢制御と座標系の話をグダグダ述べてんだろ、お前。

基本が同じって自前で実装してるなら通じるが
ライブラリやサンプルコピペしてるような奴は、基本が同じなど
おこがましい。


165 名前:デフォルトの名無しさん :04/09/12 00:35:50
とりあえず餅つけ

166 名前:147 :04/09/12 01:29:54
>>163
ご免、素で変なこと書いてた。
大きなメッシュ→大きなフレーム(親)
小さなメッシュ→小さなフレーム(子)
>しかもメッシュの中にXファイルっていったい…。
箱の中にポリゴンを入れているイメージが載っていたのでそういう形で覚えてました。
(大きな箱を動かしたら小さな箱も一緒に動く 等)
変だろうけど勘弁してください。

>>164
数学の基底、学校で習うわけでもないし今まで必要じゃなかったので
回転と姿勢制御で基底ってわからないの?
分からないと言うよりも知らないの方が正しいです。


167 名前:デフォルトの名無しさん :04/09/12 01:54:22
>>147
何を言い分けしても、お前の3Dの基本はグダグダ。
ワールド座標系しか理解出来ない奴は、ワールド座標系でしか物事考えられんって奴だ。
基底座標の変換と、同じ基底内の回転、平行移動、スケールが混同されすぎってか
理解も出来てない。
それで、語ってりゃ世話ない。

偉大だよな、DirectXって。
こんなイカレ野郎でも3Dやってる気にさせちゃうんだから。

168 名前:デフォルトの名無しさん :04/09/12 05:56:55
モーフィングしたいのですがどうすればよいでしょうか?

モーフィングという言葉が不適切かもしれませんがメッシュAをメッシュBへ変形させたいのです
顔A、顔Bと用意しておいて顔Aから顔Bへ徐々に変形していくことで表情を変えたりしたいです


169 名前:デフォルトの名無しさん :04/09/12 16:44:19
頂点とIndex(あるなら)を対応したモデルが前提で
各頂点をモーフィングの度合いで線形補間して表示すれば良いだけじゃん。

170 名前:デフォルトの名無しさん :04/09/12 23:06:58
頂点データについて質問です。

3Dの頂点宣言に、D3DFVFを使って行う方法は分かったのですが、

3Dの頂点宣言に、D3DVERTEXELEMENTを使いたいときには
どのように指定したらいいのでしょうか?


D3DFVFを使用したときには、
float x, y, z, rhw; → float x, y, z;
のように、float型3つになっていたので、

D3DDECLTYPE_FLOAT4 の代わりに D3DDECLTYPE_FLOAT3 を
使ったりしてみましたが、無理でした・・・。


また重ねて質問なんですが、
D3DVERTEXELEMENT での頂点宣言を使う利点って何なんでしょうか?

171 名前:170 :04/09/12 23:09:59
「2Dの頂点宣言を、3Dの頂点宣言にする際に」を

>D3DFVFを使用したときには、
>float x, y, z, rhw; → float x, y, z;
>のように、float型3つになっていたので、

の前に追加願います・・・。
スレ汚しスイマセン。

172 名前:デフォルトの名無しさん :04/09/12 23:14:11
>>169
DirectXにそういう機能は無いってことですか?

173 名前:デフォルトの名無しさん :04/09/13 00:39:03
>>170
全然要領を得ない。
何言ってるの理解不能。
頂点型とD3DVERTEXELEMENT型の宣言を見せてみ?

>>172
頂点バッファの値も取得出来るし、書き換えも出来る。
だからスキニング等のアニメーションが出来るんでしょ?
まさか、D3DX系関数で関数呼べばやってくれるとかじゃないよな?


174 名前:170 :04/09/13 01:01:42
>>173
レスサンクスです。なんか自分、相当勘違いしてるみたいですね・・・。
それぞれ、

struct CUSTOMVERTEX
{
 float x, y, z;
 DWORD color;
};
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE)

D3DVERTEXELEMENT9 VertexDeclaration[] =
{
 { 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
 { 0, 12, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0 },
 D3DDECL_END()
};

って感じです。
下のD3DVERTEXELEMENT型を3Dのポリゴンに使いたいのですが。

175 名前:デフォルトの名無しさん :04/09/13 01:24:48
>>174
別にオカシイと思える所はなさげだけど?

もしかして2Dを3Dにとか言ってるって事は、
プロジェクション変換してないとか?

176 名前:デフォルトの名無しさん :04/09/13 01:45:18
>>175
プロジェクション変換については、
spinの
ttp://spin.s2c.ne.jp/stoday/stoday04.html
のページを参考にしていて、
ClipVolumeサンプルを元に作成してるので、大丈夫だと思うのですが・・・。

元は、
D3DVERTEXELEMENT9 VertexDeclaration[] =
{
 // 2Dの頂点位置
 { 0, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITIONT, 0 },
 // 頂点の色
 { 0, 16, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0 },
 // 終了の印
 D3DDECL_END()
};
という指定だったのですが、この指定から>>174の指定にした場合、
他にどのような部分を変更しなければいけないのでしょうか?

177 名前:170 :04/09/13 02:02:42
スイマセン・・・、どうやら見えない位置に
しっかり表示されていました・・・orz
お手数とってしまってホント申し訳ない・・・・。
スレ汚しスイマセンでした・・・。

178 名前:デフォルトの名無しさん :04/09/15 05:48:18
MeshとPMeshってどう違うのですか?

179 名前:デフォルトの名無しさん :04/09/15 07:01:12
P

180 名前:デフォルトの名無しさん :04/09/15 23:05:45
DrawIndexedPrimitiveの間の4つの引数について教えて下さい。
今もなんとなくは使えてるのですが…。

//ヘルプの引用
HRESULT DrawIndexedPrimitive(
 D3DPRIMITIVETYPE Type, //これはOK
 INT BaseVertexIndex, //インデックスバッファの開始地点から最初の頂点インデックスまでのオフセット
 UINT MinIndex, //この呼び出しの間に使用される頂点群に対する最小の頂点インデックス
 UINT NumVertices, //この呼び出しで使用される頂点の数 (BaseVertexIndex + MinIndex から始まる)。
 UINT StartIndex, //インデックス配列の中で頂点の読み取りを開始する位置
 UINT PrimitiveCount //これもOK
);

IndexBuffer配列
[0][1][2][1][2][3][3][5][4][4][6][8][9][6][5][4][5][7][4][5]

駄目人間>>180の考え
BaseVertexIndex 最初の頂点インデックスって何の最初だろ…描画したい範囲の最初だろうか…
MinIndex IB配列に入ってる0〜9の値のうち、最小の値である0という事?
NumVertices 使う頂点は0〜9だし10個?でもBaseVertexIndex + MinIndexとか言ってるし…
StartIndex BaseVertexIndexとは違うのだろうか…

181 名前:デフォルトの名無しさん :04/09/15 23:57:10
>>180
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=DrawIndexedPrimitive&lr=lang_ja

182 名前:デフォルトの名無しさん :04/09/16 00:59:11
2Dスプライトの表示と移動を行うソースなんですが
エラー原因特定が掴めない。あと、ファイルのまとめ方とか
プログラムの書き方とかも自信無いのでアドバイスを頂けたら光栄なんですが。駄目元で、ソース置いときます。。。

ちなみにエラー有りそうな所はsprite.hとDXInput.hが有力で
次にDXHeader.hが有りそう。

http://sterdust.net/upload/upload.cgi?page=Download&dir=&sort=date&filename=VSHTest.zip

183 名前:182 :04/09/16 18:13:54
バグとれました。(冷やし中華始めました風)
ソース見て下さった人ありがとう。(いたかどうか分かりませんが)

184 名前:デフォルトの名無しさん :04/09/19 05:55:59
SDKに付いているd3dappを使って組むのと
1から組むのどっちがいいと思いますか?

まぁたいした量じゃないけど、、、めんどくさい

185 名前:デフォルトの名無しさん :04/09/19 09:12:49
その程度を面倒くさいという理由でやろうとしない人間は、
結局何も作れないで終わるだけ。

186 名前:デフォルトの名無しさん :04/09/19 13:57:09
>185
すみません
僕が甘かったようです

ちょっと調べて思ったんですが
ネット上の情報ってなんでエフェクト処理ばかりなんだろう。。。
ゲームにはそんな重要ではないと思うが

187 名前:デフォルトの名無しさん :04/09/21 05:39:23
xファイルを読み込んでDrawSubsetで描画する、というのを
ネットで適当にサンプルを拾ってきてそれをコピペしてやってみたのですが、
なぜか所々ポリゴンが抜け落ちたようになります
(3角形の穴が開いたように、裏側というか内側?が見えたりする)
また、メッシュのx座標を変化させても抜け落ちるポリゴンは変わらないのですが、
z座標を変化させると別のポリゴンがかけたりします
こうなる原因として、何が考えられるでしょう?

バージョンはDirectX9で、開発環境はVC++.netです

188 名前:デフォルトの名無しさん :04/09/21 13:01:09
>>187
背面カリングをしない設定だとちゃんと描画されるのか?

189 名前:デフォルトの名無しさん :04/09/21 14:07:38
LINK : fatal error LNK1181: 入力ファイル "dinput8.lib" を開けません

ビルドするとこんな↑エラーが出るのですが、どうすればいいのですか?

190 名前:デフォルトの名無しさん :04/09/21 14:50:16
ここはDirectXの初心者スレだ

開発環境C/C++の初心者スレではない

191 名前:デフォルトの名無しさん :04/09/21 15:37:38
Windowsをぶっこぬくほうほうを教えてください

192 名前:デフォルトの名無しさん :04/09/21 15:48:01
どうすれば、テクスチャ上の文字列をきれいにそのまま表示できますか?
テクスチャは拡大も縮小もせず(Worldで256x256なら、Screen上でも256x256で表示)、
傾き0で表示していますが、ノイズが入ることがあります。


193 名前:デフォルトの名無しさん :04/09/21 16:13:04
スプライトって飲むとシュワシュワしますか。

194 名前:192 :04/09/21 16:31:19
うーん、スプライトではなくてテクスチャで何とかしたいのですが。。。

195 名前:デフォルトの名無しさん :04/09/21 16:42:00
トランスフォーム済みで0.5ずらすだけ。

196 名前:デフォルトの名無しさん :04/09/21 18:23:14
>>180
DrawIndexedPrimitive
IDirect3DDevice9::SetIndices を繰り返し呼び出すことなく、
同じインデックス バッファで複数のプリミティブをバッチ処理できるように、
IDirect3DDevice9::DrawIndexedPrimitive が変更された。

とあるから、それぞれの意味はなんとなくわかるよね?

197 名前:187 :04/09/21 20:04:46
>>188
背面カリングをしない状態でも、同じのようです

よく見ると>>187で書いたのと少し違うようで(スイマセン...
背面は描画されないのですが、
たとえば球の前に立方体を置いて、立方体の方向から
球が立方体の影になるようにして球を見ると、
球のポリゴンがチラつくように立方体を通して表示されます
(球と立方体でひとつのメッシュです)

わかりにくいと思いますが、よろしくお願いします

198 名前:デフォルトの名無しさん :04/09/21 20:10:47
射影の遠近設定が不適切で、Zバッファの精度が足りなくなっているのでは?

199 名前:187 :04/09/21 21:13:20
>>198
まだ安定してませんがどうやらその辺りのようです
ありがとうございました

200 名前:デフォルトの名無しさん :04/09/22 00:25:01
>>180
一応それっぽい意味を。
BaseVertexIndex
ヘルプの説明がわかりにく。とりあえずこれは頂点バッファの
先頭からのオフセット。
1を設定すると頂点1個分sizeof(CUSTOMVERTEX)分進む。(複数オブジェクトをまとめる時にでも)
MinIndex
最小のインデックス番号?なのかな。基本的になに設定しても動作はかわらんかった記憶が・・・
なんか内部で最適化されるとかいってるからとりあえず0に。最適化なのかなんなのかしらないけど
そこまでデータの割り振りを手元に用意するのはめんどいなと。
NumVerticesは単にレンダリングに使用する頂点数。
StartIndex、これはインデックスバッファのインデックスオフセット。これをずらして作業することって
あまりなさそうだけど{0,1,2,3,4,5,6}のインデックスにたいして1をセットすれば
内部で{1,2,3,4,5,6}になる。PrimitiveCountとの整合性は保たないとあれかね。
まぁ部分的に間違ってるヤカン

201 名前:180 :04/09/22 08:01:39
>>196 >>200
(*゚Д゚*)!

いや正直未だに分からず放置してたんです。
な、なるほど!インデックスバッファをまとまり毎に処理するためのものに加え、
頂点バッファもまとまり毎に処理が可能に出来てるんですね。

IKのためにオブジェクト毎に持っていた頂点バッファを、ひとつにまとめて
変更を少なくしたり出来ちゃうわけですか。これは便利だ…。
いや目が覚める思いです。まことにありがとうございました!

202 名前:デフォルトの名無しさん :04/09/22 12:44:29
バッファはあればあるほどよい

この親父が権威。
ttp://www.jca.apc.org/~maki_t/waseda2-82.jpg

203 名前:デフォルトの名無しさん :04/09/22 13:58:00
あまり面白くないね。

204 名前:デフォルトの名無しさん :04/09/23 02:45:45
ATL/WTLと一緒に使うサンプルなんかありませんかね?

205 名前:デフォルトの名無しさん :04/09/23 11:36:32
ウィンドウに描画されているものを、そのまま引き伸ばすにはどうすればいいんでしょう?
(ウィンドウサイズが自由に変更できて、そのサイズに合わせて表示されるようにしたいのです)

206 名前:デフォルトの名無しさん :04/09/23 11:58:14
描画先のサイズを指定するだけ。

207 名前:デフォルトの名無しさん :04/09/23 12:27:57
>>205
チュートリアルぐらいみようじぇー

Presentのあたりを

208 名前:205 :04/09/23 13:41:42
Thanks!!

209 名前:デフォルトの名無しさん :04/09/23 17:49:27
.pic形式のファイルをLPDIRECT3DTEXTURE9型で扱えるように読み込んでくれる関数ってないですか?

210 名前:デフォルトの名無しさん :04/09/23 17:55:58
fopenとか。
読み込んだらテクスチャのフォーマットに変換すれば完了。

211 名前:デフォルトの名無しさん :04/09/23 22:04:37
GDI使ってサーフェスに直線を描きたいんですが
WM_PAINTの中でコードを書いてInvalidateRectしないと駄目ですか?
InvalidateRectは画面がちらつくからできれば使いたくないんです。

212 名前:デフォルトの名無しさん :04/09/23 22:08:18
バックグラウンドサーフェイスに描くのなら、別にちらつきなど関係ないが?

213 名前:211 :04/09/23 22:13:30
いえ、peekmessageループの中でバックグラウンドサーフェスに描いてみても
なぜか描画されないんです。
WM_PAINTの中でバックグラウンドサーフェスに描いてInvalidateRectすれば
ちらつきながらも描画されました。

214 名前:デフォルトの名無しさん :04/09/23 22:31:54
どこのDCに描いているか記せ。

215 名前:211 :04/09/23 22:38:40
HDC hdc
oss(オフスクリーンサーフェス)->GetDC(&hdc)
こんな感じです。

216 名前:デフォルトの名無しさん :04/09/23 22:44:52
GdiFlushしてる?

217 名前:デフォルトの名無しさん :04/09/23 23:07:41
WM_PAINTの中で
BeginPaint->Blt(hdc,...oss,...);->EndPaint
他は好きなところでossに書けばいいだけじゃ?

218 名前:デフォルトの名無しさん :04/09/24 17:47:12
いつのまにかMSのサイトからDirectX7.0日本語のヘルプファイルが消されてしまいました。
DirectDrawだけ使いたいのに困ってしまう。
googleで探しても見つからない。どこかにミラーしてありませんでしょうか。


219 名前:デフォルトの名無しさん :04/09/24 19:27:50
>>213
InvalidateRectの3つめの引数の
TRUEとFALSEを入れ替えてみろ。


220 名前:デフォルトの名無しさん :04/09/24 22:45:17
すんません、助けてください。
DirectXではポリゴンアニメフォーマットとして
Xファイルが対応している事は解るのですが、
そのXファイル作成方法がどーしてもわかりません。

LW7.5でアニメーション作成してLWS2X.exeでxファイルに
変換しようとしたのですが、Ver7.5には対応しておらず、
オブジェクトと共にVer5として出力して変換させると
Xファイルに変換はするのですが、まったくアニメーションしません。

途方にくれて2週間・・・・どうかヒントだけでも教えてくださいませ。
_| ̄|○

221 名前:デフォルトの名無しさん :04/09/24 22:52:44
別にDirectXがXファイルに対応しているわけではない。

222 名前:デフォルトの名無しさん :04/09/25 00:30:38
>>220
割れでも使ってるのか?
LW7.5用のXfileエクスポータープラグインは無料でD-STROMのサイトでDL出来るが…

223 名前:220 :04/09/25 11:22:25
無事解決できました。
感謝いたします。
m(_ _)m

224 名前:デフォルトの名無しさん :04/09/26 00:44:46
アセンボラって
覚えたほうふあいいですか。

225 名前:デフォルトの名無しさん :04/09/26 05:05:47
>>224
何がしたいかによる
以上

226 名前:デフォルトの名無しさん :04/09/26 09:20:52
3Dグラフィコにはアセンブラ必須だろ

MFC使ってノホホンと組んで
「別に遅くなってもいーや」とか
ハナクソほじりながら言える分野じゃない

227 名前:デフォルトの名無しさん :04/09/26 09:26:33
必須じゃねーよタコ。シェーダ以外でアセンブラを使ってる方が稀だ。

228 名前:デフォルトの名無しさん :04/09/26 13:57:51
レベルによるだろ。理解出来ない、気が付かない奴は知らないだろ。

例えばD3DX系の関数は内部でSSEで最適化されているとか。
行列x行列なんてモロにアセンブラでオプティマイズ必須だろ。
自分で行列型なりクラスなり作っても、一番簡単な高速化はアセンブラだし。

演算子オーバーロードして
matrix = matrix * matrix;
なんて速度を意識してない奴だけ、
そりゃアセンブラなんて必須じゃないし、何故必要かも理解も出来ないレベルだろうね。

229 名前:デフォルトの名無しさん :04/09/26 14:03:21
行列*行列は頂点*行列に比べると圧倒的に数が少なく、
全体に与える影響など極微量なのだが、
それが理解できていない奴がこういう勘違い発言をしてしまう。

230 名前:デフォルトの名無しさん :04/09/26 14:15:55
ま、少なくとも日本のゲームには無いな

231 名前:デフォルトの名無しさん :04/09/26 14:26:01
このスレには日本で発売されたゲーム全てのソースを、
一つ残らず見たお方がいます。

232 名前:デフォルトの名無しさん :04/09/26 14:40:16
それで全部書けりゃ一番いいことは間違いないわけだ

実際DX8までは全員これでなきゃシェーダ書けなかったわけだし
シェーダに限らずアセンブラで全部できればそれが一番いい

233 名前:デフォルトの名無しさん :04/09/26 14:59:37
>>229
スゲー頭悪いね…
アセンブラを使うってのは頂点*行列でも同じ意味だろ?

行列*行列はアセンブラ使って
頂点*行列は使わないってか?

234 名前:デフォルトの名無しさん :04/09/26 15:06:37
>頂点*行列は使わないってか?
Direct3Dでまともにプログラムを作ったことがない人間だということが、
この発言で証明されてしまったわけだが

235 名前:デフォルトの名無しさん :04/09/26 15:17:57
>>233はきっとDirectXには頼らず、自前でソフトウェアレンダラを作ったのですよ。

236 名前:デフォルトの名無しさん :04/09/26 15:27:11
算術ライブラリ程度作った事があれば、
オペレーター演算子計算の中身と、関数化した違いは分るだろ。

D3DX系のクラスのヘッダーは見れる訳だし、
HELPにもD3DX算術計算は内部でSSEに最適化した処理を持っていると(アライメントした型を使うが)
記述されている。

237 名前:デフォルトの名無しさん :04/09/26 15:28:29
つまんねーよオマエラ
もっとマシな話をしろや

238 名前:デフォルトの名無しさん :04/09/26 15:30:30
>>234
国語の力を身に付けてください。

>行列*行列はアセンブラ使って
>頂点*行列は使わないってか?

>>頂点*行列は使わないってか?
>Direct3Dでまともにプログラムを作ったことがない人間だということが、
>この発言で証明されてしまったわけだが

頂点*行列にかかってくる使わないかどうかの物は、アセンブラであって
頂点*行列自体を使うかどうかではありません。





239 名前:デフォルトの名無しさん :04/09/26 15:35:11
>>234
>>頂点*行列は使わないってか?
>Direct3Dでまともにプログラムを作ったことがない人間だということが、
>この発言で証明されてしまったわけだが

D3DX使わないと、まともにDirect3Dでプログラム組めない人間だということが、
この発言で証明されてしまったわけだが



240 名前:デフォルトの名無しさん :04/09/26 15:36:27


行列*行列は(では)アセンブラ使って
頂点*行列は(では)(アセンブラを)使わないってか?




241 名前:デフォルトの名無しさん :04/09/26 15:46:42
>>238
>行列*行列は頂点*行列に比べると圧倒的に数が少なく、
最も計算量の多い頂点*行列はDirectXを使う限り、そちら側で行われる。
アセンブラで最適化する余地はほとんど残されていない。
にもかかわらずその反論が、
>行列*行列はアセンブラ使って
>頂点*行列は使わないってか?
恥の上塗りはみっともない。

さらに致命的な墓穴、
>>>頂点*行列は使わないってか?
>>Direct3Dでまともにプログラムを作ったことがない人間だということが、
>>この発言で証明されてしまったわけだが
>D3DX使わないと、まともにDirect3Dでプログラム組めない人間だということが、
なぜそこでD3Dではなく、D3DXになるのか。
頂点*行列をDirectXに任せるのであれば、少ない例外を除けばD3DXの介入余地はない。

プログラムを組んだことが無いどころか、全然DirectXを理解していないだろう?

242 名前:デフォルトの名無しさん :04/09/26 15:52:49
>>241
D3DXはDirect3Dとは別物。
vectorクラスやmatrixクラスの演算子のオーバーロードによる計算は
あくまでクラスの実装。

>頂点*行列をDirectXに任せるのであれば
お前が全く理解してない。



243 名前:デフォルトの名無しさん :04/09/26 15:53:34
特定の最適化を馬鹿の一つ覚えで連呼する奴は、
最適化した部分のみで計測する偏ったベンチマーク結果は出すが、
それを組み込んだ場合に、システム全体がどの程度高速化するのかは全く考えない。
実際にやってみると、誤差程度に1FPS増えたような差しか出なかったりするわけだが、
それをひた隠しにするか、それ以前にそういう実験すらしない。

244 名前:デフォルトの名無しさん :04/09/26 15:55:42
>>241
D3Dには算術系の処理なんてありませんよ??

245 名前:デフォルトの名無しさん :04/09/26 15:58:15
>>243
>特定の最適化
と・く・て・い
なんだから
さらっとやっとけ。

246 名前:デフォルトの名無しさん :04/09/26 15:58:53
>>241
どっちにも与す気はないが、234は確かに読解力無いよ

D3DXMATRIXのmatrix * matrixは、最適化されてないのかね

247 名前:デフォルトの名無しさん :04/09/26 16:04:29
>>244
トランスフォーム済みにでもしない限り、
D3D側がHALやソフトエミュで頂点*行列を行うわけだが。

248 名前:デフォルトの名無しさん :04/09/26 16:05:08
>>246
241様はD3DX使わずに、
D3Dの方で
vector * matrix が出来ると発言なさってます。

249 名前:デフォルトの名無しさん :04/09/26 16:07:23
つまりD3D側で頂点*行列が出来ないと思っていたわけか。
ならアセンブラアセンブラと連呼するのも納得がいった。
元から何も分かってないだけじゃん。

250 名前:デフォルトの名無しさん :04/09/26 16:07:35
>>247
ハードウェアT&Lと激しく混同なさってますyo...


■過去ログ置き場に戻る■ 1- 次250 最新50
DAT2HTML 0.33f Converted.