【C++】 DirectX初心者質問スレ Part33 【C】at TECH
【C++】 DirectX初心者質問スレ Part33 【C】 - 暇つぶし2ch1:デフォルトの名無しさん
10/12/22 20:11:01
回答する人も、質問する人も必ず読んでください

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

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

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

前スレ
【C++】 DirectX初心者質問スレ Part32 【C】
スレリンク(tech板)

2:デフォルトの名無しさん
10/12/22 20:14:30
DirectX SDK チュートリアル
URLリンク(msdn.microsoft.com)

・DirectXに関係のない、
 C/C++の部分や、ゲーム製作全般はスレ違いなので注意しましょう。

3:デフォルトの名無しさん
10/12/22 22:05:03
DirectXのXInputで質問です。

Windows7上で、USB接続したXbox360ゲームパッドから入力を受け取っています。
左右のスティックをプレスし続けた場合、最初ONになった後、一瞬OFFになってから再びONになり続けるようですが、これで正常なのでしょうか?

一瞬OFFになるのがちょっと困るのですが…

4:デフォルトの名無しさん
10/12/23 06:04:45
なんで前スレ消費しきってないのにこっちに質問すんのバカなの?

5:デフォルトの名無しさん
10/12/23 07:18:31
メモ帳でHLSL書いてるんだけど、どこでエラーがでているのかわからない・・・
プロジェクトの中に入れる方法あります?

6:デフォルトの名無しさん
10/12/23 09:36:34
>>2
>・DirectXに関係のない、
> C/C++の部分や、ゲーム製作全般はスレ違いなので注意しましょう。
勝手に追加するな
初心者にそんな切り分けできるわけないだろ

7:デフォルトの名無しさん
10/12/23 09:56:34
ここはDirectX初心者スレであって、プログラミング初心者スレではないから大丈夫。

8:デフォルトの名無しさん
10/12/23 10:12:26
>>7
それは暴論
前から初心者の受け皿だった
玄人用には「鬱だ氏のうDirectX」というスレがあった

9:デフォルトの名無しさん
10/12/23 10:19:00
>>7
知らないくせに発言するな

10:デフォルトの名無しさん
10/12/23 10:36:04
鬱だ氏のうDirectXって無くなったのですか?

11:デフォルトの名無しさん
10/12/23 10:46:04
まあ、DirectX云々以前の質問は適切なスレに誘導すればいいだけの話。

12:デフォルトの名無しさん
10/12/23 11:28:34
>>10
煽り合いが酷くて消えた
それとそもそもできる奴は滅多に質問しないからスレ自体いらないってなった

まあ、人の発言の意図を汲むことができない奴のいるスレは
スレにいくらルールをつけようがすぐに終わると思うけどね
あのスレも最期の方は書いてないけど普通はわかることまでしつこく指摘しててすごく空気悪かったな

情報が不足していたら相手から引き出すってやりとり自体をそもそも嫌う奴は
掲示板なんてこなけりゃいいのにいるんだよな

質問側は煽られたら完全スルーで頼む

13:デフォルトの名無しさん
10/12/23 12:04:17
最近よくあるケースは、人の意図をくんだつもりになって、
頓珍漢な回答をして変な方向に進んでいく流れ。

まずは不足している情報をきっちり出してもらった上で回答に入らないと、
毎度毎度、グダグダな流れになる。

14:デフォルトの名無しさん
10/12/23 12:10:44
>>13
まあ、そりゃ、回答した奴が未熟だからってのもあるだろう

それと回答側にやたら完璧を求める奴もいたな
人間同士のコミュニケーションってことを忘れてる質問者もいるからな

15:デフォルトの名無しさん
10/12/23 12:27:07
OpenGLスレもDirectXスレもビックリするぐらい人がいないよね。
大丈夫か日本

16:デフォルトの名無しさん
10/12/23 12:29:05
WEB上から情報がいくらでもとれるし、そもそも質問自体2chを利用する必要性も無いと言うことなんだろう。

17:デフォルトの名無しさん
10/12/23 12:48:37
若いやつはもう2chなんて使ってないよ。

18:デフォルトの名無しさん
10/12/23 16:08:03
>まずは不足している情報をきっちり出してもらった上で回答に入らないと、

そもそも初心者にそれを期待するのが難しい上に
聞き取りを始めようとすると
「それが答えられるくらいならこんなところに質問に来ない」
等の横槍が入るので無理

19:デフォルトの名無しさん
10/12/23 17:03:59
dxlibって何ですか?

20:デフォルトの名無しさん
10/12/23 17:08:23
URLリンク(www.google.co.jp)

21:デフォルトの名無しさん
10/12/23 19:07:30
すっかりスルーされちまった

入力デバイス周りに詳しい人がいたら>>3について教えてほしい
適切なスレがあればそっち行くので誘導お願い

22:デフォルトの名無しさん
10/12/23 19:18:00
>>21
アナログ入力はノイズがあるって言うから、たぶんそれじゃない?

23:デフォルトの名無しさん
10/12/23 19:58:03
>>21
とりあえず、ドライバを最新にする
別PC、別OSで検証する
くらいはやった上で聞いてるんだよね?

24:デフォルトの名無しさん
10/12/23 20:17:03
パッドいじったことがないなら知らないでいいじゃないか
わからないことを無理やり答えるのやめようぜ
知ってるなら「俺のところじゃそんな風にならない」って回答がほしいだけなんだろ

25:デフォルトの名無しさん
10/12/23 20:19:28
パッドいじったことがないなら知らないが、チャタリングってやつ?

26:デフォルトの名無しさん
10/12/23 20:26:49
>>21
俺のところじゃそんな風にならない

27:デフォルトの名無しさん
10/12/23 20:41:11
360コントローラなんて公式ドライバを使った場合
不具合がでることで有名な奴じゃん
そんなもの使っておいて>>3だけの情報だけじゃ
プログラムの問題なのかそれ以前の問題なのか判断するのは不可能

28:デフォルトの名無しさん
10/12/23 21:23:04
>>27
不具合がでるなんて聞いたことないけど、具体的にどんな症状?

29:デフォルトの名無しさん
10/12/23 21:52:57
google「360コントローラ 公式ドライバ 不具合」でググると当たるな

30:デフォルトの名無しさん
10/12/23 22:10:22
おいおい、みんな情報古いな、DirectInput時代で止まってる?
XInput使えばZ軸や振動対応の不具合なんて起きないぜ?

31:デフォルトの名無しさん
10/12/23 22:34:01
dxlibって何ですか?

32:デフォルトの名無しさん
10/12/23 22:37:51
URLリンク(www.google.co.jp)

33:デフォルトの名無しさん
10/12/23 22:38:12
>>31
>>20

34:デフォルトの名無しさん
10/12/23 23:10:58
>>30
あのデカい糞パッドを誰でも持ってる
とかありえん

友達居ないだろ?

35:デフォルトの名無しさん
10/12/23 23:27:13
Xbox360のコントローラが公式ドライバだとDirectInputでトリガーが1軸になってるとかは、
過去のゲームとの互換性のためにあえてそうなってるだけで、不具合とは言わないよ。

> The combination of the left and right triggers in DirectInput is by design.
> Games have always assumed that DirectInput device axes are centered when there is no user interaction with the device.
> However, the Xbox 360 controller was designed to register minimum value, not center, when the triggers are not being held.
> Older games would therefore assume user interaction.
> The solution was to combine the triggers, setting one trigger to a positive direction and the other to a negative direction, so no user interaction is indicative to DirectInput of the 'control' being at center.
> In order to test the trigger values separately, you must use XInput.


36:デフォルトの名無しさん
10/12/24 00:02:41
公式のアナウンスを鵜呑みにしちゃう男の人って

37:デフォルトの名無しさん
10/12/24 07:54:27
気付いたらいつの間にかウインドウを最大化した時にエラーが出るようになってたのですがなぜでしょうか?

38:デフォルトの名無しさん
10/12/24 08:00:35
ウインドウを最大化した時にエラーが出るようなコードを差し込んだからじゃない?

39:デフォルトの名無しさん
10/12/24 08:05:03
ウインドウを最大化したら何か特別なことが起こるのですか?

40:デフォルトの名無しさん
10/12/24 08:09:28
グダグダな流れになるのが嫌なら、
具体的にどんな処理手順で何をしているのかを明確にすること。
情報を出すのが面倒なら、どんなグダグダな回答でも受け入れること。

41:デフォルトの名無しさん
10/12/24 08:15:46
あまり急いでないのでグダグダでもいいです
ウインドウを最大化する時って何か特別なこと起こります?

42:デフォルトの名無しさん
10/12/24 08:18:56
呼び出し履歴見たらCreateFrameの時にヒープコピーのあとメモリ関連でエラーが出てるみたいでした

43:デフォルトの名無しさん
10/12/24 08:38:33
他の方質問どうぞ

44:デフォルトの名無しさん
10/12/24 08:39:54
どうして流そうとするんですか?教えてください

45:デフォルトの名無しさん
10/12/24 08:51:23
言われたことぐらいやらんと誰も答えれないと思うよ。
俺がわざとそれっぽい事いって、故意にミスリードしてもいいのかい?

46:デフォルトの名無しさん
10/12/24 08:52:50
DXUT使ってるなら
ウィンドウリサイズ時にデバイスを作り直してるから
なにかロスト対策をしてないリソースを追加した時点でエラーが出るようになってるんじゃない?

ぶっちゃけエラーが出なくなる最小コードまで戻してひとつずつ確かめながら追加していけとしか言えない
もしくはソースうp

47:デフォルトの名無しさん
10/12/24 08:58:28
>>46
ありがとうございます。デバイスロストっていうのと関係あるんですね。ありがとうございました。

>>45
お前アホなの?

48:デフォルトの名無しさん
10/12/24 09:03:18
これで>>45>>46が同一人物だったら、こいつどうするんだろうね

49:デフォルトの名無しさん
10/12/24 09:06:40
は、別にできなかったらまた聞きに来るだけだから問題ないだろ
最先端の質問してるわけでもあるまいし
一人だけ性格の悪いゴミクズ荒らしが粘着してればスレが終わるだけ

50:デフォルトの名無しさん
10/12/24 09:15:03
>あまり急いでないのでグダグダでもいいです
これがお望みのグダグダな流れという奴なので、何の問題もない。

51:デフォルトの名無しさん
10/12/24 09:17:49
グダグダな流れの一例

情報が致命的に足りない質問をする
情報を出すように要求される
情報を出さない
答えが得られない
逆ギレ

52:デフォルトの名無しさん
10/12/24 11:16:15
フルスクリーンモードとウインドウモードの違いを教えてください

53:デフォルトの名無しさん
10/12/24 11:22:30
フルスクリーンモードは画面いっぱいに表示します
ウィンドウモードはウィンドウの中だけに表示します
ってそんなことが訊きたいんじゃないよな・・・?

54:デフォルトの名無しさん
10/12/24 11:25:33
>>52
なぜ人に質問する前に自分で調べないのよ、
アンタ、情弱なの?
今回だけは、特別に教えてあげるけど、今度からは自分で調べなさいよね!
URLリンク(msdn.microsoft.com)(VS.85).aspx

55:デフォルトの名無しさん
10/12/24 11:35:52
>>35
それそれ、その記述の日本語版見てXInput使うことにしたんだよね
おかげでLTriggerとRTriggerは別々に値取れるようになった

う~ん、結局Xbox360ゲームパッドを持ってる人は居らんみたいね、残念。

56:デフォルトの名無しさん
10/12/24 11:38:39
>>53
もっと低レベル層の仕組みが知りたいのです

57:デフォルトの名無しさん
10/12/24 11:56:49
>>55
Xbox360ゲームパッドもってるけどそんな風にはならんよ
せめてハードの問題なのかソフトの問題なのかくらいは絞ってくれないと

58:デフォルトの名無しさん
10/12/24 12:07:26
>>56
そうなるとWDKのビデオドライバの実装辺りを調べてみるといい。
そこまでは普通の人間はやらないが、好奇心を持ったのならとことんやるといいのではないか。

59:デフォルトの名無しさん
10/12/24 17:05:05
XInput使っても使えるのはXBoxのコントローラだけだしな
他のデバイスなら断然DirectInput

60:デフォルトの名無しさん
10/12/25 01:26:08
>>52
動作に関してはフルスクリーンはなにもやらなきゃ楽だな
でもAlt+Tabとかサポートしはじめるとお前の実力じゃ2~3年使うぐらい嫌な目にあう

それに対してウィンドウモードはロストとか起こりにくい
スクリーンセーバー(3Dデバイス使用&占有型)のもん動かしたときどうなんのかとか知らんけどw

後、フルスクリーンはリフレッシュレートを自由に設定できるけど
ウィンドウモードはリフレッシュレートはユーザーが自由に変えられる
もちろんゲーム実行中にも・・・

61:デフォルトの名無しさん
10/12/25 02:12:24
何いきなり語りだしてるの?

62:デフォルトの名無しさん
10/12/25 02:33:27
>>61
とっととあきらめてFlashいじってろよw

63:デフォルトの名無しさん
10/12/25 02:37:28
まずこっからだな
URLリンク(www.mext.go.jp)

これはいいとてもいい

64:デフォルトの名無しさん
10/12/25 03:01:50
文部省そんなもん作ってるのか
なかなか興味深い教材だな

65:デフォルトの名無しさん
10/12/25 03:09:53
>>60
そんなのしってるよ・・・

66:デフォルトの名無しさん
10/12/25 03:23:49
無駄にエラそうな割りに実の無い情報しかしゃべれない人ってなんなんだろうね

67:デフォルトの名無しさん
10/12/25 06:13:53
こんにちは。仕事でDirect3D10を使用するプログラムを書いています。
ゲームのようなダイナミックなものではなく、単純にテクスチャを1枚貼っただけのものです。
それでも私には一苦労でした。Direct3D10とシェーダープログラムはサンプルを利用しました。
ここまでは良かったのですが、同じメッシュ(表現正しいのかな?)にアルファチャネル付きの
テクスチャを何枚も貼ってほしいと要求されました。枚数は不定です。この場合のシェーダーの
書き方はどうすればよろしいのでしょうか?使えるテクスチャの上限を決めておいて、
テクスチャの数だけシェーダーを用意しなければならないのでしょうか?


68:デフォルトの名無しさん
10/12/25 06:15:10
>>67
シェーダーと頂点情報はそのまま、テクスチャだけ切り替えて
繰り返し描画するだけ。

69:デフォルトの名無しさん
10/12/25 07:29:26
d3dx9anim.hをインクルードするとエラーが出ます、助けて下さい……
1>c:\program files (x86)\microsoft directx sdk (august 2007)\include\d3dx9anim.h(14) : error C2065: 'IID_ID3DXAnimationSet' : 定義されていない識別子です。
1>c:\program files (x86)\microsoft directx sdk (august 2007)\include\d3dx9anim.h(15) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\program files (x86)\microsoft directx sdk (august 2007)\include\d3dx9anim.h(15) : error C2078: 初期化子の数が多すぎます。

以下d3dx9anim.hでのエラーが80近く……
ゲーム制作でXファイルのアニメーションをしようとして調べてみて、いっちゃん最初で躓いてしまいました、どうかお願いします

70:デフォルトの名無しさん
10/12/25 08:17:25
>>69
ライブラリの設定ができてないとかじゃね?

71:デフォルトの名無しさん
10/12/25 08:18:27
>>66
お前みたいに煽りしか入れないのとか2度とレスしないでいいけどなw

72:デフォルトの名無しさん
10/12/25 08:20:58
てか
d3dx9anim.hでエラーがでるって
d3dx9.hをインクルードするとエラーがでるってこと?
それとも直でインクルードしてるの?

73:デフォルトの名無しさん
10/12/25 08:22:58
>>71
お前もなw

74:デフォルトの名無しさん
10/12/25 08:23:15
DirectX関係無いよね

75:デフォルトの名無しさん
10/12/25 08:27:07
>>74
いや、これはアリでいんじゃない?
厳密にはないけどw
設定方法とかわからんでしょ?
初心者だし

76:デフォルトの名無しさん
10/12/25 08:31:37
他の方質問どうぞ

77:デフォルトの名無しさん
10/12/25 08:32:07
>>65
>・ 回答して貰ったら、出来るだけお礼もしよう。
さっさとお礼言えよクズ

78:デフォルトの名無しさん
10/12/25 08:36:14
>>60がキモイ

79:デフォルトの名無しさん
10/12/25 08:38:34
追加の依存ファイルは「d3d9.lib d3dx9.lib winmm.lib dinput8.lib dxguid.lib」を設定しています
d3dx9anim.hは自分で作ったプロジェクトのヘッダーファイルからじかにインクルードしています

と、ここまで書いた時点で>>72さんの書き込み見て解決しました
d3dx9.hのインクルードが必要なんですね……
いつもは共有インクルードヘッダーに書き込んでいたので、抜けていたようです
こんな事でお手数取らせて申し訳御座いませんでした
色々言って頂いた皆様、ありがとうございます。今後このような事が無いように、確認を徹底しますね

>>74 関係無いようでしたら申し訳ないです……他にどこで聞けばいいのか解らなかったもので。

80:デフォルトの名無しさん
10/12/25 08:44:57
d3dx9anim.h作った人はなんでd3dx9.hをインクルードしなかったんだろうね

81:デフォルトの名無しさん
10/12/25 08:48:34
えっ

82:デフォルトの名無しさん
10/12/25 08:57:17
>>81
だってd3dx9.hがないと動かないソースなわけじゃん
基本、自分が必要なもんは自分が読んでおけば問題おきないと思うぜ

83:デフォルトの名無しさん
10/12/25 09:14:29
d3dx9anim.hがd3dx9.hを必要としてるんじゃなくて
d3dx9anim.hを含むライブラリ群がd3dx9.hなんだよ

実際にd3dx9anim.hが必要としてるのは
d3dx9.h自体じゃなくてd3dx9.hでd3dx9anim.hより前にインクルードされてるヘッダのどれかだ

84:デフォルトの名無しさん
10/12/25 09:14:33
ってことを理解できてない浅いPGの書いたソースってことだな

85:デフォルトの名無しさん
10/12/25 09:15:43
>>83
じゃ、なんでそれ自分で呼んでないの?馬鹿なの?

86:デフォルトの名無しさん
10/12/25 09:16:17
>>82は自分でライブラリ作ったこと無いだろw

87:デフォルトの名無しさん
10/12/25 09:18:15
>>86
具体的に呼んでないとなにかいいことあるの?

88:デフォルトの名無しさん
10/12/25 09:23:34
>>87
依存しているヘッダが分割された場合の修正や、
多重に呼び出しているかどうかを無駄にチェックする回数は減るね。

89:デフォルトの名無しさん
10/12/25 09:24:30
>>88
さっぱり意味がわかりません
メリットないならないっていいなさいよ
育ち悪いな

90:デフォルトの名無しさん
10/12/25 09:26:25
>>89
レベル低いな
もう少し勉強してから出直しておいで

91:デフォルトの名無しさん
10/12/25 09:27:03
>>89
ある程度の規模のプログラムを組んだことがないとメリットは分からないよ。
無能で理解できないのは致し方がない。

92:デフォルトの名無しさん
10/12/25 09:29:21
>>90
はぁ?
じゃ、エラーの出るヘッダでも一生呼んでろw
ちょっと考えてみろよ
<stdio.h>からはじまって色々ヘッダ呼んでるとしたら
使う側はその全部をわざわざインクルードするのかよ
どうせなきゃ動かないのに馬鹿らしい

このスレが糞ったのはお前みたいに自分の間違いとか絶対に認めない糞が増えたからだな

俺がレベル低い?はぁ?
こんな簡単なことわからないお前より俺のがレベル低いっての?
面白いなw

93:デフォルトの名無しさん
10/12/25 09:33:55
>>92
そういう面倒を回避するためにd3dx9.hがあるのに、
わざわざd3dx9anim.hを呼んでエラーが出ると喚いている意味が分からん。

94:デフォルトの名無しさん
10/12/25 09:40:49
知っている人間が最小限のヘッダを呼び出すのなら分かるが、
無知なのに個別にヘッダを呼び出してコンパイルできないと怒り出すって、
どれだけアホなんだよ。

95:デフォルトの名無しさん
10/12/25 09:41:11
>>91
なにいってんだ
まだ、頑張るのか?
メリットないだろ
なんで認めないの?
自分が間違ってるのがそんなに嫌なの?
どうせ大した経験もないくせに

>>93
明らかに話わかってないのに無理して参加するなw
いまはなんでd3dx9anim.hがd3dx9.hを呼んでないのか?って話をしている
レスするなら、まず、自分のレス(>>93)がとんちんかんだったことを認めてからレスしてね

96:デフォルトの名無しさん
10/12/25 09:45:56
>>95
d3dx9.hを穴の開くほどみてこいよ
d3dx9.hがd3dx9anim.hを呼んでるんだよ
さらにd3dx9anim.hがd3dx9.hを呼んだら相互インクルードになるだろうが

97:デフォルトの名無しさん
10/12/25 09:48:19
>>96
さらにウンコだよね
そのd3dx9anim.hがd3dx9.hを呼ばないとエラーになんだぜ

98:デフォルトの名無しさん
10/12/25 09:52:45
えっ

99:デフォルトの名無しさん
10/12/25 09:53:04
d3dx9.hを呼び出せば、d3dx9anim.hを呼び出す必要がないのに、
d3dx9anim.hにこだわる理由がさっぱり分からない。
簡単に使えるようにわざわざMSが用意しているのに、
仕様を無視して勝手なことをして対策しろというのが、
無能を通り越して知的障害か精神障害レベルだよ。

100:デフォルトの名無しさん
10/12/25 10:07:39
>>99
URLリンク(msdn.microsoft.com)
お前が呼べゆーたんじゃないか!

要件
ヘッダー: D3dx9anim.h 宣言

101:デフォルトの名無しさん
10/12/25 10:11:19
馬鹿なの?死ぬの?

102:デフォルトの名無しさん
10/12/25 10:13:26
この仕様だとD3dx9anim.hはユーザーに存在を知らせる必要ないな
D3DXの依存関係が怪しい

103:デフォルトの名無しさん
10/12/25 10:13:38
>>100
宣言している箇所を示しているだけで、呼べなんて一切書いていないよ。

104:デフォルトの名無しさん
10/12/25 10:21:38
Win32APIの開発経験が足りず、宣言と呼び出すヘッダが違うことに無知な人間や、
サンプルやチュートリアルを確認しない馬鹿のための配慮が足りないのは確かだろう。

105:デフォルトの名無しさん
10/12/25 10:36:27
>>103
ひでぇヘルプだなw

106:デフォルトの名無しさん
10/12/25 10:38:09
頭の回らない馬鹿に厳しいことは確か。

107:デフォルトの名無しさん
10/12/25 10:40:45
ユーザーに知らせる必要のないヘッダをヘルプに書くことになんの意味が・・・

108:デフォルトの名無しさん
10/12/25 10:45:34
分かっている人間の中には、余計なものを呼び出さず最小限でヘッダを構成する場合がある。
ただそれだけの話。

109:デフォルトの名無しさん
10/12/25 10:48:59
>>108
馬鹿だなお前
だからd3dx9.hはどの道呼ばなきゃ動かねぇってw

110:デフォルトの名無しさん
10/12/25 10:51:16
d3dx9.hを呼ばなくても依存しているファイルを呼び出せばいいだけの話だが、
どこまで頭が悪いんだろう?

111:デフォルトの名無しさん
10/12/25 10:55:56
>>110
はぁ?
だからそれは>>92の話でアフォだって言っただろ?
使う側は全部インクルードすんのかよ糞がって話だ
ループさせんなよ死ね

112:デフォルトの名無しさん
10/12/25 11:03:21
>>111
>ユーザーに知らせる必要のないヘッダをヘルプに書くことになんの意味が・・・
これに対する答えだよ。
依存関係を理解している人間が、
コンパイラに送るコードを少しでも少なくするためにやるための方法なの。
絶対にやる必要がある訳じゃない。

つまり意味が理解できない馬鹿には何の意味もない情報。

113:デフォルトの名無しさん
10/12/25 12:06:41
初めて書き込むが、俺的には

ライブラリ使う側
全ての依存関係をインクルードしたヘッダを使う
(d3dx9.hはライブラリ完成後に作ったんだよ、多分w)

ライブラリ作る側
依存関係だけの必要最低限のヘッダをインクルード

つまり>>69は、依存関係を調べないで使うんだったらd3dx9.hをインクルードすれば良かった話で
d3dx9anim.hをインクルードするんだったら、依存関係のヘッダーもインクルードする必要があったって事だね
で、依存関係を調べるべきなのに、依存関係が全てインクルードされているd3dx9.hをインクルードして解決とか言ってるって話だね

余談だけど、作る側が依存関係だけの構成が良い理由は
ヘッダー定義等に変更があったときに関係ないobjまで再コンパイルになって非常に面倒だから

114:69
10/12/25 12:21:43
>>113
なんか妙に論争になってたんで引っ込んでましたが、おおよそ理解出来たかと思います。
依存関係とか全く気にしてなかった弊害が……
とりま無事コンパイル通って、やりたかった事の実装も半分程終わった所です

余談ですが、プログラム打ってると煙草の本数増えて仕方が無い今日この頃、です

115:デフォルトの名無しさん
10/12/25 12:40:24
まだやってたのか
馬鹿の相手をするのはやめろよ

116:デフォルトの名無しさん
10/12/25 13:11:26
>>113
>で、依存関係を調べるべきなのに
それを使う側が調べるのが正しいとしちゃっていいの?

117:デフォルトの名無しさん
10/12/25 13:33:30
メモ帳でHLSL書いてるんですが、どこでエラー出てるか調べる方法はありますか?

118:デフォルトの名無しさん
10/12/25 13:43:40
>>117
こんなんでどうですかね?
URLリンク(msdn.microsoft.com)

119:デフォルトの名無しさん
10/12/25 13:48:39
>>117
メモ帳を使うのをやめて、Visual StudioやNVIDIA FX Composerなどの
もっとリッチなツールを使う。

120:デフォルトの名無しさん
10/12/25 13:51:31
やたらスレが伸びててなんだと思ったら、ヘッダファイルの話なのか。
Windows(Win32API)でプログラムを作るときは、まず<windows.h>をインクルードする。
DirectX9でプログラムを作るときは、まず<d3d9.h>をインクルードする。
それ以外のライブラリやヘッダファイルのMSDN上での指定は、
コンパイルエラーやリンクエラーが出たときに初めて追加すればいいよ。

MS流のプログラミングスタイルは大体がこんな感じ。


121:デフォルトの名無しさん
10/12/25 14:23:34
>>68
テクスチャーだけ切り換えるということは、シェーダーに
Texture2D txA;
Texture2D txB;
Texture2D txC;
としておいて、ピクセルシェーダー内で切り換えるということでしょうか?
それともC++のプログラム側で切り換えてピクセルシェーダーだけ呼び出せるということでしょうか?
あと申し訳ありません、使用したサンプルは C++\Direct3D10\Tutorials\Tutorial07 です。

122:デフォルトの名無しさん
10/12/25 14:27:23
>>119
NVIDIA FX Composerはエラーで開きません。
VC++で扱えますか?

123:デフォルトの名無しさん
10/12/25 14:48:57
>>121
違うよ。同じ設定でテクスチャだけ張り替えてDrawPrimitive() (DirectX9の場合)を
必要なだけ呼び出せということ。
ps_3_0まででも1回の描画で16枚までテクスチャ参照できる。
ps_4_0ならもっと増えてるはずだよね。

124:デフォルトの名無しさん
10/12/25 14:50:32
>>122
じゃあHLSLが文法的に間違ってる。
fxファイルのコンパイラにかけて様子を見てごらん。

125:デフォルトの名無しさん
10/12/25 14:55:05
>>124
いや、NVIDIA FX Composerが動きません。

126:デフォルトの名無しさん
10/12/25 14:59:09
>>125
知らんがな。

どういうエラーが出て動かないのか、
どういう環境かも分からないのに答えられるはずがない。
自分で考えろ。

127:デフォルトの名無しさん
10/12/25 15:03:37
レンダーモンキー使おうとしてるけど何がなんだかさっぱりわからん
解説サイトあります?

128:デフォルトの名無しさん
10/12/25 16:43:12
メタセコイヤでモデルを作ったんですが赤色にすると
周りに作った壁なんかも赤くなってしまうんですが
どうすれば他のに影響しないようになるでしょうか?

129:デフォルトの名無しさん
10/12/25 16:47:46
マテリアルが同じになってる?

130:デフォルトの名無しさん
10/12/25 19:55:00
>>123
10以降はシェーダだけじゃないっけ?それ以外は廃止された

多分複数のuv座標とテクスチャは必要だと思う
といっても10以降(9もだっけ)はテクスチャ配列とか便利なものがあった気がするのでそれを使えばテクスチャは複数不要かも
俺も勉強中なのでよくわからん。後は詳しい人が教えてくれるはず↓

131:デフォルトの名無しさん
10/12/27 01:04:54
まず>>67のやりたい事が、マルチテクスチャなのか、テクスチャブレンドが出来れば良いのかによる

文章を読む限りマルチテクスチャに思えるが、>>68が言ってるのは
フレームバッファを対象にレンダーステートを設定して、一枚づつテクスチャをブレンド描画していけって意味
これなら一枚テクスチャ描画の処理だけでも、複数テクスチャを張った結果と同じ事が実現出来る

そうではなく、純粋にマルチテクスチャの手法を求める場合は
シェーダーに渡すテクスチャを必要枚数セットして
UVやサンプリング方法が違うならサンプラーも必要分を容易してセットする

ただし扱える最大数はハードスペック依存だから、
アプリ起動時にでも調べて最大数を超えない処理をいれないと駄目かと

132:デフォルトの名無しさん
10/12/27 01:07:14
それから、マルチテクスチャの場合は
レンダーステートで行っていた場合のブレンドを、シェーダー内で行わないと駄目だね

133:デフォルトの名無しさん
10/12/27 03:30:19
67ではないが非常にわかりやすい解説でよくわかりました

134:デフォルトの名無しさん
10/12/27 09:55:07
こんにちは、Direct3Dを勉強しているものです。
URLリンク(marupeke296.com)
例えば上記サンプルを実行中に
Ctrl+Alt+Deleteを押してタスクマネージャを出そうとすると
ポリゴンとか全部消えて画面が真っ白になります。
他のサイトのサンプルとかでも全てそうなりました。
この現象を回避する方法はあるでしょうか?

135:デフォルトの名無しさん
10/12/27 09:57:14
デバイスのロストについて調べるとよろし

136:デフォルトの名無しさん
10/12/27 10:19:38
>>134
タスクマネージャーってCtrl+Shift+Escで呼び出す物なんだけど。
オレ、釣られてる?

Ctrl+Alt+Deleteで表示が死ぬのはまた別の話。
おそらくは >135
オレの書いたプログラムだと大丈夫だった。

137:デフォルトの名無しさん
10/12/27 12:32:20
Ctrl+Alt+Deleteにタスクマネージャってボタンがあるから別に間違いじゃないな
必ずデバイスロストしてくれるのでチェックに便利だよ


138:デフォルトの名無しさん
10/12/27 13:03:21
>>136
むしろ俺は、Ctrl + Shift + Escでタスクマネージャを直接呼び出せる事を初めて知った。
Vista以降の仕様なのかな? まぁ時計表示右クリックでも出せるから不便には感じてなかったんだが。

139:デフォルトの名無しさん
10/12/27 13:11:14
Ctrl+Shift+EscはXPにもある
つかタスクバー以外に時計の右クリックでもでるんだな
あれも一応タスクバーの中か

140:デフォルトの名無しさん
10/12/27 14:58:10
なぜタスクマネージャを表示するとロストするのか

141:デフォルトの名無しさん
10/12/27 15:08:33
vista以降だとディスプレイアダプタがWindowsに乗っ取られるから

タスクマネージャーはショートカットかタスクバーから起動できるからまだいいけど
UACが発動した時に同様の理由でロストするのはどうにかして欲しかったな

142:デフォルトの名無しさん
10/12/27 15:16:38
なんか話が混乱してるな。

前提: XP

・簡易ログオン有効時
Ctrl+Alt+Delでいきなりタスクマネージャが起動。デバイスロストなし。
・簡易ログオン無効時
Ctrl+Alt+Delでデスクトップが切り替わる。デバイスロストする。

Ctrl+Shift+Escでタスクマネージャが起動するのは少なくともNT4の頃にはあった。

Vista以降のUACでデバイスロストするのはデスクトップが切り替わるため。
これはグループポリシーで変更可。

間違ってたら訂正にょろ。

143:デフォルトの名無しさん
10/12/27 15:50:59
tiny.xのマテリアルって
ディフューズ r1.0 g1.0 b1.0
アンビエント r0.0 g0.0 b0.0
で合ってます?

144:デフォルトの名無しさん
10/12/27 16:07:27
あってる

145:デフォルトの名無しさん
10/12/27 16:33:10
的外れな質問してるかもしれませんが、スキンメッシュのシェーダーで
デバイス->SetTexture();
だとテクスチャが貼られますが、
エフェクト->SetTexture();
だと上手く貼られません。
デバイス->SetTexture();は固定機能パイプラインではないのですか?

146:デフォルトの名無しさん
10/12/27 16:41:19
だとしたらシェーダーで描画できてないのだろう

147:デフォルトの名無しさん
10/12/27 16:43:38
>>145
エフェクトと言ってるんだから ID3DXEffect を使ってるんだと思うんだけど、
あれはIDirect3DPixelShader9やIDirect3DVertexShader9 のラッパーなわけで、
それを念頭においた上で ID3DXEffect 自体の作法に従わないといけないよ。
詳しくはサンプルソースを読め、だけど、

例えばBegin、BeginPass、EndPass、Endはちゃんと呼んでる?

148:145
10/12/27 17:05:51
セオリー通り、シェーダー描画のステップを踏んでます。
.fx内でテクスチャの色を変えたりすると描画も変わるので、テクスチャはエフェクトファイル内を通っていると思います。

あと、これからもDx9をサポートするGPUは固定機能も使えますか?

149:デフォルトの名無しさん
10/12/27 17:20:01
描画部のコードとピクセルシェーダを書いて

150:デフォルトの名無しさん
10/12/27 17:27:07
できれば全部書いてくれ

151:デフォルトの名無しさん
10/12/27 17:27:21
>>148
うーん。ID3DXMeshは使ったこと無いからその辺はわからんな。
他のやつよろしく。

正常時、異常時それぞれでPIXで描画シーケンスの
ログを取って比較してみたら何かわかるんじゃない?

RADEON HD2600系以降でDirectDrawがソフトウェア実装になったように、
古い機能がエミュレーション化される可能性は常にあるよ。

ま、どうせ描画機能は複数パターン作って適宜切り替える実装になるので
必要になったものを順に実装していけばいいよ。

152:デフォルトの名無しさん
10/12/27 17:29:30
うーん。ID3DXMeshは使ったこと無いからその辺はわからんな。
他のやつよろしく。

正常時、異常時それぞれでPIXで描画シーケンスの
ログを取って比較してみたら何かわかるんじゃない?

RADEON HD2600系以降でDirectDrawがソフトウェア実装になったように、
古い機能がエミュレーション化される可能性は常にあるよ。

ま、どうせ描画機能は複数パターン作って適宜切り替える実装になるので
必要になったものを順に実装していけばいいよ。

153:デフォルトの名無しさん
10/12/27 17:55:28
なんで2回いうんですか?
なんで2回いうんですか?

154:デフォルトの名無しさん
10/12/27 19:19:25
大事なことだからだよ。

155:デフォルトの名無しさん
10/12/27 21:12:52
D3DXIntersectを使い3D空間での「3Dモデルのメッシュ」と「平面の板のメッシュ」の当たり判定を取りたいのですが
MSDNを見てもいまいち引数の内容が分かりません、第1引数から軽くでいいので教えて頂けないでしょうか


156:デフォルトの名無しさん
10/12/27 21:21:39
数学的な考え方として何をどうしようとしてるは
そもそも理解出来てるのか

157:デフォルトの名無しさん
10/12/27 21:24:29
そもそも書かれてる通りなんだが
URLリンク(msdn.microsoft.com)(VS.85).aspx


158:デフォルトの名無しさん
10/12/27 21:25:24
pU,pVが最初にヒットした面の座標かな?

そのまんまだね

159:デフォルトの名無しさん
10/12/27 21:30:50
レイの始点と向きをワールド座標軸で指定してるから思った通りに当たらないとかってオチじゃないの?
こいつはメッシュのローカル座標軸で指定

160:デフォルトの名無しさん
10/12/27 21:36:02
多分質問の仕方からして、特に
>「3Dモデルのメッシュ」と「平面の板のメッシュ」の当たり判定

って質問からして、そもそも意味自体丸ごと理解出来ていないと思われ

161:デフォルトの名無しさん
10/12/28 10:22:25
数学って難しいね

162:デフォルトの名無しさん
10/12/28 10:30:25
質問です。
3D空間に半透明物体を配置したいのですが、正しく描画するためにはソートが必要だと思います。
このソートを行うには、どういう方法が一般的なのでしょうか。
GPUに頂点データを送り、射影変換などの変換をし、半透明物体だけその結果を一端CPUに戻し、ソートして、またGPUに送る、ということをしないと駄目なのでしょうか。

163:デフォルトの名無しさん
10/12/28 10:56:55
どういう方法もクソもない。
カメラと物体の距離を計算して遠い方から描画するだけだ。


164:デフォルトの名無しさん
10/12/28 11:21:14
>結果を一端CPUに戻し
出来るのなら好きにしろ

165:デフォルトの名無しさん
10/12/28 13:25:41
>>162
>GPUに頂点データを送り、射影変換などの変換をし、半透明物体だけその結果を一端CPUに戻し

これはあまり現実的じゃないなぁ
GPUの計算結果をCPUに戻すには一旦定数レジスタに放り込まねばならず
そしてそのサイズは余り大きくはないのでモデルの規模にもよるけど、まず無理
半透明のオブジェクトのみCPUで座標変換してソートしてから描画するしかないと思われ

166:デフォルトの名無しさん
10/12/28 15:54:25
半透明物体の頂点の処理だけソフトウェアでやるといい、ということですね。
その方向で実装してみます。
ありがとうございました。

167:デフォルトの名無しさん
10/12/28 18:20:57
マルペケ参考にして影の精度を上げようとしてるんだけど上手くいかんなー
自己影の角が取れん・・・

168:デフォルトの名無しさん
10/12/28 18:32:21
シャドウ処理は精度を上げることを考えるより
低い精度でもなんとか見られるように+α工夫する方向で考えた方がいいぞ

169:デフォルトの名無しさん
10/12/28 18:47:51
ボリュームとか?

170:デフォルトの名無しさん
10/12/28 19:21:02
IDirect3D9の変数名は何にしてますか?

171:デフォルトの名無しさん
10/12/28 19:27:32
d3d9

172:デフォルトの名無しさん
10/12/28 19:29:43
俺はd3ddeviceはunkoって決めてる

173:デフォルトの名無しさん
10/12/28 19:32:31
mD3D

d3dってなんやねん!

174:デフォルトの名無しさん
10/12/28 20:20:31
>>173
Direct3D

175:67
10/12/28 21:28:44
>>122
>>131
丁寧に説明ありがとうございます。
テストプログラムではうまくいきました。
実際に組み込む時でちょっとうまくいってませんが、これは自分の勉強不足なので
解決できると思います。


176:デフォルトの名無しさん
10/12/29 15:30:10
ピクセルシェーダーの引数でPos:POSITIONとすれば
入ってくるのは頂点シェーダーから出てきたポジション?

177:デフォルトの名無しさん
10/12/29 15:33:00
ピクセルシェーダに入力セマンティックPOSITIONは無いよ

178:デフォルトの名無しさん
10/12/29 15:43:44
ピクセルシェーダーにポジション入れたいんだけどどうすればいいかな

179:デフォルトの名無しさん
10/12/29 16:08:33
>>178
TEXCOORD

180:デフォルトの名無しさん
10/12/29 16:13:22
なるほどサンクス

181:デフォルトの名無しさん
10/12/29 19:51:53
どうも

182:デフォルトの名無しさん
10/12/29 22:40:38
>>167
俺もあれやってみたが、劇的な変化はないよな
結局シャドウマップのサイズが足りないなら結局焼け石に水ってことか

183:デフォルトの名無しさん
10/12/30 04:31:24
HLSLでポイントライトをやろうと思っています。

float Light_vol = clamp( distance(ライトのポジション, 頂点のポジション), 0.0f, 1.0f );
Col = dot( 法線, normalize( ライトのポジション.xyz - 頂点のポジション.xyz ) * Col * ライトの色 * Light_vol;

これで光の当たる場所がうまくいきません。どこが問題でしょうか。

184:デフォルトの名無しさん
10/12/30 04:44:17
ライトをワールド空間座標で指定してるなら
法線もワールド行列変換するか
ライトを予めワールドの逆行列を掛けてローカル空間座標に変換しておく

185:デフォルトの名無しさん
10/12/30 04:53:03
ライトはワールドのポジションで、法線もワールドに変換してあります。

186:デフォルトの名無しさん
10/12/30 05:26:56
>>183
なんで情報の出し惜しみをするんだろう?
頂点シェーダ部分全部書けよ


一般的なポイントライトだと

float3 vL = ライトのポジション.xyz - 頂点のポジション.xyz;// 光源ベクトル
float lenL = length(vL);// 光源ベクトルの長さ(光源への距離)

// 光の強さ(距離の二乗で減衰させて適当な係数を掛けて調節)
float Light_vol = 100 * dot( 法線, normalize(vL) / (lenL*lenL) ;

Col = Col * ライトの色 * max(0, Light_vol);

187:デフォルトの名無しさん
10/12/31 01:55:49
傾斜に対してキャラクターをクォータニオンで垂直に回転させるソースをくれ

188:デフォルトの名無しさん
10/12/31 04:02:09
うわーやっとうまく行った!
>>186ヒントさんくす!!

189:デフォルトの名無しさん
10/12/31 08:26:48
>>187
クォータニオンなんか使わないで傾斜にそった姿勢行列(傾斜行列)に対して

ワールド→ローカル(傾斜行列)→ローカル(傾斜行列)で垂直に回転→ワールド

でベクトル取得すればいいんじゃね?
後はクォたんでかけるもかけないも好きにしろと思う

190:デフォルトの名無しさん
10/12/31 16:20:07
画面から外れるものは描画されずにGPUが節約されるということですが、
メッシュがカメラから外れる場合は描画ループに入れずに飛ばしてもパワー節約にはなりませんか?
たとえば、マトリックスとかライティング計算とかが省かれて軽くなるとか。

191:デフォルトの名無しさん
10/12/31 16:26:48
そりゃもちろん描画しない分だけパワー節約になる

192:デフォルトの名無しさん
10/12/31 16:33:00
じゃあオブジェクトを大量に作る場合、カメラの近くに来たものだけレンダーしたほうがいいのか

193:デフォルトの名無しさん
10/12/31 17:05:12
まぁ、そんなのは常識の範囲内でさらに一歩進んだ先
描画する描画しない閾値付近で
オブジェクトがパッと消えたり現れたり
或いはLODレベルが切り替わってしまうのをどうにかしようっていうことの方問題になりやすいんだが

194:デフォルトの名無しさん
10/12/31 18:10:56
レンダーターゲットをテクスチャサーフェイスにしようと思っています。
大きすぎるテクスチャだと古いGPUでは対応していないということはありますか?
1024^2でやろうと思っていますが、5年くらい前のPCだともっとサイズを小さくしたほうがいいですか?

195:デフォルトの名無しさん
10/12/31 18:21:01
5年前くらいなら最低でも2048x2048はあるはず

テクスチャの最大サイズはデバイスのCapsから取得できるので
想定値より小さかったらそれに合わせるとかにしとけば良いんじゃ

196:デフォルトの名無しさん
11/01/01 04:17:12
ポリゴンにテクスチャを着けたビルボードを、画面にピッタリ張り付いたようにしたいのですが、どんなマトリックスの設定にすれば良いですか?

197:デフォルトの名無しさん
11/01/01 04:32:38
>画面にピッタリ張り付いたように

もうちょっとゆとり成分を抜いてくれ

198:デフォルトの名無しさん
11/01/01 08:33:13
体力ゲージとかを作りたいって事だろ。・・・たぶん。

199:デフォルトの名無しさん
11/01/01 11:34:23
タイトル画面とかで1枚絵をべたって貼りたいということだと俺は思った

200:デフォルトの名無しさん
11/01/01 11:36:09
そんなのに、ビルボードのポリゴン使わんでもいいやん

201:デフォルトの名無しさん
11/01/01 11:36:09
3D空間で屈折マップをやりたいんですが
毎フレーム、テクスチャはどうやって用意したらよいでしょうか?

202:デフォルトの名無しさん
11/01/01 11:37:57
>>196
これか
D3DXMatrixOrthoLH

203:デフォルトの名無しさん
11/01/01 12:22:03
単純に正面を向いたビルボードを表示したいだけかもよ?

204:デフォルトの名無しさん
11/01/01 14:46:29
>>203
なるほど
だったら
D3DXMATRIX mat = camMat;(ビュー行列ではない)
mat._41 = pos.x;mat._42 = pos.y;mat._43 = pos.z;
的なコードだな

205:デフォルトの名無しさん
11/01/01 16:38:16
>>196 みたいな問いでも、このスレの住人は本能的に数学的な解釈して回答してくれる
ゆとりを生み出すのは、お前らの優しさのせい
このイケメンどもめ。 そして謹賀新年、明けましておめでとうございます


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