くだすれDirectX(超初心者用) part.3at TECH
くだすれDirectX(超初心者用) part.3 - 暇つぶし2ch1:デフォルトの名無しさん
07/10/29 06:05:00
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
DirectX使いが優しくコメントを返しますが、
お礼はDirectXの布教と初心者の救済をお願いします。

DirectX Home Page
URLリンク(www.microsoft.com)

前スレ
スレリンク(tech板)

2:デフォルトの名無しさん
07/10/29 07:35:52
2

3:デフォルトの名無しさん
07/10/29 07:48:29
前スレ終わりの奴らは、次スレも立ってないのに平気で埋め立てるなよ。

4:デフォルトの名無しさん
07/10/29 09:42:43
まあ別に困るまいよ

5:デフォルトの名無しさん
07/10/29 12:57:46
超初心者なので、変なことをいっていたらすみません。
DirectXSDKのMeshViewerだけを入手したいんですが、どうしたらよいですか?
私がダウンロードしたSDKには付いていなかったのですが・・。


6:デフォルトの名無しさん
07/10/29 13:07:35
どれをダウンロードしたんだ?

7:デフォルトの名無しさん
07/10/29 14:26:32
>>6
February2007です。

8:デフォルトの名無しさん
07/10/29 15:17:34
binに入っている別プログラムで代用できるがそれじゃダメなのか?

9:デフォルトの名無しさん
07/10/29 15:26:21
>>8
Xファイルのバイナリ圧縮をしたいんですが・・。

10:デフォルトの名無しさん
07/10/29 16:35:38
IDirectXFileでファイルを読み込んでバイナリ圧縮を指定してそのまま保存。
データを加工するわけではないので簡単に書ける。

11:デフォルトの名無しさん
07/10/29 20:23:23
環境はVisualStudio2005のVisualC++、
SDKとしてwin32API&DirectXで
アプリケーションを作ったんですが、
このアプリケーションをWebに対応させることって可能ですか?

Web上でこのアプリケーションを起動できるような簡単な方法ってありますか?
できれば、アプリ自体のソースはあまり書き換えたくないんですが・・・。

12:デフォルトの名無しさん
07/10/29 21:11:34
win2kで使えるSDKの最新版はどれでしょう

13:デフォルトの名無しさん
07/10/29 21:25:00
>>11
WEB上で起動の意味がわからん。
Flashみたいにブラウザでプレイできるゲームとか考えてるわけじゃあるまいな。

14:デフォルトの名無しさん
07/10/29 21:34:26
ダウンロードから実行まで勝手に行うActiveXを作って、
セキュリティーホールの塊のようなそのコンポーネントを利用者に組み込ませる。

15:デフォルトの名無しさん
07/10/30 04:41:12
VisualStudioでのシェーダファイルのシンタックスハイライトする設定がどこか、だれかご存知ないですか?
3台のPCにVS2008とVS2005入れてるんですが2008は全滅で、
2005は一台だけなぜかC++っぽくハイライトされるのですが…
特にアドインとか入れたわけでもないのに。

16:デフォルトの名無しさん
07/10/30 08:02:21
ポリゴンのフチがギザギザなのでアンチェリかけたいんですけど、お手軽そうな方法として
大きいテクスチャに描画してそれをバイリニアとかで縮小して画面に描画ってのを考えたんですけど、
やっぱりピクセルシェーダでやったほうが綺麗&高速だったりするんでしょうか?

17:デフォルトの名無しさん
07/10/30 09:54:09
やってみればどっちが早いかわかる。

18:デフォルトの名無しさん
07/10/31 14:25:59
新スレたってたのか
正直もういらんかと思ったが

19:デフォルトの名無しさん
07/11/04 03:29:20
Direct3Dに深入りしたくなかったのでD3DXSprite等を使ってプログラムを組んでいる者です。

取り敢えず、任意の画像データを回転・拡縮させつつ指定した座標に表示させるところまでは出来たのですが、
ヒットテストをしようとしたところで何をどうすればよいのか判らず途方に暮れています(><

どなたかヒントを下さい・・・・

20:デフォルトの名無しさん
07/11/04 03:39:13
それはDirectX関係なくね

21:デフォルトの名無しさん
07/11/04 03:58:17
>>20
即レスありがとうございます。

そういう問題なのですね・・・。なんとなく自分で思い付いたのは、表示しないサーフェイスに
単色で塗りつぶしたスプライトをスプライト毎に色を変えて描画し、変換したマウス座標でピックして判断する、
という方法なのですが馬鹿馬鹿しく重い気がして・・・というか普通そんなことしないのでしょうか。

22:デフォルトの名無しさん
07/11/04 12:28:39
しない

23:デフォルトの名無しさん
07/11/04 14:42:00
Dirext3Dに深入りしたくないなら、MDXやWPF、XNAやればいいだろうw

24:デフォルトの名無しさん
07/11/04 15:04:43
もうWinGLでいいだろ

25:デフォルトの名無しさん
07/11/04 16:40:13
>>21は何が言いたいんだ?
ピクセル単位で当たり判定とりたいとかそういう話?

26:デフォルトの名無しさん
07/11/04 17:49:36
むおお用語間違ってました、ヒットテストじゃないですorz
オンカーソルというかマウスカーソルが載ってるスプライトを知りたいのです。

回転拡縮の演算をスプライトのRECTに対して行うだけだと
スプライトの透明な部分がヒットするのを除外出来ないので
どうすればいいのかと・・・・

27:デフォルトの名無しさん
07/11/04 17:57:15
メモリー上に自分で展開して確認。
最初に大まかな座標をチェックしてそれから細かく調べるようにすれば、それほど負荷はかからない。

28:デフォルトの名無しさん
07/11/04 18:00:05
その他、元イメージまでの位置を逆算して、そのポイントの状態を調べることも可能。
計算とイメージの状態を調べるだけだから、Direct3Dに深入りすることもない。

29:デフォルトの名無しさん
07/11/04 18:47:37
まぁ正確な判定が必須出ない限りは普通は図形の組み合わせで近似するよな。

30:デフォルトの名無しさん
07/11/04 20:39:08
そかー、スプライト毎にしてる座標変換の逆変換をマウス座標に掛けて
それぞれの元データ上のドットをチェックすればいいのですね。
そのくらいさっくり気付けよ>漏れ

どうもありがとうございました~

31:デフォルトの名無しさん
07/11/11 00:18:12
ウィンドウモードでDrawGraphを使っている状態で
実行ウインドウを動かすと画像が画面に残ってしまうんですが、
何か回避する方法はありますか?

32:デフォルトの名無しさん
07/11/11 00:24:17
それはもしやDXライブラリの話か?

33:デフォルトの名無しさん
07/11/11 00:47:56
実行ウインドウを動かし終わったら、再描画おこなうようにすれば?

34:デフォルトの名無しさん
07/11/11 11:34:28
Visual C++ 2005 Express Editonで、初心者講座のサンプルプログラムをビルドしてみたんですが、

>error LNK2019: 未解決の外部シンボル _Direct3DCreate9@4 が
>関数 "long __cdecl InitDX9(void)" (?InitDX9@@YAJXZ) で参照されました。

上記のようなエラーが出てしまいました。
一体なにが原因でしょうか?(以下設定)

プロジェクトのプロパティ → 追加のライブラリディレクトリ
d3d9.lib;
d3dx9.lib;
dxguid.lib;
winmm.lib;
ddraw.lib

インクルードパス
C:\Program Files\Microsoft Platform SDK\Include
C:\Program Files\Microsoft DirectX SDK (November 2007)\Include
$(VCInstallDir)include
$(VCInstallDir)PlatformSDK\include
$(FrameworkSDKDir)include

ライブラリパス
C:\Program Files\Microsoft DirectX SDK (November 2007)\Lib\x86
C:\Program Files\Microsoft Platform SDK\Lib
$(VCInstallDir)lib
$(VCInstallDir)PlatformSDK\lib
$(FrameworkSDKDir)lib
$(VSInstallDir)
$(VSInstallDir)lib

35:デフォルトの名無しさん
07/11/11 12:02:26
それなんの話・・・?
どっかのライブラリなら専用スレいったほうがいいぞ

36:34
07/11/11 12:05:08
どっかのライブラリではないです

37:デフォルトの名無しさん
07/11/11 14:07:39
>>34
「追加のライブラリディレクトリ」じゃ駄目だろw
そこは.libが入っているディレクトリを指定する欄だぞ。

38:34
07/11/11 14:53:02
>>37
リンカ→入力→追加の依存ファイル に入れたら解決しました…
お騒がせしました

39:デフォルトの名無しさん
07/11/13 15:28:33
URLリンク(www.vector.co.jp)
このゲームがしたいのですが、どうやったらDirectX8をDLできるのかが
わからないです。詳しい位置をどなたか教えてください。
大まかな位置はわかってるんですが、英語が読めないもので・・・

40:デフォルトの名無しさん
07/11/13 20:20:56
板違い。
PC初心者板に行って聞け。

41:デフォルトの名無しさん
07/11/14 14:45:24
LoadMeshFromX()みたいな関数で、VRMLのファイルを読み込んで
DirectXのメッシュに相当する部分をロードしてくれるライブラリを
だれか知りませんか? VRMLのファイルを解析して自前で
やるしかないでしょうか?

42:デフォルトの名無しさん
07/11/14 14:46:40
すみません。>>41は、LoadMeshFromX()ではなく、正確にはD3DXLoadMeshFromX()です。

43:デフォルトの名無しさん
07/11/14 16:10:45
VRMLをXファイルに変換するツール探した方が早いんじゃね?

44:デフォルトの名無しさん
07/11/14 16:57:47
>>43
レスをありがとうございます。
そういうソフトはすでにいくつか入手して試しております。
ただ、現在私が開発中のビューワー内部に組み込みたいと思っているのです。
現状だと、読み込み時に別のソフトを起動し、ユーザーに変換してもらってから、
その変換後のXファイルを読み込むという手順を踏まなければならず、
できれば普通のXファイル読み込みと同様に読み込みなりインポートなりを
したいと考えているのです。

45:デフォルトの名無しさん
07/11/14 19:06:07
テキストデータなんだから普通に読めばいいだろ

46:デフォルトの名無しさん
07/11/14 19:40:19
URLリンク(www.google.co.jp)

47:デフォルトの名無しさん
07/11/14 23:51:20
みなさんありがとうございました。
VRMLを読み組んでメッシュにするルーティンを自力でつくることにします。

48:デフォルトの名無しさん
07/11/18 22:48:27
Meshクラスってマテリアルとテクスチャを格納してくれないですよね?
あれって何か理由があってそうなってるんですか?

49:デフォルトの名無しさん
07/11/19 00:04:15
そもそもそんなクラスは無い。

50:48
07/11/19 19:45:46
あら、てっきりMeshってクラスが存在するのかと思ってました。
URLリンク(msdn.microsoft.com)
↑これはMeshクラスではないんでしょうか?

51:デフォルトの名無しさん
07/11/19 22:11:33
VBならそういえ・・・
何も前提なしなら普通にCで考えるだろjk

52:デフォルトの名無しさん
07/11/19 23:45:15
ごめんなさい('A`
ちなみにVBじゃなくてC#です

53:デフォルトの名無しさん
07/11/24 11:12:17
DirectXの更新のやり方教えてくれる?ぢぃぐだぐひらいても分かりません。

たぶんバージョンは8だったはず

54:デフォルトの名無しさん
07/11/24 11:40:14
今のSDKをアンインストールして最新版をDL、SDKは複数入れるなってMSが言ってた

55:デフォルトの名無しさん
07/11/24 12:09:35
DirectX9なら最初から順番に入れたほうがサンプル全部インストールされて良いんだけどな

56:デフォルトの名無しさん
07/11/24 12:30:20
54・55 ありがとう

DirectXのホームページにいきますね。
旨くいったらいいな。

57:デフォルトの名無しさん
07/11/25 15:03:00
DirectXを扱うにあたってコンパイラなど開発環境は何がおすすめでしょうか?
なるべくフリーで一般的に使われているものが知りたいです。

58:デフォルトの名無しさん
07/11/25 15:47:45
>>57
Visual C++ 2008 Express Edition

59:デフォルトの名無しさん
07/11/25 15:53:49
今ならまだ2005だろ・・・。

60:デフォルトの名無しさん
07/11/25 16:20:35
>>58-59
ありがとうございます。
ためしにVisual C++2005 Express Edition
で開発してみます。

61:デフォルトの名無しさん
07/11/26 14:10:17
2008はWindows2000では使えないのか・・・
開発用にずっと2000使ってきたけどいよいよお別れです><

62:デフォルトの名無しさん
07/11/26 16:38:08
ポリゴンにドット絵(.bmp)を貼ったんですが、ぼけぼけになってしまいました。
しっかりギザギザにするにはどうすればいいですか?
DirectX9です。

63:デフォルトの名無しさん
07/11/26 17:40:33
まずはD3DXを使わないで画像を張るところからやってみるといい。

64:デフォルトの名無しさん
07/11/26 18:24:35
あるがとうございますやってみます。

65:デフォルトの名無しさん
07/11/26 22:08:10
include ファイルを開けません。'd3d9.h': No such file or directory
どうすりゃいい?


66:デフォルトの名無しさん
07/11/26 22:18:56
パスを通せ

67:デフォルトの名無しさん
07/11/26 22:30:50
>>66
教えてください
ツール→オプション→Project→VC++ディレクトリ

68:デフォルトの名無しさん
07/11/26 22:44:52
URLリンク(p.pita.st)

69:デフォルトの名無しさん
07/11/27 20:31:21
>>63
D3DXCreateTextureなんちゃらExでぼけぼけ直せるじゃないですか
ひどいですよ…

70:デフォルトの名無しさん
07/11/27 21:10:42
自分でやればそもそも余計なフィルターがかかることもなければリサイズされることもない。
動作原理も理解できる。
何か問題でもあるのか?

71:デフォルトの名無しさん
07/11/28 21:20:59
今はDXを使うために設定を↓を見ながらしているのですが、
URLリンク(homepage2.nifty.com)
このサイトの4の、

4.プロジェクトへDXライブラリファイルを追加
これでプロジェクトのセッティングは完了しました。
次に行うべき作業は新しく生成されたプロジェクトのフォルダにDXライブラリの ソースファイルをコピーし、更にプロジェクトに追加する事です。
① 生成する時に指定したフォルダにDXライブラリのファイル
   『DxLib.lib DxUseCLib.lib DxLib.h DxDirectX.h』
     及び以下のファイル
   『zlib.lib libpng.lib libjpeg.lib ogg_static.lib
   vorbis_static.lib vorbisfile_static.lib 』
     をコピーします。ファイルはDXライブラリを解凍したフォルダの中の
    『プロジェクトに追加すべきファイル_VC用』という長いフォルダ名のフォルダに
    すべて入っています。
  
ここでつまづいています。コピーしようとして、DXLib.libを開こうとしたのですが
「このファイルを開けません」と出るので、どうやって進めばいいのか分かりません。
どうしたらいいんでしょうか・・


72:デフォルトの名無しさん
07/11/28 21:35:25
コピーするのになぜ開く必要がある?
エクスプローラでそのファイルを目的のフォルダにCTRL押しながらドラッグ&ドロップすればいい

73:デフォルトの名無しさん
07/11/28 21:56:47
DX、ってのはDirectXのことじゃなくてDXライブラリのことか・・・

74:デフォルトの名無しさん
07/11/29 00:13:52
とあるゲームをやろうとすると「DirectXの初期化に失敗しました」って言うのが出てきます
vistaなので再インストールできないのですが何が原因か分かりますか?

75:デフォルトの名無しさん
07/11/29 00:23:19
ちゃんとタイトルから書け

76:デフォルトの名無しさん
07/11/29 00:30:38
>>74
そのゲームの開発元に聞く

77:デフォルトの名無しさん
07/11/29 00:31:57
「はぴねす!りらっくす」です
友人いわくvistaでも動くそうなんですが・・・

78:デフォルトの名無しさん
07/11/29 00:37:21
エロゲ板逝け

79:デフォルトの名無しさん
07/11/30 03:54:59
DirectX9SDKをDLしようと思っているのですがたくさんあってどれをDLしたらいいのか分かりません
どれをDLすればいいのでしょうか?

80:デフォルトの名無しさん
07/11/30 03:58:25
一番新しい奴でいいよ
今なら
URLリンク(www.microsoft.com)
からdownload

81:デフォルトの名無しさん
07/11/30 04:00:45
2004Oct超お勧め

D3DXランタイムDLL不要、日本語マニュ有の名作

82:デフォルトの名無しさん
07/11/30 04:05:15
名作てww
2004octよく聞くのは日本語ヘルプがあるからか

83:デフォルトの名無しさん
07/11/30 04:13:57
>>80
これだけでいいんですか?

84:デフォルトの名無しさん
07/11/30 04:16:41
どうでもいいけど>1のリンクはこっちのがいいと思うんだ
URLリンク(www.microsoft.com)

85:デフォルトの名無しさん
07/11/30 04:21:10
>>80
あれだけでいいみたいですね
本当にありがとうございました

86:デフォルトの名無しさん
07/11/30 09:33:18
>>82
・日本語マニュアルがある
・VC++6で利用できる
・D3DXがDLLじゃない
・Windows9xでも動く

この辺だな。

87:デフォルトの名無しさん
07/11/30 19:16:32
>>86
ん、その条件だと2004Decがベストな気が

88:デフォルトの名無しさん
07/11/30 19:54:04
2004Oct VC6が使えるラストVer
2004Dec Win2Kが使えるラストVer
だった希ガス

89:デフォルトの名無しさん
07/11/30 20:53:07
Dec2004だと日本語ヘルプがない、ってことかな?
ほとんど変わらないような気もするけど

90:デフォルトの名無しさん
07/11/30 21:42:18
Dec2004だとVC6が使えん。
2005EEがある今では関係ないかも試練が。

91:デフォルトの名無しさん
07/11/30 22:07:27
DirectX8が使えるのが2004Octまでじゃなかった?
俺の勘違いだっけか


92:デフォルトの名無しさん
07/12/01 08:50:47
> 2004Dec Win2Kが使えるラストVer
あくまでセットアップですんなり入れられるかだけで
付属ツールが使えないとか、実用に問題あったっけ?

93:デフォルトの名無しさん
07/12/01 17:26:59
>>91
DirectX8は最新のでも使えるよ。現に俺がたまに使っている。
D3DXは使えないが。

94:デフォルトの名無しさん
07/12/01 18:06:03
DirectXSDKって常に最新バージョンにしたほうがいいの?
去年のDecemberを入れてからそのままなのだが。

95:デフォルトの名無しさん
07/12/01 18:59:19
>>93
ありゃ、最新のNov2007のリリースノートには、
DirectX8とかMDX関連のコンポーネントは全て取り除かれました、と書いてあるんだが…

Nov2007入れてないから知らないんだけど、まだ使えるの?

96:デフォルトの名無しさん
07/12/01 21:40:48
>>95
ありゃ、ほんとだ。
そういえば、俺はVS2003使ってるから、Nov2007は入れてないんだった。

97:デフォルトの名無しさん
07/12/01 21:52:19
>>93
ありゃ、Nov2007のリリースノートによると、
VS2003に対応しなくなるのはMar2008 からで、
Nov2007はまだVS2003に対応してるはずなんだが…


98:デフォルトの名無しさん
07/12/02 18:12:25
Direct3Dのデバイスを複数作成するような状況はありますか?
もしくは、複数作成して使用したことはありますか?

99:デフォルトの名無しさん
07/12/02 18:49:42
あるよ。Frapsだとそういう状況の場合バグるけどなw

100:デフォルトの名無しさん
07/12/03 00:49:29
SwapChainを複数作るんじゃだめなのん?

101:デフォルトの名無しさん
07/12/03 00:56:02
デバイスそのものを複数作成って相当なレアケースだろうな

102:デフォルトの名無しさん
07/12/03 01:52:22
複数のモニタに出力する場合、DirectX9以前はデバイスを複数作る必要があった気がする。

103:デフォルトの名無しさん
07/12/03 03:39:12
今でも複数のビデオカードを扱う場合は、複数のデバイスが
必要なんじゃない?俺はやったことないが。

104:98
07/12/04 00:08:23
どうもありがとうございます。

趣味でゲーム用のDirectXライブラリを作ってるのですが
デバイスの管理周りを作り直す必要があって
ふと、気になったので質問しました。

>>103
ビデオカードをからめて検索してみたらこのページにたどり着きました。
URLリンク(www.shader.jp)
自身では試していないのですが
DirectX9ならあまり複数作る必要はなさそうでした。
(私自身もDirectX9を使用しています)


105:デフォルトの名無しさん
07/12/04 00:30:55
趣味でライブラリ作成とはなかなかの茨の道・・・。
出来たらぜひ公開希望!

106:デフォルトの名無しさん
07/12/04 00:39:35
現在ロード中の画面も止まらないようマルチスレッドでロードしつつロード画面用の画像を描画しようとしています
しかしエラーが出てしまいます

このようなことを行う場合、ビデオカードにテクスチャデータなどを書き込んでいる際には描画をしないようにしなければならないのでしょうか?

107:デフォルトの名無しさん
07/12/04 00:43:05
そんなことはない。
デバイスをマルチスレッド対応で生成すればいい。

108:デフォルトの名無しさん
07/12/04 00:49:19
なんて恐ろしいことを

109:デフォルトの名無しさん
07/12/04 02:08:35
裏スレッドで画像データをロードして、最後にテクスチャを書き込むとこだけメインスレッドでやる、とか。

110:デフォルトの名無しさん
07/12/04 04:20:34
非マルチスレッドでデバイスを作ると、そのデバイスまたはデバイスから生成されたものを、
複数のスレッドから同時にアクセスするとデッドロックなど予期しない動作が起きるよ。

111:デフォルトの名無しさん
07/12/05 23:01:22
返答ありがとうございます。
やっぱり危ないことだったのですね・・・

112:デフォルトの名無しさん
07/12/08 23:07:40
DirectX ゲームグラフィックス プログラミング
URLリンク(www.amazon.co.jp)
で勉強中なのですが、初めのほうの初期化やシーンの描画のところで挫折しかかっています。
ここら辺は今理解しないといけないのでしょうか?
それとも、まだDirectXのプログラミングは早かったでしょうか?
C言語とC++の入門書をやり終えた程度です。

113:デフォルトの名無しさん
07/12/09 00:45:35
早いとかいうレベルですらないが、まあ揉まれて成長していくもんだ
とりあえず分からないまま組んでみて動けばいい

114:デフォルトの名無しさん
07/12/09 00:50:15
秀才的には教科書を最初から最後まで休まず読めば理解できる。

115:デフォルトの名無しさん
07/12/09 04:24:16
トップダウン式の学習マジお勧め。

116:デフォルトの名無しさん
07/12/15 00:11:47
dxsdk_november2007.exe (CAB)を解凍すると
dxsdk_nov2007.exe (ZIP)が出てきて。
解凍すると目当てのものが出てくるんだけど

ロシアの民芸品ですか?

117:デフォルトの名無しさん
07/12/15 00:20:38
その目当てのものも実は解凍できてそのなかにh(ry

118:デフォルトの名無しさん
07/12/15 00:46:26
MSの配布物としては平均的じゃないの?
もっと深いのあるし。

cab.exe→zip.exe→圧縮msi→zip.exe→ISO
とかあったし。

119:デフォルトの名無しさん
07/12/20 16:49:53
mpeg compass.jp
名古屋駅近辺でお話しましょう

120:デフォルトの名無しさん
08/01/05 14:48:30
質問です。
frameの初期化はどうやるんでしょうか?
newでもないようですし、分からなくて困っています。

言語はvbです

121:デフォルトの名無しさん
08/01/09 16:42:14
>>120
VBだったらここで質問するよりこっちのほうがいいよ
URLリンク(homepage1.nifty.com)

122:デフォルトの名無しさん
08/01/27 16:05:18
数年に1度程度しかWindowsアプリを作らないGDI + BitBlt厨です
GDI + BitBlt部分をDirect3Dで置き換えてみたいのですが、おすすめの
本やサイトを教えてください
2D中心で充実してると嬉しいです
現状はお勉強初めて四角のポリゴン表示まででとまってます…orz

123:デフォルトの名無しさん
08/01/27 16:07:54
>>180-190
オワタ\(^O^)/

124:デフォルトの名無しさん
08/01/27 23:33:08
>>122
DXライブラリ使えばいんじゃね

125:デフォルトの名無しさん
08/01/27 23:56:24
>>124
宣伝ですか?

126:デフォルトの名無しさん
08/01/31 17:47:28
DirectXを使っているゲームにDLLインジェクションでフックを掛けているコードを弄っているのですが、
DirectXのDrawTextメソッドをフックして書き出している文字列の取得って出来るのでしょうか?

127:デフォルトの名無しさん
08/01/31 21:34:55
インターフェイスのVMTからモジュール(DLL)内のコードのアドレスを計算して、適当なコードでフックを行う。
アセンブラコードを見ればCOMメソッドの動作の様子がわかるだろう。

まあ、実現できてもきっとがっかりすると思うよ。

128:デフォルトの名無しさん
08/02/01 14:40:41
DirectPlay8でインターフェイスを取得したいのですが、
#include <dplay8.h>
IDirectPlay8Peer *lpDirectPlay8Peer;
HRESULT hr;
hr = CoCreateInstance(CLSID_DirectPlay8Peer, NULL, CLSCTX_INPROC_SERVER,
IID_IDirectPlay8Peer, (void **)&lpDirectPlay8Peer)
if(FAILED(hr))
{//エラー処理
}
と本に書いてあるようにしているのですが、
error LNK2001: 外部シンボル "_CLSID_DirectPlay8Peer" は未解決です
error LNK2001: 外部シンボル "_IID_IDirectPlay8Peer" は未解決です
fatal error LNK1120: 外部参照 2 が未解決です。
とエラーが出て原因がわかりません。
何が原因でしょうか?

129:デフォルトの名無しさん
08/02/01 16:49:59
dxguid.libじゃねーの

130:デフォルトの名無しさん
08/02/03 11:27:20
DirectInputを勉強しています。

DirectInput8Create(hInst, DIRECTINPUT_VERSION, IID_IDirectInput8, (VOID **)&lpDinput, NULL);
の部分の IID_IDirectInput8が、
3d.obj : error LNK2019: 未解決の外部シンボル _IID_IDirectInput8A が関数 "void __
cdecl InitDInput(void)" (?InitDInput@@YAXXZ) で参照されました。
3d.exe : fatal error LNK1120: 外部参照 1 が未解決です。

となりコンパイル出来ません。何が原因か教えてください。

131:デフォルトの名無しさん
08/02/03 11:41:57
dinput8.libをリンクしてない
或いは
DIRECTINPUT_VERSIONを定義してないか
古いバージョンを指定している


132:デフォルトの名無しさん
08/02/03 11:45:12
>>131
ありがとうございます。無事コンパイルできました。

133:デフォルトの名無しさん
08/02/03 12:10:31
ガジェットの作り方?
URLリンク(www.nifty.com)


134:デフォルトの名無しさん
08/02/03 13:02:55
VC++とDirectX SDK (August 2006)でプログラムを作ったのですがDirectXで作成した
プログラムを他のPCで動作させるにはそのPCに対応するDirectXがインストール
されていればいいのでしょうか?
プログラムのリンカ(?)に設定したd3d9.libやd3dx9.libなども一緒に配布した
方がいいですか?


135:デフォルトの名無しさん
08/02/03 14:05:25
幾らなんでもlibはいらないだろう・・・・・

136:デフォルトの名無しさん
08/02/03 14:10:53
DirectX がインストールされていればいい

137:デフォルトの名無しさん
08/02/03 14:17:57
>>135-136
ありがとうございます。


138:デフォルトの名無しさん
08/02/04 11:55:22
>>129
遅くなりましたができました。
ありがとうございます。

139:デフォルトの名無しさん
08/02/06 21:14:50
VS上のデバッグボタン押して起動した時は画像が表示されないんだけど
Debugに生成されるexeを実行したときは表示されるのはそういう物なの?

設定のせいなら教えてくだし…

Visual Studio.NET 2005 Pro
DXLib 2.24a


140:デフォルトの名無しさん
08/02/06 21:30:18
画像へのパスってフルで書いてるの?

141:デフォルトの名無しさん
08/02/06 21:43:02
エスパー現る

142:デフォルトの名無しさん
08/02/06 21:49:27
つーかDXLibってちゃんと実行ファイルの場所から検索してくれないの?

143:デフォルトの名無しさん
08/02/06 22:00:59
そんな余計な仕様があったら同名ファイルがあった場合に困るだろ。
パスぐらい自己責任で設定しろよ。

144:デフォルトの名無しさん
08/02/06 22:07:27
同名ファイルがあるのがまずおかしいだろ・・・

145:デフォルトの名無しさん
08/02/06 22:28:04
気を回して余計な機能をつけまくった結果の代表例、MS-Office。

146:デフォルトの名無しさん
08/02/06 23:36:27
>>140
そういうことですか…
Debugの中にしか画像入れてなかった
slnのある場所に入れたら出た… thx


147:デフォルトの名無しさん
08/02/07 00:37:27
画像をコピーするよりもデバッグ実行時のカレントディレクトリを
変えた方がいいと思うが。

148:デフォルトの名無しさん
08/02/07 10:39:49
directplayで通信をしたいのですが、ピアがConnectでセッションへ繋ごうとすると、プログラムが1~2分固まって接続に失敗します。
問題の箇所を探すと、ポートの設定には成功しているのですが、試しにポートの設定の箇所を消して実行すると接続には失敗するのですが、固まる事はなくなりました。
これはポートの設定がおかしくて通信時に悪さをしているのか、それともポートは関係なく何処かで設定を間違っているのでしょうか?

ポート部です。
hr = prgHostAddr->AddComponent(DPNA_KEY_PORT,sizeof(dwDestPort),DPNA_DATATYPE_DWORD);

Connect部です。
hr = lpDirectPlay8Peer->Connect(&dpnAppDesc2,prgHostAddr,prgDeviceInfo2,NULL,NULL,NULL,0,NULL,NULL.NULL,DPNCONNECT_OKTOQUERYFORADDRESSING | DPNCONNECT_SYNC);

通信は同一のマシンで試しています。

149:デフォルトの名無しさん
08/02/07 21:07:52
DxLibのPad系ってDUALSHOCK2でもいけるよね?
Windowsには認識されてるのに取得できねええええ

150:デフォルトの名無しさん
08/02/08 09:27:43
DirectX SDKの最新版で9の機能って使えますか?

151:デフォルトの名無しさん
08/02/08 09:30:02
あたりまえだ

152:デフォルトの名無しさん
08/02/08 09:33:57
>>151
どもどもありがとうございます

153:148
08/02/11 16:04:33
どなたか分かりませんか><

154:デフォルトの名無しさん
08/02/11 17:17:07
もっと(開発環境とか)詳しく書かなきゃ誰も答えられなくね?

155:デフォルトの名無しさん
08/02/11 17:25:45
DirectPlayはMS自体が使うのをやめろサポートしないといっている。
それでも使うのなら自己責任で問題が出ても自分で解決しろ。
出来ないのなら使うのをやめろ。

156:デフォルトの名無しさん
08/02/11 19:29:51
しかし二階へあげといて梯子をはずすとか酷いよな
手頃な代替ライブラリっていうと・・・今ならboost::asio辺りかね

157:デフォルトの名無しさん
08/02/12 01:37:03
D3DXFONTが遅いと言うのは
最初に一回だけDrawTextで描いて絵として貼っても遅いですか?

158:デフォルトの名無しさん
08/02/12 13:08:10
それなら自分でGDIで描いてテクスチャに書きこんだ方が楽で速いんじゃね?

159:デフォルトの名無しさん
08/02/12 15:16:48
よく自作板でCore 2 Duoでゲームをしているとマウスが一瞬固まる、プチフリーズと言っているようですが
これってキューイングの所為で起こっているんじゃないのかなぁ、とか
要するにGPUの処理が追いついていないことになりますけど、どうなんでしょうかね?

初心者スレの方ROMっててふとそんなことを思ったのですが、あっちで蒸し返すのもなんなので
独り言のようですみません

160:デフォルトの名無しさん
08/02/12 16:10:43
だからってこっちに持ってこなくても。
胸のうちにしまっておけ。

161:デフォルトの名無しさん
08/02/12 18:04:23
>>160
すんません、なんか自分の中で結びついてしまったもので・・・

162:148
08/02/14 23:10:58
ダイレクトプレイでSendToでデータ送ったらプログラムがエラーが出て終わってしまいます。
ホスト→ピアは大丈夫なんですが、ピア→ホストだとエラーが出るのですが原因は何でしょうか?


163:デフォルトの名無しさん
08/02/14 23:20:32
>>162
>>155

164:デフォルトの名無しさん
08/02/15 18:03:11
ダイレクトプレイのサポートを止めてなに推奨してるの?

165:デフォルトの名無しさん
08/02/15 18:23:29
普通にWinsockじゃ?

166:デフォルトの名無しさん
08/02/15 20:05:18
作って捨てて~作って捨てて~使って捨てたら使えなーい

167:デフォルトの名無しさん
08/02/15 21:46:43
実際問題WinSockがあれば必要なことは全部出来るしなー

168:デフォルトの名無しさん
08/02/15 22:17:54
DirectPlayサポートしないってマジ話だったの?
情報源は?

169:デフォルトの名無しさん
08/02/15 22:33:44
Microsoft

170:デフォルトの名無しさん
08/02/15 22:35:32
>>168
SDKドキュメントの最初のページを 見 て ご ら ん

171:デフォルトの名無しさん
08/02/15 22:42:21
すみません
DirectX SDKのバージョン8.1ってどこで落とせるのでしょうか?
どうしても必要になってしまいました

172:デフォルトの名無しさん
08/02/15 22:51:31
ダウンロードセンタにゃもう無いっぽいね。
9.0bあたりなら8.1の開発として使えるとは思うけど?

173:デフォルトの名無しさん
08/02/15 22:52:35
相当昔の話だぞ・・・

174:デフォルトの名無しさん
08/02/15 23:01:11
dinput.libが必要なのですが
最新版にには入ってないらしくて

9.0b落としてみます

175:デフォルトの名無しさん
08/02/15 23:01:23
>>170
マジだった
っていうか最新のSDKには入ってすらいねぇみたいだ

176:デフォルトの名無しさん
08/02/15 23:08:15
サポートされなくなったものは、Vistaの64bit版ではとことんdllが入ってない

177:デフォルトの名無しさん
08/02/15 23:19:43
すみません
9.0bだと駄目みたいでした

178:デフォルトの名無しさん
08/02/15 23:27:37
>>177
ん? dinput.libが目的なら、手元にあるOctober2004にすら入ってるんだから
9.0bで駄目なわけないんだが、本当に入ってない?

179:デフォルトの名無しさん
08/02/15 23:28:04
普通にダウンロードできるだろ。
2007年あたりのSDKにさえ、dinput.lib は入っている。

180:デフォルトの名無しさん
08/02/16 03:42:43
>>165
㌧クス

181:デフォルトの名無しさん
08/02/16 09:06:04
逆に考えると、Vistaの64bit版上で開発すれば将来互換性でトラブる事が少なくなるわけだな。

182:デフォルトの名無しさん
08/02/16 23:34:37
将来を見据えて研究しておくのはその通りだと思うけど
ユーザが移行するまではまだまだ時間がかかるから
現時点で何かをリリースするのは得策ではないかもしれんね
芸術家じゃあるまいし死後その功績を認められても・・・

183:デフォルトの名無しさん
08/02/16 23:42:09
現在新たに開発しているのなら、わざわざサポートが終わった物を使う理由はない。

184:デフォルトの名無しさん
08/02/19 21:44:09
メッシュを回転させつつ移動させたいんですが、

D3DXMatrixRotationX ( &mat , time/1000 );
D3DXMatrixTranslation ( &mat , x , y , z );
SetTransform ( D3DTS_WORLD , &mat );

こうするとD3DXMatrixTranslationは実行されるのにD3DXMatrixRotationXの結果が飛ばされるんですが、
両方実行させるにはどうしたらいいですか?
ちなみにD3DXMatrixTranslationをコメントアウトすればD3DXMatrixRotationXは実行されます。

185:デフォルトの名無しさん
08/02/19 21:49:37
乗算しろよ

186:デフォルトの名無しさん
08/02/19 22:09:10
int n;
n = 3;
n = 5;
でnが8になりません><って言ってるのと同じ

D3DXMATRIX mat, mat1, mat2;
D3DXMatrixRotationX ( &mat1 , time/1000 );
D3DXMatrixTranslation ( &mat2 , x , y , z );
mat = mat1 * mat2; // 順番に注意
SetTransform ( D3DTS_WORLD , &mat );

187:184
08/02/19 22:26:43
>>185-186
理解できました。詳しい説明ありがとうございます。

188:デフォルトの名無しさん
08/02/25 10:09:02
頂点シェーダが使用できないとき下のコードは動かないのですが
頂点シューダを使わないとするとどこを変更すればよいですか?

g_pd3dDevice->SetRenderState(D3DRS_ZWRITEENABLE, TRUE);
g_pd3dDevice->SetRenderState(D3DRS_COLORVERTEX, TRUE);
g_pd3dDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);

g_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
g_pd3dDevice->SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_LINEAR);
g_pd3dDevice->SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR);
g_pd3dDevice->SetTextureStageState(0, D3DTSS_ADDRESSU, D3DTADDRESS_WRAP);
g_pd3dDevice->SetTextureStageState(0, D3DTSS_ADDRESSV, D3DTADDRESS_WRAP);

g_pd3dDevice->SetTexture(0, pTexture);

g_pd3dDevice->SetVertexShader(TestVertexShader);
g_pd3dDevice->SetPixelShader(TestPixelShader);
g_pd3dDevice->SetStreamSource(0, pVertices ,
sizeof(D3DCTRL_CUSTOM_VERTEX_INFO));
g_pd3dDevice->SetIndices(pIndex , 0);
g_pd3dDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0,
VerCou, 0, PolyCou);

189:デフォルトの名無しさん
08/02/25 14:03:37
>>188
その短いソースの中で「Shader」で検索してみるといいよ。

190:デフォルトの名無しさん
08/02/26 21:06:02
>>189 さんくす

191:デフォルトの名無しさん
08/02/28 03:45:20
ウィンドウモードで、ウィンドウの幅と高さを変更しても
ポリゴンの表示比率が変わらないようにする方法ありますか?


192:デフォルトの名無しさん
08/02/28 08:32:34
>>190
バックバッファを作り直してカメラのアスペクト比を変える

193:191
08/02/29 03:02:36
すいません、質問の仕方がまちがえていました。
ウィンドウモードでウィンドウサイズを変更しても
ポリゴンの縦と横の長さを一定のまま表示したいのです。
画面上でウィンドウ最大時縦5cm横5cmの正方形を
ウィンドウを縮小しても縦5cm横5cmにする方法です。
ウィンドウサイズの変更のたびに拡大縮小させるしか方法ありませんか?

194:デフォルトの名無しさん
08/02/29 12:34:59
常に同じ画各になるようにカメラ下げればいいんじゃね?

195:デフォルトの名無しさん
08/02/29 15:37:00
もしかして: 画角

196:デフォルトの名無しさん
08/03/03 21:43:25
どうもDirectX超初心者以前にSDKのインストールができません。
dxsdk_november2007.exe をダウンロードしてURLリンク(tech.ckme.co.jp)
のページをみながらインストールをしようとしたのですが、Extracting...
との表示の後、OS(XPSP2)が不安定になってフリーズしてしまいます。
そもそも上のページの一番最初の画像すら出てきません。VC++2008も2005も
普通にインストールできるのですがSDKだけができません。
ファイルが破損しているのかもしれないので何度かダウンロードしなおしても
変化はありません。原因としては何が考えられるのでしょうか。


197:デフォルトの名無しさん
08/03/03 22:02:20
>>196
C:ドライブの空き不足とかそもそもDirectXがまともに動かないハード&デバドラ環境とか。


198:デフォルトの名無しさん
08/03/03 22:03:29
無駄なレスしてすまないけど
誰にも解決できないんじゃないだろうか・・・

199:196
08/03/03 22:23:29
早急なレスありがとうございます。
Cドライブは30G近くあいているので大丈夫だと思ったのですが・・・。
エンドユーザーランタイム?は普通に入れられているので
他人のゲームなどは普通に動くのでDirectX自体は動くと思っています(東方とか・・・)。
DXライブラリと言うのを使ってのプログラムはVC++でできています。
ハードはメモリは1GでDELLのINSPIRON 6400です。
やはりハード的にいろいろ基本的な環境依存なんでしょうか・・・
ただ、友人や父親に頼んでほかのPCで落としてもらってみても
同じようになったというのでMS側のファイルが壊れてるか、ほかにも似たような
事態の人がいるかと思って調べてるんですが見つからないんですよね。
dxsdk_november2007.exeは自己解凍方式だと思っていたのですが
アイコンもただのアプリケーションのような感じですし。

200:デフォルトの名無しさん
08/03/03 22:24:25
WindowsフォルダのDXError.logとDirectX.log診る

201:デフォルトの名無しさん
08/03/03 22:26:46
dxsdk_november2007.exeはWinRARとかのソフトで解凍できる......と思う

202:デフォルトの名無しさん
08/03/03 22:36:55
そういえばファイルの最後の方が壊れているSDKがどこかのバージョンであった。
無理矢理展開したけど。

203:デフォルトの名無しさん
08/03/03 22:53:10
C:ドライブの空きが足りなくて、他の環境のExpLZHで解凍して使おうとしたら、ファイルが壊れてるとか言われて、
結局自己解凍させてセットアップが起動するのを我慢して(・・・まあオプション外せばよかったんだが)
出てきた.msiを使ってDirectX SDKをセットアップしたよ。

もしかしてそういう、自分で勝手に解凍して壊れたファイルを使ったとかかな。


204:196
08/03/03 23:55:47
解決しました、ありがとうございます。
201や202さんの言うとおり無理矢理WinRARで展開したところ
上の書き込みにあるようなdxsdk_nov2007.exe (ZIP)が展開されました。
こちらはダブルクリックで普通に展開できましたが、dxsdk_november2007.exe
のほうはWINRARに破損してるだかなんだか言われたのでやはりMS側の
ファイルが壊れてるんじゃないかと言う疑念が消えませんが。
二重とか三重とかMSもっと単純な方法にしろよ・・・。
200711月版は何度落としなおしてもWINRAR曰く破損ファイルなのですが、
これをインストールした方は普通にできたのでしょうか?
203にあるsetup.msiもおそらくZIP展開後に出てきたので、
MSの予定するとおりインストールは完了したと思います。
VCで設定後に適当なサンプルをビルド実行した結果は
ちゃんとできている風なので大丈夫でした。

205:デフォルトの名無しさん
08/03/04 20:19:12
DirectXを使うには
1.公式DirectX SDK付属のライブラリを使う
2.誰かが作ったライブラリ(DXライブラリなど)を使う
という二つの方法があり、
前者は汎用性や自由度が高いけど非常に手間で、
後者は簡単だけど出来ることが限られているし反応性が低い、
って考えていいんでしょうか

206:デフォルトの名無しさん
08/03/04 21:04:16
>>205
ライブラリにもよるだろうけど
簡単にDirectXが使えますっていうタイプのライブラリはおおむねそうだろうな

207:デフォルトの名無しさん
08/03/05 03:12:03
>>205
後者を「DirectXを使う」とは言って欲しくないな。
それでDirectXのスレで質問されても困る。

208:デフォルトの名無しさん
08/03/07 01:26:03
使ってるのは間違いないと思うが
変なプライドはやめれ
「DOOMのゲームエンジン使ってます」
っていうゲームも、突き詰めれば2の発展型なんだし

209:デフォルトの名無しさん
08/03/14 17:11:29
C++の入門書をやっと読破したので早速3Dゲームを作ろうとおもったのですが、早速詰まりました。
現在のリフレッシュレートがどういう風に格納されてるか見たかっただけなのですが、
クリエイトしたDirect3D初期化アプリが強制終了して表示されません。型変換がおかしいのでしょうか?

D3DDISPLAYMODE disp;
MessageBox(NULL,(char *)(disp.RefreshRate),"test",MB_OK);

210:デフォルトの名無しさん
08/03/14 17:14:43
>>209
C++の入門書を最初からもう一度読み直さないと駄目だな。

211:デフォルトの名無しさん
08/03/14 18:50:30
わかった読み直す。だがここだけは教えてくれ!!

212:デフォルトの名無しさん
08/03/14 18:52:28
char * のキャストで数値が文字列に変換されるというほど
C/C++ は優しい言語じゃない。

213:デフォルトの名無しさん
08/03/14 21:53:24
教えても理解できないだろw

214:デフォルトの名無しさん
08/03/14 22:19:33
いやわかる教えてあげるんだ

215:デフォルトの名無しさん
08/03/14 23:32:03
D3DDISPLAYMODE disp;
char buff[256];
wsprintf(buff, "%d", disp.RefreshRate);
MessageBox(NULL,buff,"test",MB_OK);




216:デフォルトの名無しさん
08/03/15 07:44:56
ありがとうございます。
最初から勉強しなおします・・・・・

217:デフォルトの名無しさん
08/03/24 22:23:04
>>183
俺みたいにゆっくりやってる奴だと、古いソースを流用出来なくなるのは困る。


218:デフォルトの名無しさん
08/03/26 02:29:05
DrawTextで文字列表示しようとしたら最初の1文字しか表示されません
何が原因だかわからないんですがエスパーの人いませんか?

219:デフォルトの名無しさん
08/03/26 02:58:32
解決しました
原因は恥ずかしいので言えません

220:デフォルトの名無しさん
08/03/26 08:45:17
原因しりてぇww

221:デフォルトの名無しさん
08/03/26 09:02:31
みなさんMDXのソースはシンボルファイルを使って見てますか?

 私は、シンボルファイルをDLすればステップ実行で見られると思って居たのですが、
今DL出来るシンボルファイルがAugust 2007 : Symbol Filesになっています。SDKと日付が違いますよね。

実際やってみると、
デバッグのモジュール表示で「シンボルの読み込み情報」を見ると、解凍したしたパスも含まれていて、
ファイルを見つけて居ますが、「PDB がイメージと一致しません。」になります。
「シンボルの読み込み」って奴もあったので、debugとretailsのpdbファイルも試したのですが、結果は変わらず。
※環境はVS2005 proです。

実はもっとカンタンにソースを見る方法があって、私がやってる事が根本的に勘違いってこと無いですか?

222:デフォルトの名無しさん
08/03/26 11:45:55
すみません質問です

VS2005等でfxファイルを編集する際に、定義済みの型やコメントなど
色を変えて表示するにはどうすればいいのでしょうか?
以前はなにも設定しなくても自動で色が変わっていたと思うのですが、
最近色がつかなくなってしまいました。

また、fxhファイルでも同様に色を変えるにはどうすればいいのでしょうか。

223:デフォルトの名無しさん
08/03/26 12:37:57
>222
スレリンク(gamedev板:711番)
スレリンク(gamedev板:716番)
で、Effect File =Fxファイルなので現状無いと思いますよ。

私が使ってる、Render Monkeyにもインテリセンスっぽい機能があります。
ステップ実行のデバッグはPix for Windowsでやってます。
使った事無いんですけど、Fx Composer2にも同様の機能があると思います。

 みんながもっと便利な物を使ってるので、VSにその機能が有っても無くても
気づいてくれないかもしれませんねw。

224:デフォルトの名無しさん
08/03/26 14:30:31
>>219
そりゃ大文字小文字の違いで表示されなかったら恥ずかしくて言えないよなw

225:デフォルトの名無しさん
08/03/26 16:24:01
表示する文字列がcharの配列なのに1文字しかセットしてないってやつだろ。


226:デフォルトの名無しさん
08/03/27 08:30:25
>>223
あざーす!
ないんですか、残念です。昔あった気がしたんですがねぇ。
素直にFxComposer2を使おうかと思います。

そういえば、FxComposer2ってDirectX10対応なんですか?
そういったサンプルも見つかりませんし、試しに書いてみてもエラーになるんですが…

227:デフォルトの名無しさん
08/03/27 22:12:25
テクスチャからテクスチャ、画像ファイルからテクスチャにコピーってできるんでしょうか?

228:デフォルトの名無しさん
08/03/27 22:19:59
出来なかったらそもそもどうやってテクスチャにイメージを設定するんだ?
そんな質問をする意図が全く分からん。

229:デフォルトの名無しさん
08/03/28 10:13:14
テクスチャからテクスチャ、画像ファイルからテクスチャにコピーする方法がわかるサンプルはどれでしょう?

230:デフォルトの名無しさん
08/03/28 12:09:59
画像ファイルからテクスチャにコピーするには
いったんファイルからテクスチャ作ってコピーするしかない気がする

テクスチャ間コピーはググれ

231:デフォルトの名無しさん
08/03/29 01:39:38
テクスチャ間のコピーってレンダーターゲットをテクスチャにしてそこにテクスチャ貼り付けるってことでしょうか?
他のやり方ありますか?

232:デフォルトの名無しさん
08/03/29 01:49:25
ロックしてCPUでコピー

233:デフォルトの名無しさん
08/03/29 02:14:40
LockRectangle?とかいうやつですね?
情報ありがとうございます
挑戦してみます

234:デフォルトの名無しさん
08/03/30 17:39:01
DirectSoundのサンプルコードみてるんですが、
プログラム実行中、wav形式のファイルをmmioOpenしっぱなしなんですが、いいのですか?
メモリ上に写し取って、ファイルは開放みたいなのを想像してたんですが

235:デフォルトの名無しさん
08/03/30 18:10:45
いいのです。

236:234
08/03/30 18:38:13
わかりました。ありがとうございます

237:デフォルトの名無しさん
08/04/03 17:37:25
超初心者ですが、教えてください。
フルスクリーンで表示されているゲームの上に◎や目盛りをつけたいのですが、
どうすればよいか判りません。

よろしくお願いします。

238:デフォルトの名無しさん
08/04/03 18:24:32
スプライト

239:デフォルトの名無しさん
08/04/03 20:17:43
コカコーラ

240:デフォルトの名無しさん
08/04/03 20:27:23
外部からって話だと難しいな。方法は238

241:デフォルトの名無しさん
08/04/04 02:56:06
>>237
他人の作ったゲームに表示したいというなら、あと3年勉強したら
できるというレベルの話。

242:デフォルトの名無しさん
08/04/04 07:33:32
DirectX9で3Dのイメージを作って、その画像をBitmapで取得してAVIで出力したい。
どうすればいいのだろうか?

243:デフォルトの名無しさん
08/04/04 08:12:31
何が分からないか考えてみよう

244:デフォルトの名無しさん
08/04/04 08:33:36
3Dのイメージが生成されるタイミング。
画像の取得はバックバッファのGetDCかLockRectを考えている。

245:デフォルトの名無しさん
08/04/04 11:18:39
>>242
テクスチャにレンダリングすれば便利な関数で画像は保存出来たはず
aviにするならロックで取得したほうがいいかな

ただしレンダーターゲットはロックできない問題があったような…

レンダーターゲットに書き込み→普通のテクスチャにコピー→ロックして取得
→取得したデータをAVI作成ソフトに転送(この辺はよく分らん)

こんな感じじゃね?

246:デフォルトの名無しさん
08/04/04 11:42:11
IDirect3DDevice9::EndSceneって、具体的には何やってるの?

247:デフォルトの名無しさん
08/04/04 11:46:52
ドライバ依存

248:デフォルトの名無しさん
08/04/04 16:09:27
>>244
読み出そうすれば画像のレンダリングが終わってなければ待機が行われる。タイミングは基本的にいつでもいい。

249:デフォルトの名無しさん
08/04/04 17:36:53
WindowsXP+DirectX9 でウィンドウモードとフルスクリーンモードで
切り替えできるようにゲームを作ってみたのですが、フルスクリーンから
ウィンドウモードに戻ると他のいくつかのアプリ(WindowsMediaPlayer11/
PowerDVD)の映像がブラックアウトしてしまいます。
以下の手順で切り替えを行っているのですが、何か他に必要な処理があるのでしょうか。

リソース開放→TestCooperateLevelを確認→PresentationParameterを設定→
Reset→ウィンドウの再設定

250:デフォルトの名無しさん
08/04/04 17:48:20
ブラックアウトしたアプリケーションがデバイスロストから復帰していないだけだから対処方法はない。
再生や描画を開始しはじめれば勝手にリセットするんじゃないかな。

251:デフォルトの名無しさん
08/04/04 18:54:07
例えば背景を消す関数で
色の指定が0xffffffffだったら消さないってのは違法ですか?

252:デフォルトの名無しさん
08/04/04 19:28:00
そんな法律は聞いたことがないな。

253:デフォルトの名無しさん
08/04/05 02:16:25
>>250
どうもコメントありがとうございます。
WMP側のオプションをいろいろ設定してビデオアクセラレーションを切ると
WMPが落ちたり(汗)ゲームを2つ実行するとなぜかブラックアウトしなかったりと
なかなかカオスな状況であります。うーん。DirectX 難しいです。。

254:デフォルトの名無しさん
08/04/05 23:00:06
このスレの住人なら知っていますね、あの糞開発ツールのことを

・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている
・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる

糞だけど、政治的な理由で無理やり使わされているんですよね。
もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。

・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。
・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。
 バグレポートなどしてはいけません。改善要求などもってのほかです。
 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
 なんて話が出たら力強く机を叩き、会議室を出ましょう。
 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。

糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。

255:デフォルトの名無しさん
08/04/05 23:06:02
Eclipseのことだな

256:デフォルトの名無しさん
08/04/05 23:17:34
javaで作られた大きなものは大概糞

257:デフォルトの名無しさん
08/04/05 23:21:35
RenderWareのことかぁぁぁぁぁ!

258:デフォルトの名無しさん
08/04/05 23:29:17
RenderWareは大きな糞

259:デフォルトの名無しさん
08/04/06 06:51:11
254-255はセットなのか、これ?

260:デフォルトの名無しさん
08/04/06 15:45:04
openglとdirectxのスプライト描画だとどっちが2D描画が早いですか

261:デフォルトの名無しさん
08/04/06 15:59:08
それは、OpenGLとDirectXのどっちが速いですか?って質問だな。

262:デフォルトの名無しさん
08/04/06 16:03:27
実装の仕方にもよるんだし一概には言えないような気もする。
グラボが同じなら大差ないと思うけどな。

263:デフォルトの名無しさん
08/04/08 13:46:02
テクスチャがあるのに、スプライトを使うメリットって何?

264:デフォルトの名無しさん
08/04/08 14:05:35
そもそもスプライトなど存在しない

265:デフォルトの名無しさん
08/04/08 15:03:30
DirectDrawの方がメモリーを食わないとか

266:デフォルトの名無しさん
08/04/09 03:14:24
初心者スレはここと統合でいいのかい?

267:デフォルトの名無しさん
08/04/09 09:14:00
すみませんManaged DirectX 板にも書いたのですが、こちらの方がふさわしいので
こちらに書きます。

Direct3Dのフルスクリーンゲーム画面をキャプチャしたいんでうが
どのようなjコードでできますか?

どっかのサイトで「Deviceを作ってGetBackBuffer()でおk」っていうのを
見つけたんですが、フルスクリーンゲーム画面のDeviceを取得するとこ
からつまっています。

簡単なサンプルなどあげてもらえると助かります。

268:デフォルトの名無しさん
08/04/09 12:05:17
IDirectSoundBufferからIDirectSoundBuffer8を作るのがうまくいきません。
hr に E_NOINTERFACE が返されて失敗してしまいます。

IDirectSoundBuffer *pDSBuffer8 ;
HRESULT hr = pDSBuffer->QueryInterface( IID_IDirectSound3DBuffer8 , (LPVOID*) &pDSBuffer8 ) ;

どこが問題点か分かりますでしょうか。


269:デフォルトの名無しさん
08/04/09 12:14:58
>>267
外部アプリのゲーム画面をキャプチャしたいのか?だったら俺には分らん

>>268
勘だがそっち向きは無理じゃね?
IDirectSoundBuffer8からIDirectSoundBufferの取得ならわかるが…

270:デフォルトの名無しさん
08/04/09 13:24:04
>>268
The IDirectSound3DBuffer8 interface is obtained from a secondary DirectSound
buffer that has been created with the DSBCAPS_CTRL3D flag in the dwFlags
member of the DSBUFFERDESC structure.

You can retrieve the IDirectSound3DBuffer8 interface by calling QueryInterface
method on the buffer, as in the following sample code, where lpDsbSecondary is
an IDirectSoundBuffer8 interface.

271:268
08/04/09 14:29:04
ありがとうございます。解決できました。

272:デフォルトの名無しさん
08/04/10 09:29:56
DirectXはダウングレード出来ないと聞きました。
今、PCに入っているDirectXのバージョンより下のバージョンに対応した
ソフトを作るって無理なんでしょうか・・・

例えば、今私のPCにはDirectX9が入っていますが
このPCでDirectX5に対応したソフトを作るとか・・・

出来ませんか?

273:デフォルトの名無しさん
08/04/10 10:12:43
>>272
DX5 SDKを入れれば作れる
ランタイムは最新のままでオッケ
俺も仕事にあわせて複数のSDK入れてるよ
DX5、DX7a、DX8、DX9c

274:デフォルトの名無しさん
08/04/10 21:49:19
5とか7の仕事なんて今時あんのか・・・エロゲ?

275:デフォルトの名無しさん
08/04/10 21:57:08
エロゲと付録ゲ
あとはDX嫌がるところはOS標準のDXにあわせてる

276:デフォルトの名無しさん
08/04/10 22:08:36
あんまり古いと逆に問題多いんじゃないか

277:デフォルトの名無しさん
08/04/15 15:51:24
古すぎるとGDIでいいんじゃね

278:デフォルトの名無しさん
08/04/15 17:22:03
>>272
DirectX 9.0b SDK
今公開されている一番古いSDKで開発ができる
これ以降のやつはDirectX8のヘッダが削除されているので開発できない

ただ、古いバージョンでコンパイルしたいなら以下の指定が必要

// DirectX 5 を使用する
#define DIRECTDRAW_VERSION 0x0500
#define DIRECTSOUND_VERSION 0x0500
#define DIRECTINPUT_VERSION 0x0500

今でもエロゲ開発には必要なのさ。。。

279:デフォルトの名無しさん
08/04/16 17:26:05
動画プレーヤーを作りたいのですがDirectShowの質問って
どこで受け付けてくれるのでしょうか。

自分の利用している開発環境はVC#2008expressionです。
プログラミング経験はなくC#もロクに理解してないので
C++とかはいじれる気がしません。

280:デフォルトの名無しさん
08/04/16 18:44:55
DirectShowのスレあったけど落ちちゃってるんだよね。
てか経験無いようだから、取りあえずWMPコンポーネントとか使った方が良いと思うけど・・・

281:デフォルトの名無しさん
08/04/16 18:59:34
動画再生よりむしろ静止画保存が目的なんで…

サンプルながめてもフィルタやピンがどうのと
なかなか素人の手に負えない状況です

282:デフォルトの名無しさん
08/04/16 19:29:38
>>281
じゃあ最初から最後まで教えろってこと?

283:デフォルトの名無しさん
08/04/16 19:35:07
ちゃんとヘルプ嫁
DirectShowはとっつきにくいが、意外と理路整然としてて使いやすいぞ
他のDirectXコンポーネントとは大違い

284:デフォルトの名無しさん
08/04/16 19:47:32
プッ

285:デフォルトの名無しさん
08/04/16 20:25:13
ゴチャゴチャやってたら偶然再生できるようなとことまで来たのですが
現在時間を取得しようと思ってもIMediaSeekingのGetCurrentPositionから
どうやって数字や文字列をもらえればいいのかさっぱりです。

HRESULT GetCurrentPosition( LONGLONG *pCurrent);で
NULL ポインタ引数が戻り値がとかいわれても、
C#だとどう記述したものやらと途方にくれてしまいます

286:デフォルトの名無しさん
08/04/16 20:45:55
サンプル読めばわかるだろ。
ちなみに、DirectShowはDirectXに今は含まれていないからスレ違いなんだ。

287:デフォルトの名無しさん
08/04/19 22:12:35
60fpsで1フレームごとにキーボードの状態取り込むと
押したキーが何フレームにも渡って補足されるです。
どうすればいいですか?

288:デフォルトの名無しさん
08/04/19 22:17:54
無視する

289:デフォルトの名無しさん
08/04/20 02:12:30
Async使えよ馬鹿

290:デフォルトの名無しさん
08/04/20 08:12:25
i8042のクロックで取り込む

291:デフォルトの名無しさん
08/04/20 08:24:10
補足しないで捕捉する。

292:デフォルトの名無しさん
08/04/20 10:58:12
テクスチャAをテクスチャBにコピーしたいのですが
どのような手段があるのでしょうか?

293:デフォルトの名無しさん
08/04/20 11:25:36
copy textureA.dds textureB.dds

294:デフォルトの名無しさん
08/04/21 21:11:03
・テクスチャBをRenderTargetにしてレンダリング
・CopyRects
・Lock/Unlock

どれでもお好きな方法を

295:デフォルトの名無しさん
08/04/22 16:38:01
>>294
㌧ 助かりました

296:デフォルトの名無しさん
08/04/27 19:31:06
DirectXの構造体の解説やマニュアルのみをただただ乗せてるだけってサイトないですか?


297:デフォルトの名無しさん
08/04/27 19:35:48
本家は?

298:デフォルトの名無しさん
08/04/27 21:05:17
SDK落として嫁

299:デフォルトの名無しさん
08/04/27 23:39:05
読めってあの大量のサンプルをか?
それがめんどいんだが

300:デフォルトの名無しさん
08/04/27 23:49:31
ならやめろw

301:デフォルトの名無しさん
08/04/28 00:09:03
いやだ
ぜってぇあきらめねぇ

302:デフォルトの名無しさん
08/04/28 00:51:48

                 ┌─┐
                 |も.|
                 |う |
                 │来│
                 │ね│
                 │え .|
                 │よ .|
      バカ    ゴルァ  │ !!.│
                 └─┤    プンプン ソンナツメタイコトイウナヨ!!
    ヽ(`Д´)ノ ヽ(`Д´)ノ  (`Д´)ノ    ( `Д) ナイナラナイッテイッテクレヨ!
    | ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
~ ~  ̄◎ ̄  . ̄◎ ̄   ̄◎ ̄   ◎->┘◎



303:デフォルトの名無しさん
08/04/28 00:54:29

                 ┌─┐
                 |も.|
                 |う |
                 │来│
                 │ね│
                 │え .|
                 │よ .|
      バカ    ゴルァ  │ !!.│
                 └─┤    プンプン ソンナツメタイコトイウナヨ!!
    ヽ(`Д´)ノ ヽ(`Д´)ノ  (`Д´)ノ    ( `Д) ナイナラナイッテイッテクレヨ!
    | ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
~ ~  ̄◎ ̄  . ̄◎ ̄   ̄◎ ̄   ◎->┘◎



304:デフォルトの名無しさん
08/04/28 08:27:59
>>296
どうみてもヘルプのことです
ありがとうございました

305:デフォルトの名無しさん
08/04/30 18:58:41
2次元で、
頂点V0~V3で作られた四角形の中に点Pがあるかどうかって

四角形を構成する4つの線分の裏にPがあるかチェックで
調べているんですけど、もっと高速な方法ってありますか?


306:デフォルトの名無しさん
08/04/30 19:04:09
x>left&&x<right&&y>top&&y<bottom

307:デフォルトの名無しさん
08/04/30 19:23:13
長方形じゃないです

308:デフォルトの名無しさん
08/05/01 08:37:24
マトリックスによる行列変換で直方体から変形可能なら逆行列使えば簡単。

でなければ305のやり方でいいんじゃない?
ただ、線の裏側にあるかの判断方法によってだいぶ変わるはず。

ポリゴンなら点Pから一方向(例えば右)に線を引いて何回交差するかを調べる。

309:デフォルトの名無しさん
08/05/01 09:21:29
>>305
すべての角が180度以下であることが保障されるなら簡単だが、
180度以上の角がある場合は面倒。

310:デフォルトの名無しさん
08/05/02 17:15:12
ここのヘルプファイルをDLしてインストールしたんだけど、VSから参照できないのですか?
URLリンク(www.microsoft.com)

311:デフォルトの名無しさん
08/05/02 17:42:56
>>310
VSのバージョンくらい書けよ
まあ、普通にIncludeとLibのパスを通せば使える
ただ、VS2008とかだと、一部ファイルが新しいから、パスの参照優先順位を一番下にするのが吉

312:デフォルトの名無しさん
08/05/02 22:03:41
VisualStudio2005、VC++でDirectSound (DirectX9)を使ったWaveプレーヤを作ってます。
再生ポジションの通知を行うためにIDirectSoundNotifyを使って数箇所SetNotificationPositionsして、、
という流れで書いていたのですが、↓のようなリンクエラーが出ちゃいます。

エラー 35 error LNK2001: 外部シンボル "_IID_IDirectSoundNotify" は未解決です。 Player.obj
エラー 36 error LNK2001: 外部シンボル "_IID_IDirectSoundBuffer8" は未解決です。 Player.obj

なぜでしょう。
ちゃんと #include <dsound.h> しているんですが。。


313:デフォルトの名無しさん
08/05/02 22:18:32
lib

314:デフォルトの名無しさん
08/05/02 22:30:21
>313
あすみません、libも

#pragma comment (lib, "dsound.lib")

しております、書くの忘れてました。

315:デフォルトの名無しさん
08/05/02 23:11:42
dxguid.lib

316:デフォルトの名無しさん
08/05/02 23:18:53
>315

; ̄口 ̄]ナオッタ

ありがとうございます、コンパイル通りました!!
ありがとうございます!

317:デフォルトの名無しさん
08/05/03 04:33:07
外部シンボル ~ は未解決です

てのはコンパイルエラーじゃなくてリンクエラーの事なのでライブラリの参照をすれ

318:デフォルトの名無しさん
08/05/03 09:16:59
Lightサンプルの真似してライト設置してるんだが、
自分で作った六面体がノッペリ同じ色で塗りつぶさてしまう。

こんな減少の場合、何を見落としてると思う?


とりあえず、Lightサンプルの中に自分で作った六面体をぶち込んでみるわ

319:デフォルトの名無しさん
08/05/03 11:27:25
法線データが入ってないってオチは?

320:デフォルトの名無しさん
08/05/04 16:49:09
C言語の知識だけでDiectXはできますか?

321:デフォルトの名無しさん
08/05/04 16:59:16
全てのAPIがC言語からでも呼び出せる。

322:デフォルトの名無しさん
08/05/04 17:56:24
MSDNから日本語ドキュメントがごっそりなくなってるじゃねえか!市ね!!
改悪にもほどがある!!

323:デフォルトの名無しさん
08/05/05 06:59:12
>>321
クラスで出来てるんだからCだけで使えるわけないだろ

324:デフォルトの名無しさん
08/05/05 10:42:45
法線データ入ってませんでした。
LightサンプルにD3DFVF_NORMALがあったので真似して、
D3DFVF_DIFFUSEも消したらうまくいった。

頂点にデフューズ色指定するとライトがうまく働かないの?

325:デフォルトの名無しさん
08/05/05 13:19:44
>>322
勘弁して欲しいよね。本気で。

326:デフォルトの名無しさん
08/05/05 13:20:10
>>320
できるけど面倒い。
C++ 使った方がよっぽどか楽。

327:デフォルトの名無しさん
08/05/05 18:18:21
ぐーぐるから見ようとすると「ないっす」って言われるんですよね

328:デフォルトの名無しさん
08/05/05 19:39:15
URLリンク(blogs.msdn.com)

これか?

329:デフォルトの名無しさん
08/05/05 19:50:19
ちょっと皆さん聞いてくださいよ。
さっき僕すごいもの見つけたんですよ本当に。
これ見てください。
URLリンク(fatalita.sakura.ne.jp)
これ使えばもうわざわざDirectX覚える意味がなくなりますね^^V


330:デフォルトの名無しさん
08/05/05 19:53:42
これからは2004octの時代

331:デフォルトの名無しさん
08/05/05 20:24:03
>>329のライブラリ使おうとするとブルースクリーンが出るんですけど^^;
Init関数で死ぬとかドンだけー

332:デフォルトの名無しさん
08/05/06 12:44:07
>>329
なつかしいな
まだアクティブなのか

333:デフォルトの名無しさん
08/05/06 14:59:30
本家じゃなくて3D機能を強化してる互換版
ベータとはいえ開発環境依存、互換中途半端、重い
開発に付き合うほど暇ではないので1年後また見てみる

334:デフォルトの名無しさん
08/05/06 19:55:41
DirectXにはディスプレイ出力を取得するようなAPIはありませんよね?
FrapsとかDxtoryはどうやってるんでしょうか?
グラフィックのドライバレベルではディスプレイ出力の取得が可能?

335:デフォルトの名無しさん
08/05/06 20:49:32
表示しているものは何であるか考えれば答えは出るよ

336:デフォルトの名無しさん
08/05/07 01:30:19
Frapsを見たことがないのでどうやってるのかは知らんが、
Presentにフック仕掛けてるだけじゃない?

337:デフォルトの名無しさん
08/05/07 07:22:42
ヘタレな質問です。現在、DX8使用して背景に3D、キャラに2Dを表示しようと
考えております。
まず、セオリー通りテクスチャで表示したのですが微妙に歪み、
暗く表示されてしまいます。

そこで、backsurfaceというのがあると聞きつけたのですが、どのように使えば良いか、
コードでみせて下さると嬉しいです。
そもそも、LPDIRECT3DDEVICE8は、3D作成時の物で良いのか、
そして、表示先のバックサーフェイスをどうやって取得すれば良いのでしょうか。

338:デフォルトの名無しさん
08/05/07 10:00:08
答える前に、一度でも検索したのかと問いたい

339:デフォルトの名無しさん
08/05/07 11:52:33
>>337
0.5ピクセルずらした?
詳しくはテクセルあたりでぐぐれ

340:デフォルトの名無しさん
08/05/09 15:15:22
>>338&339
無事解決しました。
backsurfaceに書き込み成功しました。

しかし、これだと3Dマテリアルの裏側に表示されてしまい、
テクスチャで前面にキャラクタを表示しようとすると、pngとかddsなら良いのですが、
オリジナルフォーマットだと対応できません。
spriteを使うと、数回はうまくいくのですが、不正終了を起こしてしまいます。
試しに何もないspriteを使ってもダメで、もちろんboundschkerにもかかりません。

単純な話し、GetPixelみたいなローレベル命令が書き込み画面に使えないのでしょうか。
backsurfaceはLockRectできたのですが、
テクスチャ書き込み済みの画面からの画面情報の拾得は出来ないのでしょうか。

341:デフォルトの名無しさん
08/05/09 15:22:57
backsurfaceなんぞよくわからんもの使うより
当初の予定通りできちんと表示される方法を考えたほうがいいんじゃないのか?

342:デフォルトの名無しさん
08/05/09 16:03:10
>>340
DX8はステートブロックでバグが発生する。そのためのエラー。DX9以上を使え。
Zオーダー無効で描画すれば、常に最前面だったような。
つーか普通にポリゴンの描画しかた覚えろ。簡単だぞ。

343:デフォルトの名無しさん
08/05/09 16:07:36
>>341
いや、backsurfaceだときちんと表示されて、textureで表示すると、
0.5とかどう合わせても半ドットずれたり、暗くなったりする。
何枚かのビデオカードでチェックしたけどダメだった。

肝心の文字表示だけど、32*32ドットのpngでα抜きテクスチャ作って、
それをD3DXCreateTextureFromFileでロードして、
LockRectして、1文字ずつ文字を書き込むことに成功。

D3DXCreateTextureでD3DFMT_A8R8G8B8で作ってもだめ。成功した人いる?

344:デフォルトの名無しさん
08/05/09 16:11:58
>>342
情報サンクス。一応D3DRS_ZENABLE,D3DZB_FALSEでやってます。
DX8.1は仕事の仕様でDX9にはできんのよ(TT
XPSP1以降なら素直にDX9なんだけど、まだ初代XPの人が何人もいて(^^;

345:デフォルトの名無しさん
08/05/09 16:12:59
四の五の言わずにソースだせと
日本語が下手すぎて何いってるかわからん

346:デフォルトの名無しさん
08/05/09 16:21:46
>>343のソースが可笑しいことだけは伝わった。
世間のDX8で作られたゲームはちゃんと表示されてるだろ。

347:デフォルトの名無しさん
08/05/09 16:24:46
日本語ヘタでスマンのう。
ソース長いし、一応自己解決したし、
商用ソフトなんで、フォーマット変えてUPしなくちゃならんのでそれは勘弁。

とりあえず、D3DXCreateTextureでD3DFMT_A8R8G8B8指定した空のテクスチャで
αブレンドをかけた文字を表示するのは失敗したけど、
元々1文字分32*32ドットのα付きのPNG作り、動的に書き換えながら、
画面中にαブレンドした文字を表示するのは成功しました。

日本語難しいな。ホント。

348:デフォルトの名無しさん
08/05/09 16:27:29
>>346
ヘタレでスマン。どうしても歪んでしまう。
URLリンク(richa850.hp.infoseek.co.jp)
歪みは上記のURLを参考にさせていただきました。

349:デフォルトの名無しさん
08/05/09 16:30:45
ひょっとしてテクスチャのサイズは元のデータと同じにならない事を知らないおちか

350:デフォルトの名無しさん
08/05/09 16:31:01
>>347
日本語間違えてる(^^;
1個だけ32*32のPNGを作り、D3DXCreateTextureFromFileで1個だけ読み込み、
こいつを1文字ずつLockRectで書き換えて画面にαブレンドで表示する事に成功しました。

351:デフォルトの名無しさん
08/05/09 16:34:04
>>349
いや、800*600が1024*1024に拡大されてるのは知ってる。
だから困ってたんだけど、3Dモードと2Dモードで使い方を変えて、
3Dモードでの時の歪みはCGに怒られながら勘弁してもらう事にしたヘタレ。スマソ

352:デフォルトの名無しさん
08/05/09 16:43:22
800x600の画像を1024x1024の左上に展開して描画すればドットバイドットになるわけだが・・・

353:デフォルトの名無しさん
08/05/09 16:49:07
>>352
その方法も試したんですが、微妙に歪むところと暗くなるところがあり、
自分的には気にならないのですが、CGから見たら違う物だと言われて…。
>>348の方法なら大丈夫なんですが、
テクスチャにするとどうしても微妙に違うらしくて、
CGにうとい自分だったら気にしないのですが、
プログラマ1人とCG5人だと発言力が(^^;

354:デフォルトの名無しさん
08/05/09 16:51:59
いったいどんな組み方してんだよと小一世紀・・・

355:デフォルトの名無しさん
08/05/09 16:54:14
3D部分も自力で組んでるんですが、色々と言われて落ち込んでます。
自分の実力だとLWと全く同じ結果に出来るはずもなく……orz
人生あきらめが肝心なので、ダメプログラマの烙印を押されても粘ります。
今までスレ汚し、スマンかった。

356:デフォルトの名無しさん
08/05/09 16:55:59
>>354
雑誌のサンプルを実行しても、どうしても歪んでしまうんですよ。
ビミョーにですが。
逆にテクスチャで歪まないサンプルがあったら教えてもらえると嬉しいですm(__)m

357:デフォルトの名無しさん
08/05/09 17:02:50
いちいちロックして描画なんて阿呆なことするくらいなら
素直にDirectDraw使おうよ。

358:デフォルトの名無しさん
08/05/09 17:25:13
Direct3Dを全くわからない俺が思うに、
・バックサーフェイス->OK
・テクスチャ->NG
・微妙に歪むところと暗くなるところがあり
からして

色はシェーディング、拡散光、スペキュラ辺りに関連していることを
言っている気がする。
歪みは遠近法(平行投影とか透視投影)かと。

359:デフォルトの名無しさん
08/05/09 18:17:32
シェーダー切るの忘れているだけのような気がするけど・・・

↓俺の汎用スプライトコードからの抜粋

Device->SetTexture(0, texture);
Device->SetVertexShader(D3DFVF_TXVertex3);
Device->SetStreamSource(0, m_VertexBuffer, sizeof(TXVertex3));

Device->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
Device->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
Device->SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
Device->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);
Device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
Device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
Device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
Device->SetRenderState(D3DRS_FOGENABLE, FALSE);
Device->SetRenderState(D3DRS_SPECULARENABLE, FALSE);
Device->SetRenderState(D3DRS_CLIPPING, FALSE);
Device->SetRenderState(D3DRS_LIGHTING, FALSE);
Device->SetRenderState(D3DRS_VERTEXBLEND, D3DVBF_DISABLE);
Device->SetRenderState(D3DRS_CLIPPLANEENABLE, FALSE);
Device->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);
Device->SetRenderState(D3DRS_TEXTUREFACTOR, Color);

360:デフォルトの名無しさん
08/05/09 18:18:36
Device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
Device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
Device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TFACTOR);
Device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
Device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
Device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_TFACTOR);
Device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
Device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
Device->SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE);

Device->SetTextureStageState(0, D3DTSS_ADDRESSU, D3DTADDRESS_CLAMP);
Device->SetTextureStageState(0, D3DTSS_ADDRESSV, D3DTADDRESS_CLAMP);
Device->SetTextureStageState(0, D3DTSS_ADDRESSW, D3DTADDRESS_CLAMP);
Device->SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_POINT);
Device->SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_POINT);
Device->SetTextureStageState(0, D3DTSS_MIPFILTER, D3DTEXF_NONE);
Device->SetTextureStageState(0, D3DTSS_MIPMAPLODBIAS, 0);
Device->SetTextureStageState(0, D3DTSS_MAXMIPLEVEL, 0);
Device->SetTextureStageState(0, D3DTSS_MAXANISOTROPY, 1);

361:デフォルトの名無しさん
08/05/09 18:31:58
まともに組めば絶対に歪まないはずだから頑張れよ。
とりあえずウィンドウ一個出してそこにテクスチャ表示するサンプルなら
30分で書けるでしょ。それうpすりゃいいじゃん。


362:デフォルトの名無しさん
08/05/09 20:33:02
ありがとう>ALL
1ドットの歪みが出るのが直らないのですが暗いのはシェーダのせいでした。
背景が3Dのせいで、その上に重ねるキャラが1ドットどうしても歪んでしまいます。
もう一度、切り分けをして単純化してプログラムを組んでみます。

それと、D3DXCreateTextureでD3DFMT_A8R8G8B8指定した空のテクスチャでも
ちゃんとαブレンドが効きました。ありがとう御座いました。

363:デフォルトの名無しさん
08/05/09 21:03:14
商用ソフト作ってる人間がこの程度のことを自己解決できないなんて

364:デフォルトの名無しさん
08/05/09 21:20:38
え?俺は同人かと思ってレスしてたんだが・・・・

365:デフォルトの名無しさん
08/05/09 22:15:10
初めて一週間でして……。
昔、PC-DOS時代にDOOM系のFPSゲームを作った事があったので、
3Dダンジョン部分はすぐ出来たのですが、2D表示にはまってた次第です(^^;
ピクセルのズレも切り分けでき、どうにかCGに怒られずに済みそうです。

一時はCreateDIBでやって、ブレゼンハム3Dで作った方が…と考えたところ、
皆さんのおかげでD3DXにとどまれました。

レンダリングステート関連って、知ってないと分からないことばかりで、
WIN-APIを覚えた時を思い出しました。覚えることが多くて大変です(@@

366:デフォルトの名無しさん
08/05/09 22:54:13
ちなみにドットズレの原因は背景3D表示のViewFromの問題で、
精密に計算して、3D表示の方もすこしずらしたら起きなくなりました。
>>358さんの遠近法で当たってました。
皆様、ありがとう御座いました。

367:デフォルトの名無しさん
08/05/09 23:15:57
>>363
商用でこんなとこで質問してるなら軽蔑するわw

368:デフォルトの名無しさん
08/05/09 23:42:38
あれ・・・?
てっきりテクスチャを2Dで描画してるのかと思ったら3D空間に1枚絵を描いてたのか

369:デフォルトの名無しさん
08/05/10 04:30:06
>>367
同人より実力のないプロでゴメンm(_)m

>>368
そのとおりです~。

370:デフォルトの名無しさん
08/05/10 08:47:43
プロ崩れの同人もいるわけだし仕方ないんじゃね?

371:デフォルトの名無しさん
08/05/10 11:26:25
3Dダンジョン、フルサイズ背景表示、ラスタキャラ表示、手前にメッシュ表示、
そして文字表示エンジンが完成しました~。
Intelチップで不具合が出たのですがステートを直したらどうにかなりました。
一週間でどうにか出来たのはひとえに皆様のおかげです。ありがとうm(__)m

372:デフォルトの名無しさん
08/05/10 11:29:11
これで月曜日の納品に間に合います。
なにげにサンプルメッシュを作るのに時間がかかってしまいました。
LWの解説サイト様、ありがとう御座いました。m(__)m
あとはゆっくり寝てバグだしをします。
おやすみなさい~zzz

373:デフォルトの名無しさん
08/05/10 11:37:14
だからここに日記を書くなよ…

374:デフォルトの名無しさん
08/05/10 11:43:32
ボーンの処理どうやった?

375:デフォルトの名無しさん
08/05/10 12:08:25
初心者隔離スレだからいいんじゃねぇの?
本スレ汚されるよりな。

376:デフォルトの名無しさん
08/05/11 00:20:17
テクスチャは256x256以下で2^nサイズの正方形にすると良いって暗黙の了解があるが
やっぱり今時のハードでも256x256以下の方が良いのかな?
というか今時ので512x512で表示が乱れるとかぼやけるとかってやつある?

377:デフォルトの名無しさん
08/05/11 00:30:12
>>376
>というか今時ので512x512で表示が乱れるとかぼやけるとかってやつある?

ハードウェアの問題と
自身のプログラミングの問題を混同してるうと思う…

512x512のテクスチャでも、貴方のコードがおかしければ
表示が乱れるとかぼやける事は十分あるかと


378:デフォルトの名無しさん
08/05/11 03:11:29
>テクスチャは256x256以下で2^nサイズの正方形にすると良いって暗黙の了解
何年前の話だ・・・ぶーどぅーとかの時代だろ。

テクスチャのサイズ、正方形、2^nの制限などは全てCAPSで取れるので
それを起動時に見て作るテクスチャや作り方などを判断すればいい。

ぼやけるかどうかはプログラムの問題でハードの問題ではない。

379:デフォルトの名無しさん
08/05/12 16:08:46
広大なMAPを作るとして、みなさんはラップアラウンド問題はどうしてますか?
1画面分移動したら0に戻すとかで対応ですか?
そもそも、広大なMAPは作らない方針ですか?

380:デフォルトの名無しさん
08/05/12 16:41:55
4bitで -2147483648~2147483647 だから
DbD単位で数値持ってても左右で100万画面分以上あるから悩んだことないな
どんだけ広大なマップを作る予定なのさ
世界一周でも足りる気がするが…

それより俺は3Dゲーの広大なマップでfloatの制度をどう解決してるかが知りたい

381:デフォルトの名無しさん
08/05/12 16:42:33
すまん4byteだw

382:デフォルトの名無しさん
08/05/12 20:14:03
>>380
ああ、ごめん、おれもfloat制限の事、ききたかったんだ。すまそ。

383:デフォルトの名無しさん
08/05/12 22:14:22
位置に関するオフセットだけ別にもって描画に使うギリギリまで原点基準の座標で計算するようにする。
ビューの行列生成に対して逆移動を適用して描画における計算上だけ整合性をとって、
通常の計算は精度の高いローカルのまま計算をする。

384:デフォルトの名無しさん
08/05/12 22:27:16
メッシュを拡大(ScalingMatrixかけて)して描画すると
真黒になるのは何故なんだぜ?


385:デフォルトの名無しさん
08/05/12 23:27:35
法線

386:デフォルトの名無しさん
08/05/13 08:29:56
>>383
そうやっても、原点から遠ざかっていくとだんだんずれてこないか?
たとえば時速10000キロで飛行機を原点から遠ざかるように飛ばし続けて
その後ろをカメラが追従するようにするとそのうちブルブル振動し始める

>>384
法線を正規化するレンダーステートかなんかがあった気がする
調べるのはめんどい

387:デフォルトの名無しさん
08/05/13 12:42:19
D3DRS_NORMALIZENORMALS

388:デフォルトの名無しさん
08/05/14 01:31:55
DirectX9にて、テクスチャを描画すると画像がぼやけてしまい困っています。
各座標-0.5fやSetSamplerStateでPOINT/NONE(一応バイキュービックなども試しました)を指定など、調べて出てくること・考えられることは試してきたので、
最初のぼやけっぷりと比べればある程度見れるような状態にはなってきているのですが、それでもまだぼやけています。
今は、とりあえず倍の解像度のテクスチャを使って凌いでいます。(これなら、ぼけないように見えます)
高精細の画像を用意することなく、画像のそのままをDirectXで描画するにはどうすればいいのでしょうか?
ご教授をよろしくお願いします。

389:388
08/05/14 01:34:37
書き忘れました。
使っている画像はPNG(透過)、解像度は640x480です。

390:デフォルトの名無しさん
08/05/14 02:08:41
トランスフォーム済み頂点かい?

391:デフォルトの名無しさん
08/05/14 02:09:10
フルスクリーンでアスペクト違いとかだったら殺すぞ?

392:デフォルトの名無しさん
08/05/14 02:11:43
FAQ過ぎるんだが確認事項が多すぎて一々レスしてくのめんどくせ。
再現コードうpして頂戴。

393:デフォルトの名無しさん
08/05/14 02:39:35
FAQすぎるけど、ここってそういうスレだろうw

>>388
D3DXCreateTextureFromFileでテクスチャ作ってるだろ?
この関数では2のn乗のサイズのテクスチャしか作れない。
D3DXCreateTextureFromFileExを使えば解決。
引数は自分で考えるかググってくれ。

394:デフォルトの名無しさん
08/05/14 06:09:43
頂いたご意見を検証しましたところ、読み込みの時点で2の乗数のサイズになってしまっていたようです。
D3DX_DEFAULT_NONPOW2を指定したところ、綺麗に描画することができました。

>>390様、>>391様、>>392様、>>393様、どうもありがとうございました。
半年間続いた気持ち悪さも抜けました。これで気持ちよく眠れます。
本当にありがとうございました。

395:デフォルトの名無しさん
08/05/14 15:29:58
その後、>>394は半年のあいだ目覚めることが無かったという
めでたしめでたし

396:デフォルトの名無しさん
08/05/14 15:57:25
>>395
どっかいけ
二度とくんな

397:デフォルトの名無しさん
08/05/15 12:46:59
>>396
おまえもくんな

398:デフォルトの名無しさん
08/05/15 12:48:21
>>394
NONPOW2できないデバイスもあるかもしれないんだぜ
D3DX_FILTER_NONE

399:デフォルトの名無しさん
08/05/15 15:56:30
D3DX_FILTER_NONE使った場合、実際は2のべき乗のテクスチャが作られても画像は拡大されない
つまり、DbD表示は可能だけどそのためにはUVを調整する必要があるんだな
俺もハマったなぁ…

400:デフォルトの名無しさん
08/05/15 16:41:35
info.width/dest.width

401:デフォルトの名無しさん
08/05/15 16:41:56
destじゃないdescだ

402:デフォルトの名無しさん
08/05/15 19:13:56
ヘルプ嫁よ

403:デフォルトの名無しさん
08/05/16 08:52:34
>>402
誰に言ってるんだ?

404:デフォルトの名無しさん
08/05/16 14:44:19
自分に言い聞かせてるんだろ

405:デフォルトの名無しさん
08/05/18 02:43:39
ユニビーム

406:デフォルトの名無しさん
08/05/19 21:34:00
>>405
おまえのお陰でアイアンマンが映画化されている事を知った
しかも大ヒット

407:デフォルトの名無しさん
08/05/20 14:16:42
リパルサー

408:デフォルトの名無しさん
08/05/21 03:01:54
         ∧_∧  ♪
      ∧_(∧ω^ )       
     ∧ ^∧^ ) >
     ( ^∧^_∧>/    ♪ 
      ( ^∧^__∧
       ヽ( ^∧^_∧  ♪      
       < ( ^ω^ )          過疎るな
        | <    >
       (_/ /ヽヽ
        (_) (__)

409:デフォルトの名無しさん
08/05/21 08:24:43
これってDirectxで動いてんの?
URLリンク(www.nicovideo.jp)

410:デフォルトの名無しさん
08/05/21 08:37:55
>>409
知らない映像も交じってるが知ってるプリレンダー映像に関してはCPU処理かな
リアルタイム処理だったらDirectXでもできるだろうけど…

411:デフォルトの名無しさん
08/05/21 14:34:14
DirectXで作ったとしても
DirectXの知識1割ぐらいだな

412:デフォルトの名無しさん
08/05/21 15:16:02
てかDirectXだろうがPS3だろうがリアルタイムレンダリングできるわけないだろ
水はサンプリング粒子が多すぎる

413:デフォルトの名無しさん
08/05/21 16:39:04
数年後には実現できていたりする

414:デフォルトの名無しさん
08/05/21 17:20:43
DX11はリアルタイムレイトレーシングを見据えているんだっけ?
それともあれはIntelのプレゼンか何かだったかな?

415:デフォルトの名無しさん
08/05/21 18:41:08
これ以上バージョンを出すな!

416:デフォルトの名無しさん
08/05/21 19:50:49
高性能はおなか一杯だから
マイクロソフトは、軽快なOSを出してくれマジで

417:デフォルトの名無しさん
08/05/21 21:20:03
昨日からDX勉強してる超初心者なんですが、
画面に立方体のポリゴンを表示してみたんですが
なんか全体的に絵が硬い感じがします。
もう少しやわらかくぼやけた感じに描画したいんですが
どうすればよいですか?

418:デフォルトの名無しさん
08/05/21 21:38:46
一番手軽なのはあくび

419:デフォルトの名無しさん
08/05/21 21:41:43
生理現象を待つよりも目薬がおすすめ

420:デフォルトの名無しさん
08/05/21 21:54:28
>>418
>>419
意地悪いわんでおしえてくれ~
とりあえず調べてみたけどアンチエイリアスだけで何とかなる?


421:デフォルトの名無しさん
08/05/21 22:04:23
あんたの言うぼやけた感じってのがわかんねぇから意地悪したくなるんだけどなw
アンチェリかけただけで良いのか?
DOF的なカメラフォーカスのぼやけが欲しいのか?
HDRシーンのようなぬったりぎっとり画面が欲しいのか?
アンチェリだけならデバイス作成のフラグ変えるだけなんだからまずは試してみれ
(ビデオカードが対応していることが前提だが)

422:デフォルトの名無しさん
08/05/22 08:30:21
アンチェリかけてダメならHDRとグレア処理やって
ダメならDOFやってだめなら空気遠近法ってとこか

立方体を平らな板の上に載せてAOテクスチャでも張れば案外柔らかくなるんじゃね?

423:デフォルトの名無しさん
08/05/22 09:48:23
単にライティングしてないってオチじゃね?

424:デフォルトの名無しさん
08/05/22 11:12:42
>>409
これはリアルタイムっぽいな
URLリンク(www.nicovideo.jp)

425:デフォルトの名無しさん
08/05/22 16:28:03
>>420
スナップショットうp

426:デフォルトの名無しさん
08/05/22 17:36:36
XY平面上にポリゴン等のモデルオブジェクトを配置した状態で、カメラの視線はZ軸に平行にしています。
この状態でマウスドラッグでカメラの水平座標(X,Y)をOffsetするようにしています。
また、マウスホイールでカメラの鉛直座標(Z)をOffsetしています。

カメラ座標Zによってマウスドラッグ時のカメラの水平移動量を調節したいです。
具体的に言いますと、スクリーン座標(10,10)から(510,10)までマウスドラッグした場合に、
500ピクセル分のカメラ移動をするのですが、一律のOffsetでは当然カメラ高度が高ければ高いほどオブジェクトの
見かけの移動量が少なくなってしまいます。これを上手く調節して、500ピクセル分の移動であれば現在のカメラ画像の高さにおいて
見えているオブジェクトの500ピクセルに相当する分の座標でOffsetしたいのですが、その計算方法が分かりません。

DirectXで使っているPerspectiveCameraではFieldOfViewを設定していますが、カメラ焦点距離に当たるものが
見つけられませんでした。焦点距離と画角とZさえわかれば求まると思うのですが。

説明が下手で申し訳ありませんが、参考になるサイトかアドバイスがあれば宜しくお願いいたします。

環境:
VisualC#2008、WPFアプリケーションのViewport3Dを利用しています。

スレ違いと言われるかもしれませんが、WPFスレではWPFのGUI関連のスレに見受けられまして、
カメラのOffset等こちらのスレで質問した方が良いのではないかと勝手に判断いたしました。

427:デフォルトの名無しさん
08/05/22 17:58:10
焦点距離はFOVから算出するものだろ。
フィルムサイズによっても変わるものだし。

428:426
08/05/22 18:22:05
>>427
フィルムサイズとFOVが分かれば確かに焦点距離が求まるのですが、
フィルムサイズってどこで分かりますか?

429:426
08/05/22 18:26:21
あ、なんか分かったかも。
Viewport3Dコントロールがリサイズされれば当然オブジェクトの見た目も変わりますね。
ちなみにFOVって水平画角であってますか?そうであればフィルムサイズはViewport3Dコントロールの
水平方向のサイズから求まると思います。

鉛直画角ではないですよね?

430:デフォルトの名無しさん
08/05/22 18:27:47
好きに決めろ。
「FOVがXならフィルムサイズnの時の焦点距離がYです」という言い方しか出来ない。
通常は35mmがメインっぽいけど別に決まってるものではなく仮定するものだと思うが。

さらに言うならマウスでドラッグしたスクリーン上の移動を見かけ上一致するように
3D空間でも移動を行なうのに焦点距離はまったく必要ない。

431:デフォルトの名無しさん
08/05/22 18:31:01
>>430

>さらに言うならマウスでドラッグしたスクリーン上の移動を見かけ上一致するように
>3D空間でも移動を行なうのに焦点距離はまったく必要ない。

そのやり方についてヒントだけでも教えてもらえませんか?

432:デフォルトの名無しさん
08/05/22 18:51:28
スクリーン座標に変換する->マウスの位置へ移動する->ワールド座標に戻す。

スクリーンからワールドに戻すときにzはどうするんだって話になるが、
元々ワールドに存在するオブジェクトならそのままのzをもってきて計算すればいい。

433:デフォルトの名無しさん
08/05/23 19:14:53
Xファイルがなぜか1ファイルしかロードできない。
原因として考えられるのは何でしょうか。
変数もグローバルで[MAX_MESH]を付けているのに、
最後にロードした物しか見れません。
変数の上書きも考えて、いろいろグローバルにして{MAX_MESH]をつけてもダメでした。
ご教授、お願いしますm(__)m

434:デフォルトの名無しさん
08/05/23 19:15:44
// メッシュ関連
LPD3DXMESH pMeshApp[MAX_MESH];
LPD3DXBUFFER pMeshAdjacency[MAX_MESH];
LPDIRECT3DTEXTURE8* ppTexture[MAX_MESH];
D3DMATERIAL8* pMaterial[MAX_MESH];
DWORD meshSubsets[MAX_MESH];;
D3DXVECTOR3 meshCenter[MAX_MESH];
float meshRadius[MAX_MESH];
float meshfx[MAX_MESH],meshfy[MAX_MESH],meshfz[MAX_MESH]; // 移動位置
float meshax[MAX_MESH],meshay[MAX_MESH],meshaz[MAX_MESH]; // 回転
float meshsx[MAX_MESH],meshsy[MAX_MESH],meshsz[MAX_MESH]; // スケーリング
float nummesh[MAX_MESH];



435:デフォルトの名無しさん
08/05/23 19:19:01
/*---------------------------------------------
X-Fileの読み込み
---------------------------------------------*/
int LoadXFile(int n,float d,char* filename)
{
LPD3DXMESH pMesh;
LPD3DXBUFFER pMatBuf = NULL;
D3DXMATERIAL* pMat;
DWORD n,i,c,e;

nummesh[n]=d;

if(FAILED(D3DXLoadMeshFromX(filename,D3DXMESH_MANAGED,pD3DDevice,&pMeshAdjacency[n],&pMatBuf,&c,&pMesh)))
return FALSE;

DeleteMeshObject(n);
pMeshApp[n] = pMesh;



436:デフォルトの名無しさん
08/05/23 19:19:37

//マテリアルとテクスチャの設定
pMat = (D3DXMATERIAL*)pMatBuf->GetBufferPointer();
for(i=0;i<c;i++){
ppTexture[n] = (LPDIRECT3DTEXTURE8 *)malloc( 4*c );
pMaterial[n] = (D3DMATERIAL8 *)malloc( 4*c );
}
meshSubsets[n] = c;

for(i=0;i<c;i++){
pMaterial[n][i] = pMat->MatD3D;
pMaterial[n][i].Ambient = pMaterial[n][i].Diffuse;
ppTexture[n][i] = NULL;



437:デフォルトの名無しさん
08/05/23 19:20:22
//テクスチャ読み込み
if(pMat->pTextureFilename)
if(FAILED(D3DXCreateTextureFromFile(pD3DDevice,pMat->pTextureFilename,&ppTexture[n][i])))
return FALSE;
}
RELEASE(pMatBuf);

LPDIRECT3DVERTEXBUFFER8 pVB;
BYTE* pV;
pMesh->GetVertexBuffer(&pVB);
pVB->Lock(0,0,&pV,0);

pVB->Unlock();
pVB->Release();

if(pMeshApp[n]->GetFVF() != (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)){
pMesh = NULL;
pMeshApp[n]->CloneMeshFVF(pMeshApp[n]->GetOptions(),D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1,pD3DDevice,&pMesh);
pMeshApp[n]->Release();
pMeshApp[n] = pMesh;
D3DXComputeNormals(pMesh,NULL);
}
return TRUE;
}


438:デフォルトの名無しさん
08/05/23 19:21:43
//------------------------------------------------------------------------
//メッシュ表示
//------------------------------------------------------------------------
void dispMesh( int n )
{
// 表示位置を球体1へ移動
//メッシュの描画
D3DXMATRIX matWorld,matTrans;
if(n==0)meshfx[n]=-400;meshfy[n]=20;meshfz[n]=200;
if(n==1)meshfx[n]=-400;meshfy[n]=20;meshfz[n]=-200;
meshaz[n]=90;
for(DWORD i=0;i<meshSubsets[n];i++){
D3DXMatrixIdentity(&matWorld);
D3DXMatrixScaling(&matWorld,meshsx[n],meshsy[n],meshsz[n]);
D3DXMatrixRotationX(&matWorld,(meshax[n]*3.14f/180));
D3DXMatrixRotationY(&matWorld,(meshay[n]*3.14f/180));
D3DXMatrixRotationZ(&matWorld,(meshaz[n]*3.14f/180));
D3DXMatrixTranslation( &matTrans,meshfx[n],meshfy[n],meshfz[n]);
matWorld*=matTrans;
pD3DDevice->SetTransform(D3DTS_WORLD,&matWorld);
pD3DDevice->SetMaterial(&materialApp);
pD3DDevice->SetMaterial(&pMaterial[n][i]);
pD3DDevice->SetTexture(0,ppTexture[n][i]);
pMeshApp[n]->DrawSubset(i);
}
pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_TFACTOR);


439:デフォルトの名無しさん
08/05/23 19:22:27
// 表示位置を元に戻す(表示位置と視点位置は同じっぽい)
D3DXMatrixIdentity(&matWorld);
pD3DDevice->SetTransform(D3DTS_WORLD,&matWorld);
pD3DDevice->SetStreamSource(0,NULL,0);
pD3DDevice->EndScene();
}



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch