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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
※回答する人も、質問する人も必ず読んでください

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

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

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
2デフォルトの名無しさん:2010/05/20(木) 20:10:58
前スレ
【C++】 DirectX初心者質問スレ Part28 【C】
http://pc12.2ch.net/test/read.cgi/tech/1268666208/
3デフォルトの名無しさん:2010/05/20(木) 20:20:53
DirectX10以降ってもう.NETでしか開発できないの?
4デフォルトの名無しさん:2010/05/20(木) 21:38:33
いちもつ
>>3
なんでやねん
5デフォルトの名無しさん:2010/05/20(木) 22:24:11
.NETはまったく別な技術だぜ
まあvista以降は.netflameworkはプリインスコではあるが
6デフォルトの名無しさん:2010/05/20(木) 22:54:36
>>3
そうだよ。勘が鋭いな。感心するわ。
7デフォルトの名無しさん:2010/05/21(金) 22:24:21
Xファイル読み込んで表示したら
奥行きは違うけどカメラから見ると重なっている状態だと
手前の部分が透けて奥の部分が見えてしまうことがあるんだけど
どうすればいいの?
モデルはゲームプログラミングwikiのもので、ビューワでは正常に表示される
8デフォルトの名無しさん:2010/05/21(金) 22:31:29
>>7
奥行きは違うけどカメラから見ると重なっている状態
についてもっとkwskたのむ
98:2010/05/21(金) 22:50:02
スマン意味が分かった
透ける=前後関係がおかしい
という意味ならzバッファがちゃんと有効になっているかチェックしたらどうだろう
透ける=アルファブレンド
なら、描画する順番、重なり方によっておかしくなる場合がある
10デフォルトの名無しさん:2010/05/21(金) 23:20:17
  __(^^) <ペイピッポォ 欝だ死のうDirectXスレのマスコット、ペイピッポォ君だピー
  /__ \
  | |   |  |
  (_) (__)
愛用ツール:PIX
11デフォルトの名無しさん:2010/05/21(金) 23:23:54
>愛用ツール:PIX
なんかワロタw
12デフォルトの名無しさん:2010/05/22(土) 18:36:38
BGM再生するにはDirectShowでもできるらしいですが,
DirectMusicと比べて長所短所いかがですか?
13924:2010/05/22(土) 21:13:36
前スレ >>925-942
勉強になりました。ありがとうございます。
14デフォルトの名無しさん:2010/05/22(土) 22:18:59
DirectShowもDirectMusicも新しいDirectxSDKからは
消えてしまっていなかったっけ

DirectShowはプラットフォームSDKに移動だっけか
15デフォルトの名無しさん:2010/05/22(土) 23:30:04
BP↑ = s BA↑ + t BC↑

0 ≦ s ≦1
0 ≦ t ≦t

を簡単に表す方法はありますか?
成分で2式連立してs、tを出す方法しか思いつかないのですが
16デフォルトの名無しさん:2010/05/22(土) 23:38:56
0 ≦ t ≦t
?
17デフォルトの名無しさん:2010/05/22(土) 23:44:15
BP↑ = s BA↑ + t BC↑

0 ≦ s ≦1
0 ≦ t ≦1

を簡単に表す方法はありますか?
成分で2式連立してs、tを出す方法しか思いつかないのですが
18デフォルトの名無しさん:2010/05/22(土) 23:52:16
PはAC上のあると考えて良いのか?
それともABC内の全ての点?
19デフォルトの名無しさん:2010/05/22(土) 23:55:09
BA↑+BC↑の点とA、B、Cとの平行四辺形の内部にPがあるというつもりなのですが・・・
だから多分全ての点だと思います
20デフォルトの名無しさん:2010/05/23(日) 00:26:45
>>17
その思いついた方法ってやつでいいんじゃないの
21デフォルトの名無しさん:2010/05/23(日) 00:39:12
何が既知で何が未知なのかもよくわからん質問だ
22デフォルトの名無しさん:2010/05/23(日) 02:01:37
質問です。

d3dx9anim.hをインクルードするとエラーが起きます。

error C2065: 'IID_ID3DXAnimationSet' : 定義されていない識別子です。
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
error C2078: 初期化子の数が多すぎます。
error C2065: 'IID_ID3DXKeyframedAnimationSet' : 定義されていない識別子です。
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
error C2374: 'DEFINE_GUID' : 再定義されています。2 回以上初期化されています。
.
.
.

DirectXSDKは、February 2010 を使用しています。
同じような経験のある方、原因を教えてください。
よろしくお願いします。
23デフォルトの名無しさん:2010/05/23(日) 02:02:44
流れ星の尾みたいなのってどうやって作るんですか?
2422:2010/05/23(日) 02:16:10
自己解決しました。

>>23
単純に先頭の画像を薄めた画像をどんどん重ねる場合もあるし
ラインを書く場合もある
25デフォルトの名無しさん:2010/05/23(日) 03:20:01
流れ星の尾って
モーションブラーみたいなのを言ってるの?
単に軌跡に星みたいなのを飛ばしたいだけ?
26デフォルトの名無しさん:2010/05/23(日) 05:15:23
Game programming gems2を見てカメラの右ベクトルright.x = forward.x;right.z=-forward.x;right.y=0;として
final.x=inputRL*right.x+inputUD*forward.x; final.z=inputRL*right.z+inputUD*forward.zとしたのですが逆方向に動いたりします
場合分けして入れ替えないといけないですか?それとも他のとこが間違ってるだけですか?
27デフォルトの名無しさん:2010/05/23(日) 05:50:31
変数名とかどうでもいいから
やりたい事と聞きたいことをはしょらずに丁寧に説明してくれ
28デフォルトの名無しさん:2010/05/23(日) 06:00:52
カメラというか、画面に映ってる座標に合わせて十字キーを右に倒せば画面の右に動く
十字キーを上に倒せば画面の奥に動くようにしたいです
今、たまにその通りになるときもあるのですが、偶然の時が多いです。
カメラの動きを同時にいじってまして、そっちと連携が取れてない可能性が100%なのですが、この式だけで本来ならどのようなカメラの向きでも十字キ
ーに見合った動きになるのか聞きたかったのです。例えば、北向きをz正、東をx正に作ってる時に、カメラが後ろから撮ってて、ワールド座標ではキャラは南を向いてる場合に右を押せば西方向に進む
にはこの式だけでできるのかが聞きたかったのです。
29デフォルトの名無しさん:2010/05/23(日) 06:23:24
とりあえず、カメラの前がforwardで右がrightなら
right.x = forward.x;right.z=-forward.x
じゃなくて
right.x = forward.z; right.z=-forward.x
だと思うけどそこは書きミス?
30デフォルトの名無しさん:2010/05/23(日) 06:26:48
書きミスでしたすいません
ソースではちゃんとなってます
31デフォルトの名無しさん:2010/05/23(日) 06:42:09
できました
ありがとうございました
32デフォルトの名無しさん:2010/05/23(日) 10:30:39
ほへー、あんがとさん。
33デフォルトの名無しさん:2010/05/23(日) 12:08:44
>>24>>25
こんな感じの弾の先から段々薄く広がってく感じの奴を作りたいんですが。
http://hp.vector.co.jp/authors/VA012735/applet/fountain2.htm
34デフォルトの名無しさん:2010/05/23(日) 12:39:24
もしかして流れ星ではなく彗星なんじゃないか
35デフォルトの名無しさん:2010/05/23(日) 12:41:40
>>33
それはフィードバックエフェクト系じゃないの?
簡単に言うと、1フレーム前のバックバッファをボカしてるだけ。
36デフォルトの名無しさん:2010/05/23(日) 15:29:38
エフェクト用のレンダリングターゲットを2枚(A,B)用意して
Aを現在のレンダリング内容
Bを1フレーム前のレンダリング内容とする

Aのカラーとアルファ値をクリアして現在の●を書き込む
その上にBの内容を適当な半透明(もしくは加算合成)で書き込む
出来上がったAを画面に描画する

次のフレームではAとBを入れ替えて
Bを現在用にして
Aには前回の描画内容がそのまま残ってるのでこれをBに合成

以下AとBを毎フレーム入れ替えて繰り返し
37デフォルトの名無しさん:2010/05/23(日) 15:41:08
フィードバックエフェクトってやつだね。
38デフォルトの名無しさん:2010/05/23(日) 15:46:56
ちょっと抽象的な質問なのですが

画面にシャボン玉を出して、シャボン玉の向こう側の景色がちょっと歪んで見える表現。

をやりたいのですが、どんなワードでぐぐれば参考ページがでてきますでしょうか?
シャボン玉 シェーダ
薄膜シェーダ
とかだといまいち違ったものが出てきてしまいまして…

昔泡のウサギをサンプルにしたページをどこかで見かけた記憶があるのですが…
39デフォルトの名無しさん:2010/05/23(日) 16:02:15
レイトレーシングじゃない?
40デフォルトの名無しさん:2010/05/23(日) 16:11:26
球に環境マッピングで向こう側の景色を貼り付ければ歪んでみえるんじゃね?
41デフォルトの名無しさん:2010/05/23(日) 16:19:47
どうでもいいけど、シャボン玉くらいの薄さだと
向こう側はまったくと言っていいほど歪まないよね。
42デフォルトの名無しさん:2010/05/23(日) 16:21:08
>>38
bubble, refraction, distortionとか?

http://developer.amd.com/archive/gpusamples/BubbleShader/Pages/default.aspx
この辺は?
43デフォルトの名無しさん:2010/05/23(日) 16:24:52
これのことじゃね?

http://maverickproj.web.fc2.com/pg60.html
44デフォルトの名無しさん:2010/05/23(日) 17:08:47
>>43
きょきょ?
45デフォルトの名無しさん:2010/05/23(日) 20:03:49
>>38
泡のうさぎって、もしかして、
http://developer.download.nvidia.com/SDK/9.5/Samples/samples.html
の下から17個目くらいのとこにある、Refractive Dispersionのこと?
46デフォルトの名無しさん:2010/05/24(月) 00:07:09
プログラムシェーダーが無いころってどうやって組んでたんですか?
47デフォルトの名無しさん:2010/05/24(月) 00:08:48
D3DXLoadMeshFromXで読み込んだモデルを
複数表示するには?
48デフォルトの名無しさん:2010/05/24(月) 00:11:47
>>47
DrawSubsetを呼ぶ
49デフォルトの名無しさん:2010/05/24(月) 00:12:12
その前になぜ複数表示できないと思ったんだよ?
50デフォルトの名無しさん:2010/05/24(月) 01:25:57
>>35-37
ありがとうございます。
フィードバックエフェクトで調べてみます。
51デフォルトの名無しさん:2010/05/24(月) 01:33:35
>>50
「DirectXシェーダプログラミング 仕組みからわかるゲームエフェクトテクニック」
出版社:ソフトバンククリエイティブ

フィードバックエフェクトはこの本に載ってたよ。
よかったら参考にしてみて。
52デフォルトの名無しさん:2010/05/24(月) 01:37:59
フィードバックエフェクトって一部でしか使われてない造語じゃね?
53デフォルトの名無しさん:2010/05/24(月) 02:20:46
http://www.c3.club.kyutech.ac.jp/gamewiki/index.php?plugin=attach&refer=%A5%AB%A5%E1%A5%E9%A5%C6%A5%AF%A5%CB%A5%C3%A5%AF&openfile=CameraGomu.zip
このページのサンプルをそのまま3Dにしたのですが上手くいきません
カメラが一杯に引いたときに画面が高速でほんの少しの幅だけ振動してしまいます
変えたのは、サンプルのCamera.cpp以外は消してCamera.cppにSprite.cppのSetPos()を作って
描画ループ中でEye、Atにキャラの座標を入れたあと
pCamera->SetPos(Eye.x,Eye.z);
pCamera->Action();
Eye.x = pCamera->m_vec2Pos.x;Eye.z = pCamera->m_vec2Pos.y;
At += 向きベクトル;
D3DXMatrixLookAtLH( & View, & Eye, & At, & Up );
としたのと、同じ意味だと考えて、
void Camera::Action()
{loat fRot = MakeRot(GetRotCamera(),m_pCameraObject->GetRot());
をfloat fRot = GetRotCamera();に変えました
なぜなら、MakeRotは引数から相対角度を取得と書いてあったので3D上ではGetRotCameraだけでできるような気がしたからです。
各所のm_pCameraObject->GetPos()//(.成分)がでてくるのですが、ここにはexternでキャラの座標を直接入れたのでCameraファイル以外を消しました。
よろしくおねがいします


54デフォルトの名無しさん:2010/05/24(月) 02:53:19
俺が頭悪いだけかもしれんが、変換行列とか求めるのって
図書いて導き出せるもんなんですか?線形代数何度も勉強してるがダメだ・・・
55デフォルトの名無しさん:2010/05/24(月) 04:31:09
またお前か
いい加減頭の悪い質問の仕方するのやめろよ
56デフォルトの名無しさん:2010/05/24(月) 05:21:07
図を描いて導くって意味わからん。
数学の話なんだから式をかいてりゃ求まる。
57デフォルトの名無しさん:2010/05/24(月) 05:56:45
>>52
造語じゃなくて、一般的過ぎる言葉って感じ。
フィルタの出力を入力に戻す特殊効果全般を指す言葉。
58デフォルトの名無しさん:2010/05/24(月) 06:32:06
>>53
その書き換えたソースうpってくれよ
59デフォルトの名無しさん:2010/05/24(月) 06:34:49
>>58
ソースくれくれ厨乙
60デフォルトの名無しさん:2010/05/24(月) 06:36:42
なんたる自意識過剰
61デフォルトの名無しさん:2010/05/24(月) 06:37:19
>>54
どの軸を回転させるかというのは計算方法は決まってるから
そういった意味では導ける

変換行列自体の意味を知りたいなら勉強が足りない
もっと調べて本を読め

変換行列から軸の回転具合を逆算するとか言う話なら
別に一つずつの変換行列を保持しておかないと超面倒なことになる
62デフォルトの名無しさん:2010/05/24(月) 06:39:07
>>59
未完成のソースもらったって仕方ないだろ……
何いってんの
63デフォルトの名無しさん:2010/05/24(月) 06:43:27
つか、そのうpした実行ファイルでも
・上下連打するとガクガク
・いっぱいに近づいた時or離れた時にガクガク

元が悪いんじゃね?
64デフォルトの名無しさん:2010/05/24(月) 07:16:18
てかこんな2Dチックな計算してるのを3Dに直すより
行列で回転移動させた方がスマートになるんじゃね?
3Dで表示してる以上キャラのワールド行列はすでに出来上がってるのに
なんでいちいち全部分解して再計算するの?
65デフォルトの名無しさん:2010/05/24(月) 07:27:59
>>64
言ってる意味がよくわからんが、2D上で試すことはたまにやるし
分解しないと計算もへったくれもなくね
66デフォルトの名無しさん:2010/05/24(月) 07:49:38
なぜアークタンジェントが使われるのですか?
67デフォルトの名無しさん:2010/05/24(月) 07:59:33
>>66
質問は具体的に
68デフォルトの名無しさん:2010/05/24(月) 09:17:01
もうほっとけよ
69デフォルトの名無しさん:2010/05/24(月) 09:28:04
2つの2次元ベクトルから相対角度の出し方を教えてください
70デフォルトの名無しさん:2010/05/24(月) 09:40:28
できました
71デフォルトの名無しさん:2010/05/24(月) 10:03:46
まだできてません

>>70
誰ですか?
72デフォルトの名無しさん:2010/05/24(月) 10:04:22
>>71
荒らしは巣に帰れ
73デフォルトの名無しさん:2010/05/24(月) 10:08:25
ミスったorz
>>70
荒らしは巣に帰れ
74デフォルトの名無しさん:2010/05/24(月) 10:13:24
>>73
オマエモナー
75デフォルトの名無しさん:2010/05/24(月) 11:49:56
>>69
素直に数学やれ

内積で出来る
76デフォルトの名無しさん:2010/05/24(月) 12:00:40
>>75
ありがとうございます。全く気付きませんでした
タンジェントの足す公式で今知ったアークタンジェントを使いました 
77デフォルトの名無しさん:2010/05/24(月) 12:14:24
atanってことは外積でやったのか
78デフォルトの名無しさん:2010/05/24(月) 17:25:07
ここ二年ばかり新しい
sdkインストールしてないや
79デフォルトの名無しさん:2010/05/24(月) 17:45:59
ふーん
どうでもいい
80デフォルトの名無しさん:2010/05/24(月) 17:59:51
D3DXMatrixShadowの内部でやってる式が理解できない。。。
ヘルプに式書いてるんだけど分かる人居ます?
81デフォルトの名無しさん:2010/05/24(月) 18:18:13
パス1
82デフォルトの名無しさん:2010/05/24(月) 18:29:28
>>80
Jim Blinn's Corner第1巻の第6章に詳しく載ってる。
俺は英語版しか持ってないけど、何年か前に日本語訳も出てたと思う。
結論だけ書くと、地面の同次座標表現をG(4次元縦ベクトル)、
光源の同時座標表現をL(4次元横ベクトル)とするとき、
 ShadowMatrix = (LG)I - GL
となる。ただし、I は4x4単位行列。
LGがスカラー(内積)でGLが4x4行列になることに注意。
83デフォルトの名無しさん:2010/05/24(月) 18:34:57
>>82
ありがとう
84デフォルトの名無しさん:2010/05/24(月) 18:36:31
あれ?D3DXMatrixShadowのヘルプを見たら>>82の式と符号とか微妙に違うな。
理由はよくわからないけど、基本はBlinn's Cornerの理論と同じだと思う。
85デフォルトの名無しさん:2010/05/24(月) 19:02:30
http://son-son.sakura.ne.jp/programming/opengl_1.html
googleで最初にヒットしたサイトだが、
D3DXMatrixShadowの理屈はここで説明されているものと一緒だろう。
※「X = M*Xs」と書いているが、「Xs = M * X」の間違いかなぁ・・?

まあ、他の線形代数の変換式のように、頭でイメージ出来る類ではなさそうだから
そういうもんだと済ませるのがよさそう。
86デフォルトの名無しさん:2010/05/24(月) 21:44:25
質問です。

レンダリングターゲットにできるテクスチャーをAとします。
Aに対して、Aをテクスチャとして利用しての描画はできるのでしょうか?


曇りガラスのように、向こう側に見える風景をゆがめる物体を表示するとします。
それが複数枚重なっている場合、一番奥にはガラス描画前の風景を。2番目には1番目のガラスを描画した後の風景を…。
といった感じに、テクスチャを渡す必要があると思うのです。

その際、
バックバッファに風景描画
 テクスチャにコピー
そのテクスチャを使ってバックバッファに2枚目を描画
 テクスチャにコピー

とやるのはコストが高い気がしまして。
とはいうものの、Aを参照しながらAに描画なんてことができる気もまたしなくて…。
87デフォルトの名無しさん:2010/05/24(月) 21:53:37
>>86
できない。

その例ではコピーする必要はなくて、レンダリングターゲットを2枚用意して
交互に入れ替えて使えばいい。
88デフォルトの名無しさん:2010/05/24(月) 21:54:57
すまん、何に使うのかよく読んでなかった。
ガラスの描画だと、やっぱりコピーして使うものか。
89デフォルトの名無しさん:2010/05/24(月) 23:05:01
さあ
90デフォルトの名無しさん:2010/05/25(火) 00:02:01
バックバッファと同じサイズのレンダリングターゲットテクスチャAと
適当なサイズの曇りガラス用レンダリングターゲットテクスチャBを用意して

Aに風景をレンダリングする
AをテクスチャとしてBに曇り部分をレンダリングする
BをAにレンダリング

これを曇りガラスの枚数分繰り返して
最後にAをバックバッファにレンダリングでいいんじゃね?
91デフォルトの名無しさん:2010/05/25(火) 04:33:37
詰んだ
forward = Eye - At;D3DXMatrixLookAtLH( & View, & Eye, & At, & Up );
カメラの右ベクトルright.x = forward.z;right.z=-forward.x;right.y=0;
final.x=inputRL*right.x+inputUD*forward.x; final.z=inputRL*right.z+inputUD*forward.z
D3DXVec3Scale( &final, &final, 大きさ)
D3DXVec3Add( & final, & final, & Pos ); Pos = final;Posはマップ上の座標
絶対に値はあってる。はず。90度には動く。ただ画面の軸と関係ないし、マップのx、zとも関係無い何かを左右前後に動く
もう解決策が思いつきません。助けてください

92デフォルトの名無しさん:2010/05/25(火) 05:08:47
ソース出すのは確か嫌なんだよね?

じゃあ、そこに出てる変数を全部ウォッチに登録して
その計算後のすぐ後にブレークポイント打って
適当な方向にキーを入れた時の
全部の変数の値見れるようにしたもののSSをうpしてよ
93デフォルトの名無しさん:2010/05/25(火) 05:11:03
それ以前に
デバッカの使い方しらないから躓いてるんじゃないの?w
94デフォルトの名無しさん:2010/05/25(火) 05:15:55
はい
ブレークポイントで止めるくらいしか知りません。ウォッチもあまりやったことがありません。頑張ってみます
95デフォルトの名無しさん:2010/05/25(火) 05:24:03
D3DXMatrixLookAtLH( &View, &Eye, &At, &Up );
D3DXMATRIX m;
D3DXMatrixIdentity(&m);
m._11 = View._11;m._12 = View._21;m._13 = View._31;
m._21 = View._12;m._22 = View._22;m._23 = View._32;
m._31 = View._13;m._32 = View._23;m._33 = View._33;
D3DXVECTOR3 v( inputRL, 0.0f, inputUD);
D3DXVec3Scale( &v, &v, 大きさ);
D3DXVec3TransformCoord(&v, &v, &m);
Pos += v;
96デフォルトの名無しさん:2010/05/25(火) 05:25:46
エスパーすると

inputUDとinputRLに
アナログキーの情報が-1.0〜1.0fで入ってると仮定して(だよね?)

ワールド座標軸が奥方向がZ+であるのに対して
inputUDのU方向の入力値が-だから
X軸方向には正しく動けるけど
Z軸方向には反転して動いちゃうとかってオチじゃないの?
97デフォルトの名無しさん:2010/05/25(火) 05:40:09
>>95
ありがとうございます。あとでやってみます
At、View、UPがエラーでシンボルが見つかりませんとなります
それと、横を押した時と、その次のコマをうpれば良いですか?
画面が出てこないとキーを押せないのでその間に何回転もしてしまうのですが
98デフォルトの名無しさん:2010/05/25(火) 05:43:38
>>96
ありがとうございます
多分、Atの位置とキャラの座標を結んだ線を中心に前横後ろに移動してしまいます
Atには直前でキャラの座標が入ってるのですが、D3DXMatrixLookAtLHに入れる時にはキャラの向きを大きさ調節して足したのが入ってるのでキャラのちょっと前が今のAtです
自分のイメージでは、カメラとそのAtを結んだ線を基準に前後左右に動きたいのですが、なぜかキャラとAtを結んだ線が基準になってしまいます
99デフォルトの名無しさん:2010/05/25(火) 05:45:10
すみませんPIXでRelaseイベントしかデバッグできません。

100デフォルトの名無しさん:2010/05/25(火) 05:49:38
全部じゃなくて最小に削った奴でいいからもうソース出せって
じゃなかったら、もう少し日本語を磨いてから出直してくれ
101デフォルトの名無しさん:2010/05/25(火) 06:23:07
>>95
したら斜め上空に動いた
もうだめぽ
102デフォルトの名無しさん:2010/05/25(火) 07:55:07
ベクトルの大きさはそのままで方向だけあるベクトルと同じ向きにあわせるような関数はありませんか?
103デフォルトの名無しさん:2010/05/25(火) 08:01:59
>>102
普通にコピって大きさ変えれば良いだけだろ
104デフォルトの名無しさん:2010/05/25(火) 08:13:35
向けたい方向ベクトルをノーマライズして
元のベクトルの長さを掛ける
105デフォルトの名無しさん:2010/05/25(火) 08:25:54
ありがとうございました
106デフォルトの名無しさん:2010/05/25(火) 09:57:08
できたよー
107デフォルトの名無しさん:2010/05/25(火) 10:37:53
>>90
それって質問者の方法と何が違うの?
108デフォルトの名無しさん:2010/05/25(火) 11:26:29
いちいちバックバッファにか描かないで
直接テクスチャに描けばいいじゃん?ってことだろ
109デフォルトの名無しさん:2010/05/25(火) 16:58:07
うん
110デフォルトの名無しさん:2010/05/25(火) 17:33:24
3Dスティックに合わせて向きを合わせる方法を教えてください
111デフォルトの名無しさん:2010/05/25(火) 17:34:56
向きというか、回転です
方向は保持してるのですが、回りすぎてしまったりします
112デフォルトの名無しさん:2010/05/25(火) 18:56:47
3Dスティックって?向きがわかってるなら回りすぎないようにすればいいんじゃないでしょうか
113デフォルトの名無しさん:2010/05/25(火) 19:03:55
>>111
回りすぎないようにすれば大丈夫ですよ
114デフォルトの名無しさん:2010/05/25(火) 19:06:03
>>110 3Dスティックに合わせて向きを合わせれば合わせていいよ
115デフォルトの名無しさん:2010/05/25(火) 19:37:12
だからそのやり方がわからないんだって
式教えてください
116デフォルトの名無しさん:2010/05/25(火) 20:00:29
アナログキーの入力値を
atan2してキーを入力してる角度を出せばいい
カメラが回ってるならカメラの回転角度も加算する
117デフォルトの名無しさん:2010/05/25(火) 20:32:50
押した角度と今向いてる角度の差の絶対値がまだある時は、押した角度の方向に足し続ける
みたいな感じですか?
右回り、左回りはどういう判断ですれば良いのでしょうか?
118デフォルトの名無しさん:2010/05/25(火) 20:37:41
3DスティックってNINTENDO64の真ん中についてるやつだっけ?
119デフォルトの名無しさん:2010/05/25(火) 20:41:13
別に足さなくていいだろう
キーの入力方向とキャラの方向を一致させるだけ

まぁ、演出上どうしても足したいっていうなら
右回り左回りの判定は外積(2次元)を使う
120デフォルトの名無しさん:2010/05/25(火) 20:52:09
外積調べたけどどう使うのかわかりません。教えてください
121デフォルトの名無しさん:2010/05/25(火) 20:59:08
ジョイスティックとかなしで
モデルを指定した座標に向かせるとかってのはできるの?
122デフォルトの名無しさん:2010/05/25(火) 21:03:20
できます
後は回り方の判断だけだと思います
123デフォルトの名無しさん:2010/05/25(火) 21:08:06
まるぺけに内積外積の使い方が説明してあるから参考にするといいよ
124デフォルトの名無しさん:2010/05/25(火) 21:08:50
向かせたい方向と今向いてる方向の外積が上(天)を向いてるか下(地)を向いてるかで右左わかる
ちなみに上下の判定は上ベクトルとの内積の符号で
125デフォルトの名無しさん:2010/05/25(火) 21:14:53
ありがとうございます!やってみます!
126デフォルトの名無しさん:2010/05/25(火) 21:29:17
完璧にできました
ほんとうにありがとうございました
127デフォルトの名無しさん:2010/05/25(火) 22:28:30
>>126
どういたしまして
128デフォルトの名無しさん:2010/05/26(水) 00:09:05
http://www.nicovideo.jp/watch/sm8876975
上はニコニコ動画です。
こう言うエフェクトはどうやって出してるんでしょうか。
地道にパーツ毎にポリゴンを置いてテクスチャをUVアニメーションさせるんですか?
129デフォルトの名無しさん:2010/05/26(水) 00:39:55
作者に聞けよ

俺だったら専用ソフトとか
3Dモデリングソフトの流体シミュレートとかパーティクル生成プラグインで作成したエフェクトを再生するだけにするが
130デフォルトの名無しさん:2010/05/26(水) 01:35:46
専用ツールがあるからぐぐれかす

131デフォルトの名無しさん:2010/05/26(水) 02:24:15
ぐぐれかれーたべてきた
132デフォルトの名無しさん:2010/05/26(水) 08:20:32
>>128
某ツールだと出力するとアニメーションモデル(UV、テクスチャ含む)ができるから再生するだけw
動画としてもだせる
この場合も再生するだけ
133デフォルトの名無しさん:2010/05/26(水) 12:18:45
>>132
某ツールとはなんでしょうか?
肝心なことをはっきり言って下さいよ。
134デフォルトの名無しさん:2010/05/26(水) 13:47:14
directxで画像を読み込んで、2D描画を行う
プログラムを教えて下さい。
135デフォルトの名無しさん:2010/05/26(水) 13:48:09
ある程度3DCGのソフトでシュミレートできるとおもう
136デフォルトの名無しさん:2010/05/26(水) 14:49:05
画像をメモリに読み込んで、
その画像を表示するにはどんなコードを書けばいいでしょうか?
137デフォルトの名無しさん:2010/05/26(水) 14:49:13
できるとおもえばおもうね
138デフォルトの名無しさん:2010/05/26(水) 14:52:53
>>136
画像をメモリに読み込んでその画像を表示するコードを書けばいいですよ
139デフォルトの名無しさん:2010/05/26(水) 15:10:39
>>136
テクスチャサーフェイスをロックして画像を書き込む
140デフォルトの名無しさん:2010/05/26(水) 15:46:36
>>137
>>138
>>139
貴重な回答ありがとうございました!!
141デフォルトの名無しさん:2010/05/26(水) 17:48:39
>>110
>>3Dスティックに合わせて向きを合わせる方法を教えてください

一応解決してるみたいだけど、スティックの角度を求めて行列を回転してるとしたら二度手間じゃないか?
スティックの2DVecを絶対値にして行列の対応する場所にセットすればできるはず
142デフォルトの名無しさん:2010/05/26(水) 17:56:09
>>141
どういう意味ですか?
143デフォルトの名無しさん:2010/05/26(水) 18:10:56
詳しく説明する気力は無いし、うまく説明できる話からないけど
行列が3つの3次元ベクトルで出来ていて、姿勢を表してるとすれば

Vec1(X)    1 0 0
Vec2(Y)    0 1 0
Vec3(Z)    0 0 1

X、Y、Zはそれぞれ、姿勢変更する前のオブジェクトのローカルな軸(X、Y、Z)が、
姿勢変更後どんな方向を向くかを表してるようなもの

たとえば次の行列で、+Z軸が正面のオブジェクトを変換すると、Y軸で回転した+X軸を向くオブジェクトとなる

0 0-1
0 1 0
1 0 0
144デフォルトの名無しさん:2010/05/26(水) 18:11:48
>>141
質問者はスティックの向きに合わせる行列が欲しいのではなく、
向きを少しずつ回転させていって合わせたい
超能力を使えば行間から読み取れるはずw
145デフォルトの名無しさん:2010/05/26(水) 18:16:51
スティックの軸X、Yが長さ1で正規化されているとした場合
+Z軸を正面とするキャラクターをスティックの方向にむけるには、次の行列を作ればいい

Z 0 -X
0 1 0
X 0 Z

DirectXだったら4x4の行列だから、キャラクターの位置情報(X' Y' Z')を追加してこうなる

Z 0 -X 0
0 1 0 0
X 0 Z 0
X' Y' Z' 1

たぶんな、ケアミスしてたらごめんね
146デフォルトの名無しさん:2010/05/26(水) 18:18:55
>>144
そうだったのか

ただこの手の非効率な処理ってよく見かけるから、参考になったらいいな
147デフォルトの名無しさん:2010/05/26(水) 18:23:11
カメラがグルグル回せる状態だと結局角度で管理した方が楽だと思うが
148デフォルトの名無しさん:2010/05/26(水) 18:51:56
うん。楽だね。
149デフォルトの名無しさん:2010/05/27(木) 08:23:10
atan2で角度を出す時にはスケーリングで長さ1にしてからやった方が良いですか?
それと、ベクトルのノーマライズってつまりはどういうことか教えてください!
150デフォルトの名無しさん:2010/05/27(木) 09:14:30
atan2は長さ1にする必要は無し

その長さを1にする事をノーマライズと言う
D3DXでは
D3DXVec2Normalize
D3DXVec3Normalize
自前で計算する場合は各要素をベクトルの長さで割る



というかいい加減そろそろ消えて欲しい
151デフォルトの名無しさん:2010/05/27(木) 09:17:52
なぜ消えて欲しいんですか?
152デフォルトの名無しさん:2010/05/27(木) 09:19:40
ちょっとググれば分かるような
DirectXと関係ないスレ違いな質問を繰り返してるからだ馬鹿
153デフォルトの名無しさん:2010/05/27(木) 09:25:38
ゲ製作板イキなよ
あそこならどんなくだらない質問にも答えてくれるようなスレがひとつふたつはあるだろ?
154デフォルトの名無しさん:2010/05/27(木) 10:30:10
D3DXVec2Scale(&A&A,1.0f);
↑これって長さを1にするってことですよね?ウォッチで直後の値を見たらどう見ても2乗して足してルートしても1にならないのですがなぜでしょうか?
155デフォルトの名無しさん:2010/05/27(木) 10:31:48
156デフォルトの名無しさん:2010/05/27(木) 10:35:21
>>155
そうなのです
今ノーマライズにしたら思ったとおりの動きになったのです
今までスケーリングって大きさを設定することだと思ってたのですが違うのでしょうか?MSDN見てもスケーリングスケーリングと書いてたので、特に困ることもなかったのでそうともう自分の中では定着してたのですが
大きさ設定するときはノーマライズ→*大きさなのですね
157デフォルトの名無しさん:2010/05/27(木) 10:49:36
マイクロソフトのカタカナ英語のわかりづらさは異常だが、少しは自分で実験せい
大きさを倍増させる関数だそれは。
1.0f渡したら、1倍するのだからAに変化は起きない(か、誤差の範囲でほんのわずかに変わるかもな)
158デフォルトの名無しさん:2010/05/27(木) 10:55:29
マジですか…全然気付かなかった
ありがとうございました
159デフォルトの名無しさん:2010/05/27(木) 11:31:24
使い方よりも、行列計算を知った方がいいと思う
160デフォルトの名無しさん:2010/05/27(木) 14:04:59
外部ライブラリ側でベクトル型定義してある場合、D3DXVector使ってる?
みんなどうしてるんだろう
161デフォルトの名無しさん:2010/05/27(木) 15:27:41
うん。使ってる。
162デフォルトの名無しさん:2010/05/27(木) 16:34:53
ベクトルなんて要素がfloatで要素数が同じならメモリ配置同じなんだから
好きなの使えばいいよね
163デフォルトの名無しさん:2010/05/27(木) 17:12:28
128です。
動画を上げている人がツールは自作みたいな事を書いていた気がしたので
どう描写しているのか気になり聞きました。
ツールを使えorその人に聞けって事ですね。
回答ありがとうございました。
164デフォルトの名無しさん:2010/05/27(木) 21:03:07
class Vector3 : public D3DXVECTOR3{}
165デフォルトの名無しさん:2010/05/27(木) 21:44:50
外部ライブラリがマルチプラットフォームならそっちを使う

DirectXでしか動かすつもりがないならD3DX使ったほうが親和性は高いだろうが・・・
166デフォルトの名無しさん:2010/05/27(木) 22:50:48
ちなみに俺独自の線形代数ライブラリは、
4x4行列積の速度が、SSEのそれに比べて100倍以上遅い。
(4x4行列積を65536x2回実行)
皆も気をつけるように。
167デフォルトの名無しさん:2010/05/27(木) 22:59:30
[test8 matrix4x4 mul test]
matrix4x4 time = 1.703250 // m4x4 * m4x4 on C++
simd_value< float32_t > time = 0.008166 // m4x4 * m4x4 on SSE
simd_value< float64_t > time = 0.003401 // m2x2 * m2x2 on SSE2

今試しにやってみたら
208.5782512858193倍だった。
本当かよww
168デフォルトの名無しさん:2010/05/27(木) 23:52:36
自慢するなw
169デフォルトの名無しさん:2010/05/27(木) 23:53:29
自慢最低
170デフォルトの名無しさん:2010/05/28(金) 00:47:42
自慢っていうか自虐じゃね?

ライブラリ厨はそれでも自作であることに快感を覚えるみたいだけど
171デフォルトの名無しさん:2010/05/28(金) 01:04:54
D3DXのは使ってて古臭いと思うことがよくある
まあ実際に古いから仕方が無いんだけれども
172デフォルトの名無しさん:2010/05/28(金) 01:16:11
Cも対象だから基本的にはCで使える実装の仕方だしねぇ。
173デフォルトの名無しさん:2010/05/28(金) 17:27:02
仕方だね
174デフォルトの名無しさん:2010/05/28(金) 19:40:03
なんか同じ奴が書き込んでるね
175デフォルトの名無しさん:2010/05/28(金) 20:39:44
そうなの?
176デフォルトの名無しさん:2010/05/28(金) 21:08:21
暖かくなると変な奴が増殖するからしょうがない
177デフォルトの名無しさん:2010/05/30(日) 14:06:09
拡大縮小についてお聞きしたいです。

通常、拡大や縮小を行いながらテクスチャの描画を行うには
SetSamplerState(0, D3DSAMP_***FILTER, D3DTEXF_LINEAR);
とリニアのフィルタを設定すれば、割と綺麗に描画してくれますよね。

これと同じようなことをワールド→…→スクリーン変換の際に行うことはできないのでしょうか?
(スクリーンに表示するときに、綺麗に拡大縮小を行いたいんです)

何をやりたいかと言うと、カメラの近くにポリゴンが寄ってきた際に
そのポリゴンのテクスチャが汚く表示されてしまうのです。
ポリゴンにテクスチャを描画する時には綺麗に拡大できるのに
それをカメラで見るときには綺麗に拡大できないので
もしも同じように処理できる方法があれば教えていただきたいです。
178デフォルトの名無しさん:2010/05/30(日) 14:23:19
で、D3DSAMP_MINFILTER、D3DSAMP_MAGFILTERは
何の設定して汚いって言ってるのの?
179デフォルトの名無しさん:2010/05/30(日) 14:27:02
>>178
どちらもD3DTEXF_LINEARです。
実際にポリゴン自体には綺麗に描かれていると思います。
ただ、それをカメラに近づけると汚くなってしまうのです。
実際に、D3DSAMP_MINFILTER、D3DSAMP_MAGFILTERの値をいじっても
この挙動が変わらないことから、この値はワールド→スクリーン変換の際には
反映されないと思っていたのですが、間違っているでしょうか?
180デフォルトの名無しさん:2010/05/30(日) 14:35:18
フルシーンマルチサンプリングじゃイカンの?
DirectX10以降はどういう扱いになってるのか知らんけど
181デフォルトの名無しさん:2010/05/30(日) 14:44:21
ワールド→スクリーン変換ってのは
あくまで、ポリゴンを構成する3頂点の位置座標が変わるだけに過ぎない。
だから、テクスチャフィルタリングの効果と直接関係はない。
(異方性フィルタリング とかはあるが)
拡大して汚いのなら、拡大フィルタが効いていないと考えた方がいい。
よくGPUのプロパティ設定には、そこいら辺の設定があるが、有効になっているか?

182デフォルトの名無しさん:2010/05/30(日) 15:42:42
>ポリゴンにテクスチャを描画する時には綺麗に拡大できるのに
>それをカメラで見るときには綺麗に拡大できないので

どういう実装の意味なのか、誰かレベル2以上の能力者の方、お願いします。
183デフォルトの名無しさん:2010/05/30(日) 16:04:32
ディスプレイには綺麗に補間が効いたテクスチャが表示されるけど
それを携帯カメラか何かで撮ったらジャギチラするってんだろ
ESP使うまでもない
184デフォルトの名無しさん:2010/05/30(日) 19:27:48
すげーな>ESP
マジかよ
よくわかるな

ちょっと利口なチンパンジーの言葉ぐらいちょろいんじゃねーの?
185デフォルトの名無しさん:2010/05/30(日) 19:37:26
Kodu Game Lab - Technical Preview
Kodu is a visual programming language made specifically for creating games.
ttp://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=57a23884-9ecd-4c8a-9561-64bfd4fa2d3d
186177:2010/05/31(月) 04:41:52
>>180
フルシーンマルチサンプリングを有効にしてみたのですが、何も変わりませんでした…

>>181
つまり、本来GPUの設定が正常になっていれば、
スクリーン座標に写る段階で、きちんとリニアなりの拡大処理をしてくれるはずで
そうなっていないのは、私のPCのGPU設定がおかしい可能性がある、
という解釈であっていますでしょうか。
明日仕事が終わって帰ってきたら、確認してみることにします。

>>182-184
残念ながらまったく違います…
「カメラ」はD3DTS_VIEWで行列を設定するDirectGraphicのカメラのつもりでした。
今回作ってみたテストプログラムでは、
まず、200x200のテクスチャを300x300に拡大してポリゴンに貼るとします。
この段階では、D3DSAMP_MAGFILTERにD3DTEXF_LINEARを設定することで
きちんとなめらかな拡大になっていることを、すでに確認しています。
ただし、この状態で、このポリゴンをスクリーン上に表示すると
ジャギが汚くなって汚い拡大縮小になってしまいます。
(例えるならば、D3DSAMP_MAGFILTERにD3DTEXF_NONEを設定したような描画です)

私の理解力では説明することが難しかったためか、
もう一度説明することになってしまい、すいませんでした。
おそらく、>>181氏の理解であっているかと思います。(おそらくですが…)
187デフォルトの名無しさん:2010/05/31(月) 05:04:54
とりあえずSSくらいは出せよ
或いはソースかそれが嫌ならバイナリだけでも出せば何人かは試してくれるはず
188デフォルトの名無しさん:2010/05/31(月) 05:40:13
>>186
拡大してポリゴンに張った段階がなめらかなのをスクリーンに表示せずにどうやって確認してんの
オフスクリーンレンダリングしてファイル出力とか?
189デフォルトの名無しさん:2010/05/31(月) 06:54:44
俺もそれが気になってしょうがない。
カメラから見ると汚くなるって、じゃあ綺麗なときはどうやって見てるんだよw
190デフォルトの名無しさん:2010/05/31(月) 10:24:05
心の眼
191デフォルトの名無しさん:2010/05/31(月) 12:11:11
テンソルって3Dで使いますか?
192デフォルトの名無しさん:2010/05/31(月) 15:05:03
質問
レイを移動するメッシュに当てて命中点の座標を得たいんです
D3DXMatrixInverse(&matWorld,NULL,&matWorld);
D3DXVec3TransformCoord(&vecStart,&vecStart,&matWorld);
D3DXVec3TransformCoord(&vecEnd,&vecEnd,&matWorld);
D3DXIntersect(pmesh,&vecStart,&vecEnd,&boHit,&dwIndex,&U,&V,NULL,NULL,NULL);
D3DXMATRIX matWorld:対象メッシュの拡大*回転*位置
D3DXVECTOR3 vecStart:レイの始点
D3DXVECTOR3 vecEnd:レイの方向ベクトル
とやってるんですが

matWorldが回転と拡大の時はうまくレイが命中した点を得られるのですが
移動を含めてしまうとうまくいかないんです。
これはvecEndに移動を掛けちゃうからだと思うんですが
移動の要素だけ掛けないってできませんかねえ?
193デフォルトの名無しさん:2010/05/31(月) 16:48:39
(0,0,0)を変換して引けばいい
194デフォルトの名無しさん:2010/05/31(月) 16:51:19
・・・それは気が付かなかった
195デフォルトの名無しさん:2010/05/31(月) 17:27:11
>>192
余談だが、レイの方向ベクトルに vecEnd という変数名はどうかと思う。
一瞬、終点座標なら平行移動分まで変換して何の問題もないじゃないかと思ってしまった。
vecDir とかに変えたほうがいいよ。
あと、さらにお節介だが、ワールド行列の逆行列を matWorld に上書きするのもわかりにくい。

ちなみに、その vecDir にちゃんと方向ベクトルが入ってるなら、
D3DXVec3TransformCoord のかわりに D3DXVec3TransformNormal でいけると思う。
(このNormalという名称は少々紛らわしいけど、内部で勝手に逆転置とかやられるわけじゃない。)

もちろん、始点と終点を個別に D3DXVec3TransformCoord してから差をとってもOK。
196デフォルトの名無しさん:2010/05/31(月) 19:07:51
スプライト描画を使ってシューティングゲームを作っているのですが、
弾を40発程度発射するだけで、かなり描画が遅くなってしまいます。
どんな原因が考えられるでしょうか?

描画はスプライトのDrawメソッドを使っています。
197デフォルトの名無しさん:2010/05/31(月) 19:46:39
スプライトってID3DXSpriteの事でいいのか?
198デフォルトの名無しさん:2010/05/31(月) 19:56:13
>>197
そうです。
描画するたびに下のような関数に読み込んだテクスチャのポインタを
渡して描画しています。

lp3dsp->Begin(D3DXSPRITE_ALPHABLEND);
lp3dsp->Draw(*texture,NULL,NULL,&D3DXVECTOR3(x,y,0.0f),0xFFFFFFFF);
lp3dsp->End();
199デフォルトの名無しさん:2010/05/31(月) 20:00:49
D3DPRESENT_PARAMETERS
200デフォルトの名無しさん:2010/05/31(月) 20:32:02
すいません。解決しました。
BeginとEndを毎回呼び出してたので、一番最初と最後だけ呼び出すように
変えたら、超速くなりました。

ありがとうございました。
201デフォルトの名無しさん:2010/05/31(月) 20:41:34
ID3DXSpriteのSetTransformメソッドで設定したものを、
元に戻すにはどうすればよいのでしょうか?
202デフォルトの名無しさん:2010/05/31(月) 21:11:53
元に戻すってどういうこった?
単位行列渡すだけじゃダメなの?
203デフォルトの名無しさん:2010/05/31(月) 23:27:24
>D3DXVec3TransformCoord のかわりに D3DXVec3TransformNormal でいけると思う。
この二つってどのような使い分けなのでしょうか?
204デフォルトの名無しさん:2010/05/31(月) 23:31:53
ヒント:w成分
205デフォルトの名無しさん:2010/06/01(火) 00:09:00
>>203
D3DXVec3TransformCoordはV(x,y,z, 1 )として行列変換される
D3DXVec3TransformNormalはV(x,y,z, 0 )として行列変換される

行列の掛け算の式を思い出してもらえばピンと来ると思うが
つまり、変換行列のD3DXMATRIXで言うところの
_41, _42, _43, _44(つまり移動成分)を計算に含めるかどうかの違い

1なら移動も含まれるので主に位置座標の行列変換に用いられる

0なら移動成分の計算結果も全部0になってしまう
つまり回転と縮小のみが適応されるので
ベクトルや法線など単純に向きだけ変えたい時の行列変換に用いられる
206デフォルトの名無しさん:2010/06/01(火) 00:30:31
すみません。
3Dで壁に沿って移動する、壁ずり の計算方法の解説サイトをどなたかご存知ではないでしょうか?
理論は ttp://www.cam.hi-ho.ne.jp/strong_warriors/teacher/chapter09.html こちらで大よそ解りました。
そこで、現在地面の高度の計算に使い成功している
ttp://marupeke296.com/COL_Basic_No2_ShortTec.html こちらの「斜面に立つには?」の計算式を
応用できないかと思ったのですが、真下から平面360°が相手になるとどう書き換えれば通用するのか解らず、
レイの命中した法線方向を利用できないか・・と思ったのですが壁面はが色々傾きが違い
常にベストなポリゴンにレイが当たってくれる保障が無いのが恐ろしく・・。

何か上手く壁ずりについて詳細に説明して下さっている所を、どなたかご存知ではないでしょうか・・?
207デフォルトの名無しさん:2010/06/01(火) 00:32:02
↑文末日本語崩壊してすみません、「上手く壁ずりする方法について」 です・・。
208デフォルトの名無しさん:2010/06/01(火) 02:17:43
>>206
3DRPGならともかく、アクションゲームなら実用に絶えない。
だって、キャラがジャンプすることも考えてないし、90度以下の角度禁止なんて、実用レベルでは使い物にならない。
そんな制限PlayStation1の時代でも許されないだろ

とりあえずBulletとか既存の物理エンジンとか組み込んでみる方が早いんじゃなかろうか。
209デフォルトの名無しさん:2010/06/01(火) 05:39:47
万能な壁すりの方法は無いんだよなぁ
結局アタマひねっていま自分が作りたいに一番合ってる方法を考えないといけない
210デフォルトの名無しさん:2010/06/01(火) 09:28:06
壁ずりだけで物理エンジンとかないわー。

(A)
進むべき方向に、移動量分キャラを進める。(当然、速度が速すぎて薄い壁を通り越してしまう場合は、ある程度細分化する)
壁の中にめり込んだら、二分検索で「壁にめりこまないぎりぎり」の位置を探す。
その位置までに消費した距離を求め、移動量から引く。

残りの移動量をどうするかを考える。
本来の進行方向から、左右交互に1度ずつずれた方向へ移動を試みる。
左に1度、右に1度、左に2度、右に2度・・・
壁にめりこまない方向を発見したら、その方向が進むべき方向。
goto (A)


欠点。
「残りの移動量」がある程度大きい場合に以下の欠点が出る。
・でっぱった角を抜けやすい
 →左右1度ずつずらして空き方向を検索する際、残りの移動量を使わずに「わずかな移動量」で方向を決めるようにすると解決

・でっぱった角の部分で、精密に角に密着して移動してくれるわけではない
 →1フレームに進む距離なんてたかがしれている。1秒に10cm進むとして、角から離れてしまう量は最大10cm。気にするな

利点
・計算コストがわりと軽い
・どんな悪条件でも壁にめりこまない
・プログラムが簡単
211デフォルトの名無しさん:2010/06/01(火) 11:27:20
壁ずりだけで物理エンジンは手間かもしれないが
実際には球と壁の判定で行わないといかん事を考えると相当手間だしデバッグも面倒くさい。

どうせアクションとかならキャラ同士の判定も必須なんだし
物理エンジンを使えるようになった方が手っ取り早いと思うけど。

判定基準が球じゃないんだったらレイ飛ばして反射ベクトルを求めればいい。
そのままだと反射してしまうから反射後の位置と反射前の位置の中点が
丁度壁にそって移動した場合の壁の平面状の位置になる。
あとは壁の衝突点からその移動先の点へレイをまた飛ばして
あたらなくなるまで繰り返すと綺麗な壁ずりが出来る。
球の場合は激しく面倒くさい、やり方の詳細はリアルタイムレンダリング第2版読むよろし。
212デフォルトの名無しさん:2010/06/01(火) 11:45:38
>>191
質問の意図が分からないが物理エンジンで使われてる
が、大抵そこはそとからは触らなくても良い
213デフォルトの名無しさん:2010/06/01(火) 14:25:42
>>212
ありがとう
214デフォルトの名無しさん:2010/06/01(火) 14:46:51
DirectSoundで質問です。
いままで DSERR_BUFFERLOST が返されたことがないのですが、どういう時にロストが起こるのでしょうか?
DirectSoundBufferのロストのテストをしたいのですが。

Direct3Dのデバイスロストは、モニター解像度の変更などで簡単におこせたので楽だったのですが、
DirectSoundではどういうことをすればロストしますか?
215デフォルトの名無しさん:2010/06/01(火) 14:55:43
USB音源抜くとか?
216デフォルトの名無しさん:2010/06/01(火) 15:18:33
デバイスマネージャーからサウンドデバイスを無効にするとか
217デフォルトの名無しさん:2010/06/01(火) 19:48:17
>>205
なるほど!
よく分かりました。
詳しい説明感謝します!
ありがとうございあました
218デフォルトの名無しさん:2010/06/01(火) 20:41:26
>>206
Directx9必携にこんな壁ずりの式があったんですが、どうでしょう?
S=L-(N * L)/(|N|^2)*N

S:滑りベクトル
L:移動ベクトル
N:ぶつかる面の法線
当方線形代数に詳しくないので、
深い知識もっている方補足があったらたのんます
219デフォルトの名無しさん:2010/06/01(火) 20:45:03
220デフォルトの名無しさん:2010/06/01(火) 21:11:25
なんだ既出だったのかスマソ
221デフォルトの名無しさん:2010/06/02(水) 08:43:48
VC++2008EEでの質問なんだけど、
DirectX導入したんだけど、プログラム打ち込むのはサンプルビューアからやるの?
そんともVC++2008EEのスタートページから1から組んだほうがいいんすか?
222デフォルトの名無しさん:2010/06/02(水) 08:55:52
とりあえず表示したいだけなら EmptyProject をベースにしてもいいけど
ちゃんと作るつもりなら1から組んだ方がいい
223デフォルトの名無しさん:2010/06/02(水) 08:57:00
ありがとうございます。
224デフォルトの名無しさん:2010/06/02(水) 09:35:26
S=L-(N * L)/(|N|^2)*N

|N|^2ってなにやってんの?
|N|が1以外になるとしたら法線じゃないよな。1^2は1だし…
225デフォルトの名無しさん:2010/06/02(水) 10:48:18
>>224
単位ベクトルじゃなくても法線は法線だよ。
それを正規化するために |N| で割ってるんでしょ。
>>218の式ではちょっと変な位置に割り算が入っているけど、

S = L - ((N/|N|) * L) * (N/|N|)

と書き直せばわかりやすいと思う。
226デフォルトの名無しさん:2010/06/02(水) 10:49:42
ああ、もちろん1個目の * は内積ね。
227デフォルトの名無しさん:2010/06/02(水) 11:04:37
ああそゆこと。さんくす
228デフォルトの名無しさん:2010/06/02(水) 12:43:57
いくつか教えて下さい。

動画から1コマずつ取り出して、合成だのエフェクトだのをぐちゃぐちゃっと
加工して出力するのを作ろうとしてるんだけど、DirectX8のDirectShowでの
やり方はぐぐって見つけましたけど、現状のDirectX SDKって9までしか
入って無いですよね?(Redistの中にも9までしか見当たらない)
Qedit.hどこ?ってレベルなんです。

1、DirectX9or10でDirectShowってどこに行ったの?
2、どこかDirectX9or10での動画の扱い方について、解説orサンプルが
ある様な勉強できそうなオススメサイト知っていたら教えて下さい。
229デフォルトの名無しさん:2010/06/02(水) 13:34:42
つplatform sdk
230デフォルトの名無しさん:2010/06/02(水) 16:55:51
そういやVisualStudio2010からWindowsSDKが一緒にインストールされるようになったな
てか2010いろいろ楽しすぎる。ちょっと楽しみ
231デフォルトの名無しさん:2010/06/02(水) 17:22:04
既に楽しさを実感しているのに楽しみとな?
232デフォルトの名無しさん:2010/06/02(水) 17:24:29
WindowsSDKってなに?
俺はdirectx9で止まっています
233デフォルトの名無しさん:2010/06/02(水) 17:43:13
WindowsSDKは旧称PlatformSDK
.NET FrameworkSDKと統合されてそう呼ばれるようになった

本来はVisualStudio買わなくてもWindowsアプリが開発できるように
無料でマイクロソフトが公開してるヘッダとライブラリだけど
DirectShowをはじめVisualStudioに含まれないライブラリが含まれるたり
VisualStudioより更新が早かったりするので併用されることが多い
234デフォルトの名無しさん:2010/06/02(水) 17:48:32
>>208-211 >>218-227
沢山のヒントやご助言ありがとうございます。完璧な方法は無いんですね。
>結局アタマひねっていま自分が作りたいに一番合ってる方法を考えないといけない
との事で自分の理想に沿って作っております。

物理エンジンという存在も遠く聞き及んでいましたが・・こういう時に導入するのですね。
数式の方は私にはいまいち理解できませんが、いつか読めないとヤバくなりそうな・・。
様々なお話ありがとうございました。少し現実が見えて気がします。
235206:2010/06/02(水) 17:49:40
↑名前書き忘れ、ありがとうございました;
236デフォルトの名無しさん:2010/06/02(水) 17:50:29
壁すりを物理エンジンに頼るのは
ぴょんぴょん跳ねちゃったり地形にはまり込んでスタックしたりするからよく考えてからな
237デフォルトの名無しさん:2010/06/02(水) 18:23:49
物理エンジンも使いこなすのは意外と難しい…
238デフォルトの名無しさん:2010/06/02(水) 19:14:54
演出で使う分には便利だが
ゲームのルールにかかわる部分で使うのは挙動が読めない分危険
239228:2010/06/02(水) 20:13:35
>229
ありがとう!
なるほど、PlatformSDKに行ったんですか。色々納得しました。
240デフォルトの名無しさん:2010/06/03(木) 02:14:01
ビデオカードの説明に何とかテクノロジーとか書いてあるけど
使うにはどうしたらいいの?勝手にやってくれるの?
241デフォルトの名無しさん:2010/06/03(木) 03:01:30
プログラムってのはなぁ自分が書いたようにしか動かねぇんだよ
てか、「何とか」テクノロジーって何だよ?
質問するならちゃんと書けよ
242デフォルトの名無しさん:2010/06/03(木) 04:14:52
NVIDIA CUDAテクノロジー GPGPU
NVIDIA 3D VISIONテクノロジー 立体視
NVIDIA Optimusテクノロジー GPU自動切り替え。ノートPC向け
NVIDIA SLIテクノロジー GPU複数差し。3-way SLIテクノロジー・Quad SLIテクノロジーも。
ATI CrossFire テクノロジー GPU複数差し。Hybrid Crossfireテクノロジー・CrossFileXテクノロジーも。
AMD UVDテクノロジー Unified Video Decorder。動作再生支援
AMD VISIONテクノロジー HiDefマルチメディア・エクスペリエンス
Dolby Headphoneテクノロジー サラウンド再生
PCI Expressテクノロジー シリアル転送インターフェース
243デフォルトの名無しさん:2010/06/03(木) 05:04:01
これは恥ずかしい
高い壷とか買わされないように気をつけろよ
244 ◆0uxK91AxII :2010/06/03(木) 05:27:07
UltraShadow II Technology
245デフォルトの名無しさん:2010/06/03(木) 12:35:51
UltraShadow IIの技術進歩により、シャドウ・ボリュームの
処理ためのパフォーマンスは(旧世代と比べて)4倍に向上しています。
こういうこと?
246デフォルトの名無しさん:2010/06/03(木) 12:52:56
228で質問した者ですが、右も左もわからない状態から、なんとか
フィルタグラフにISampleGrabberを繋げる所まで来ました。
判らない所が出てきたので、教えて下さい。

1、MPEG4(H.264)動画をIGraphBuilder->RenderFile()で読込ませて
フィルタグラフを作らせ、このフィルタの途中にISampleGarbberを
割り込ませれればと思ったのですが、Microsoft DTV-DVD Video
decorderのVideoOutput1には、ISampleGrabberが接続できず(中間
フィルタが無いって怒られる)、Line21というもう1つの出力ピン
(チルダで始まる出力ピン)にはつながります。
しかし、ISampleGrabberCB->SampleCB()がコールバックされていない
ので、画像が送られてきて無いみたいなのです。
(コンソールで作ってるのですが、コールバックされたら"."を表示
させても"."が出ない)
Line21って画像が出力されない?
それとも、ISampleGrabberの設定不足?

2、SampleCBでミューテックス等のロックを使うなとMSDNにあったのですが、
これはCreateFile(),WriteFile()も対象?(ブロッキングの関係?)
リングバッファでも作ってコピーさせようとは思ってるのですが、SampleCB
ではロック使うなって書いてあった(と思った)ので、ちょっと疑問に思って。

長くてすみません。
247デフォルトの名無しさん:2010/06/03(木) 12:55:53
>>240,242
なんちゃらテクノロジーって、意識して使えるものと使えないものが
あるんじゃね?
(Intel Coreも、意識しないで高速処理の恩恵を受けてるやん?
WindowsやBIOSががんばってるんだろうけどさ)
>>242最後のPCI Express テクノロジーなんて、どう使うの?
(わざわざ意識して使用する用途あるの?)って思わなくもない。
組み込み系だと、初期化を自分でやったりしなければならないので、
意識しないとだめだけど、使う分にはそこまで意識しないかと。
グラボ複数枚とかは、提供されているライブラリでボード単体を意識
させるIDでも渡すインタフェースが無ければ、意識する必要もなさそう。
特別に意識しなければならないライブラリの関数があるなら、それを呼ぶ
だけで使えるんじゃない?
なければ、普通に従来通りに作ればいい。
248デフォルトの名無しさん:2010/06/03(木) 13:06:06
>>247
ありがとうございます。
ドライバやレジスタを直接叩いたりする必要はないんですね。
(コンシューマーだとあるんですかね
249デフォルトの名無しさん:2010/06/03(木) 14:17:55
>>246
昔わからない時grapheditにかなり助けられた記憶がある
あとDirectShowと戦うスレというのもあるよ
250デフォルトの名無しさん:2010/06/03(木) 21:06:27
>>246
DirectXスレでDirectShowの質問しても、答えてもらえる確率は低いと思うよ。

ロックするなってのは、そこで処理がブロックされると動画の再生も止まるから
WaitForSingleObject等の待機関数を使うなってことじゃない?
使うならEnterCriticalSectionじゃなくてTryEnterCriticalSectionとか。
251246:2010/06/03(木) 22:35:23
今北区。回答ありがとうです。

>>249
grappheditは、あるのを思い出して使ってみて、ピンの構成がわかったの
ですが、なぜ繋がらないかっていうのが未だに理解できてないんですよね。
とりあえず、もうちょっとぐぐってみてから、DirectShow戦士になって
きます。

>>250
言われてみれば、既にDirectXから分離してるんだから、ここで質問しても
確かに確率低そうですね。

やっぱり、ロックする=動画再生が止まる→フィルタとしてはアウト、って
ことですよね。
とりあえず、DirectShowと一戦交えないと、この類は難しそうですね。

thxでした!
252デフォルトの名無しさん:2010/06/05(土) 11:07:34
レンダーステートの設定で
D3DRS_ALPHABLENDENABLE → TRUE
D3DRS_SRCBLEND → D3DBLEND_SRCALPHA
D3DRS_DESTBLEND → D3DBLEND_INVSRCALPHA
を設定しており、頂点色0x7000ff70のポリゴンを表示しようとしているのですが、
全く半透明になりません。描画順番は
@下地の描画
A少しカメラ側に寄った位置に半透明ポリゴン描画
をしています。
色々検索してみてもこの設定なら出来るはずだと思うのですが、何か見落としている設定があるのでしょうか?
253デフォルトの名無しさん:2010/06/05(土) 11:21:00
テクスチャ無しの素ポリ?
254252:2010/06/05(土) 11:32:07
>>253

まさにそこでした。
@の下地の描画の時にSetTextureでテクスチャを設定していました。
Aのポリゴンはそもそも頂点フォーマットにuv値がなく、そのまま描画しようとしていましたが、
念のためにSetTextureでテクスチャを外すと半透明表示されました。
255デフォルトの名無しさん:2010/06/05(土) 14:20:26
今スプライトを使って2Dのシューティングゲーム作ってるんですが、
最初のタイトルメニューから移行する際に画面をだんだん暗くしてから、
次の画面に移行したいと思ってるんですが、どういう方法を用いれば、
そのようなことが可能ですか?
256デフォルトの名無しさん:2010/06/05(土) 14:25:59
表示一番手前に画面サイズの黒い板ポリ置いて透明度を0→1.0(255)へ
257デフォルトの名無しさん:2010/06/05(土) 14:28:38
なるほど!いや〜助かりましたわ!
258デフォルトの名無しさん:2010/06/05(土) 14:31:55
全ての描画をID3DXSpriteで行ってるなら
Drawのカラーを0xffffffff→0xff000000に変化させるでもいいけど
それ以外で描画してるものがあるなら>>256が手っ取り早い
259デフォルトの名無しさん:2010/06/05(土) 14:36:25
Drawでは色々カラーを変化させながら描画してるタイトル画面なので
>>256でやらせてもらいますわ!
ありがとう!
260デフォルトの名無しさん:2010/06/05(土) 19:25:58
文字のテクスチャを返す関数を制作しているのですが、
dx_3DDevice->CreateTexture(GM.gmCellIncX, TM.tmHeight, 1, D3DUSAGE_DYNAMIC, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT,&pTexture,NULL) //テクスチャの作成

pTexture->LockRect 0, pLockRect, Null, D3DLOCK_DISCARD //ロック
としたときどうしてもLockRectでエラー(D3DERR_INVALIDCALL)が出て先へ進めません。

D3DUSAGE_DYNAMICを指定しているのでロックできるはずなのですが…どこが悪いのでしょうか?

261デフォルトの名無しさん:2010/06/05(土) 19:30:23
>>255-259
そういうのは
ガンマコントロールでやるんじゃ?
262デフォルトの名無しさん:2010/06/05(土) 19:54:18
ガンマコントロールってフェードイン/アウトに使うものではなくて
色の調整に使うものだと思ってる
263デフォルトの名無しさん:2010/06/05(土) 23:32:27
>>260
他で悪さしてないならそれで問題ないはず
SDK付属の簡単なサンプル(Tutorial 1: CreateDeviceとか)を
サンプルブラウザから適当な場所にインストールして
デバイスの初期化の後に

LPDIRECT3DTEXTURE9 pTexture ;
g_pd3dDevice->CreateTexture(256, 256, 1, D3DUSAGE_DYNAMIC, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT,&pTexture,NULL);
D3DLOCKED_RECT LockRect;
HRESULT ret = pTexture->LockRect (0, &LockRect, NULL, D3DLOCK_DISCARD) ;
pTexture->Release() ;

っやってちゃんとCreateTextureに成功するか、そしてロックできるか確認してみ?
それでダメならビデオカードが動的テクスチャに対応してないとか
264デフォルトの名無しさん:2010/06/05(土) 23:37:36
>>261
システム屋系の思考の人ってこういう大雑把なやり方を忌避するタイプの人が多いけど
実はこのやり方はもう1つメリットがあって
ただの板ポリじゃなくてα値を仕込んだテクスチャを貼り付けて
透明度ではなくαテストの閾値を変化させることで
上から下にとか真ん中から外縁に向かってとか模様を描きながらとか
ちょっと変わったフェードを貼り付けるテクスチャを替えるだけで楽しめたりする
265デフォルトの名無しさん:2010/06/05(土) 23:39:26
そうそう、拡張性があるよね。
簡単に加えられるという利点もあるし。
そういう考え方のほうが好きだなぁ。
266デフォルトの名無しさん:2010/06/06(日) 00:50:03
バーションが904の時のdxlevelていくつですか?
ゲームするのにバージョン指定したいのですが
267デフォルトの名無しさん:2010/06/06(日) 00:51:09
↑CirectX9.0cです
268デフォルトの名無しさん:2010/06/06(日) 01:00:36
>>266
ここはDirectX"プログラミング"のスレなんですが…

まぁ、一応答えると95
269デフォルトの名無しさん:2010/06/06(日) 01:17:35
>>268
すみませんありがとうございました
270デフォルトの名無しさん:2010/06/06(日) 07:35:49
ガンマをいじるのはウィンドウモードでは使えないだろう。普段の開発が不便すぎ
271デフォルトの名無しさん:2010/06/06(日) 11:24:28
>>270
そうだな
軽く試してみようと思ったが、なぜか効かねーし
構造体でいちいち不便だし、動的に扱うもんじゃねーな
すまんこデラックス
272235:2010/06/06(日) 11:47:48
>>236-238
ありがとうございます。物理エンジンも万能では無いのですね。
273235:2010/06/06(日) 11:50:45
壁すりについて以前質問した者なのですが、
 レイを飛ばし近づいたポリゴンにの3頂点を取得し、
その低い2頂点のyを抜いた平面の線分と
キャラの現座標→移動予定座標 の線分との交点を求め最低限壁すりを実現したのですが、

ポリゴンの境目に来るとレイが上手く目当てのポリゴンに当たらず、
レイを上と左右に散らしながら当てて低いかつ線分交差が起きるポリゴンを探すように
してみているのですが、中々上手く行きません。

3Dアクションでもっと安全にポリゴンの境目に対応させるには、
どうやるのが良いでしょうか?
90°以上のポリゴンを一切使わなければ、
足元のポリゴンの傾斜で押し返しを実装すれば良いのかもしれませんが・・
274デフォルトの名無しさん:2010/06/06(日) 12:27:49
だから、そんな都合の良い方法なんて無いんだってば
どうしても何か考えて欲しいなら地形のメッシュファイル出せ
状況が分からないと何も言えない

じゃなかったらレイじゃなくてOBBでやれ
275デフォルトの名無しさん:2010/06/06(日) 13:29:58
たしかbulletにキャラクター移動のサンプルあったよ
276デフォルトの名無しさん:2010/06/06(日) 13:31:28
普通にポリゴンのサイズをを一定量拡張してるんでは駄目なのか?

vector3 v0, v1, v2;
const vector3 center = ( v0 + v1 + v2 ) / 3;
v0 = ( v0 - center ) * 1.2f + center;
v1 = ( v1 - center ) * 1.2f + center;
v2 = ( v2 - center ) * 1.2f + center;
277235:2010/06/06(日) 13:40:02
>>274
>だから、そんな都合の良い方法なんて無いんだってば
これがその事だったんですか・・orz
考えてもみれば、角を構成するポリゴンも斜めで凄い鋭角もありえますし厳しいですよね、、
OBBについてもう少し詳しく調べてみます。ありがとうございました(´・ω・`)
278デフォルトの名無しさん:2010/06/06(日) 16:07:59
どんなやり方しても角の処理は必ず頭を悩ます事になるはず
一口に3Dといっても色々あるからなぁ
どんなステージを想定してるの?
ジャンプの有無とかキャラの挙動も重要だし
厳密にメッシュで取らなくても
データ上だけヒットボックスを配置しといて簡易的に当たり判定するのも手だし
279デフォルトの名無しさん:2010/06/06(日) 22:19:12
判定用のマップを別に使うのもよくある手
280デフォルトの名無しさん:2010/06/07(月) 12:13:35
Direct3D9でフルスクリーン表示している最中に、
GDIのウィンドウメニューを素早く表示する方法をご存知ありませんか。

現状device->SetDialogBoxMode()で表示させてるんですが、
そのときにハードウェアの動作モードが切り替わるので画面が揺れるし時間がかかります。
281デフォルトの名無しさん:2010/06/07(月) 12:29:56
フルスクリーンモードを使わず、
ウインドウモードでスクリーンを覆うウインドウを生成して、
そこに描画すればいい。

今となってはフルスクリーンモードの存在価値があるわけではないのに、
なぜ必死にしがみつくのか不思議でしょうがない。
282デフォルトの名無しさん:2010/06/07(月) 12:35:13
最近のモニター高解像度だから、低めの解像度でかつ画面いっぱいでやりたいんじゃない?
私はやたらフルスクリーンにするゲームはやりたくないけど
283デフォルトの名無しさん:2010/06/07(月) 13:11:18
コンソールゲームみたいでかっこいい!!
284デフォルトの名無しさん:2010/06/07(月) 13:15:02
GDIに頼らず自前のメニューでやれば解決
DXUTgui使えば余裕でしょ
285デフォルトの名無しさん:2010/06/07(月) 13:26:37
自前と言いながらDXUTかよw
286235:2010/06/07(月) 13:43:33
>>275-276 >>278-279
色々情報ありがとうございます、自由に動き回れる事が一番の目標なのでなんとか頑張ってみます、
287デフォルトの名無しさん:2010/06/07(月) 13:59:37
まだDXUTを変な外部ライブラリと勘違いしてる奴いるの?
必要なコード抜いてきて好きにカスタマイズすればいいだけなのに
288デフォルトの名無しさん:2010/06/07(月) 14:04:01
DXUTはライブラリって言うより公式サンプル集だな
システムとして使うかどうかは別として
所々、目から鱗的コードがあって面白い
289デフォルトの名無しさん:2010/06/07(月) 14:14:35
>>281-282
去年の製品になるが、BIOHAZARD 5だってエクスクルーシブ・フルスクリーン表示。
そういう仕様だってまだ全然珍しくない。
フルスクリーン表示を伴わない全面表示も実装済みだが、
やはり両方で動くことに越したことはないので。

>>284,287
既にGDIで一通り実装済みなので、単に手間が増えるだけなのがどうも……。
他に方法がないならそうするけど。
290デフォルトの名無しさん:2010/06/07(月) 19:20:40
ゲームならフルスクリーンが基本だろ常識的に考えて
291デフォルトの名無しさん:2010/06/07(月) 22:55:27
いまは解像度がデカイし
Wiki見ながらやることも多いからそうでもない
292デフォルトの名無しさん:2010/06/07(月) 23:08:38
>>291
解像度じゃなくて速度的な問題
293デフォルトの名無しさん:2010/06/07(月) 23:10:50
両方とも需要があるから両方実装しましょう
294デフォルトの名無しさん:2010/06/07(月) 23:58:48
両方実装してコンフィグで設定できるようにするのが基本。
動的な切り替えやデバイスロストへの対応なんてまず最初にやるだろ。
295デフォルトの名無しさん:2010/06/08(火) 14:26:38
しかし、そこを難しく考えすぎて躓く初心者が後を絶たないから
とりあえずそんなのは後でいいからゲームなりアプリなり完成させろよ、といいたい
296デフォルトの名無しさん:2010/06/08(火) 14:31:12
下手糞ほど他との依存関係が強すぎてこういう部分で苦労するんだよね
作成途中で入れるにしても自分のPGが下手糞かどうか判断するいい仕様だな
力が及ばなければやらないほうがいい
297デフォルトの名無しさん:2010/06/08(火) 14:42:01
デバイスロストしたらリソースを作り直せばいいんだよ
298デフォルトの名無しさん:2010/06/08(火) 14:46:11
そもそもデバイスがロストしないようには作れないのかよってのが長年の疑問
299デフォルトの名無しさん:2010/06/08(火) 14:51:15
いやだから10からはロストは無くなったしいずれは無くなる話題だが
9がまだ現役である以上仕方が無い
300デフォルトの名無しさん:2010/06/08(火) 15:29:18
デバイスロストしたらプログラムを終了すればいいんだよ
301デフォルトの名無しさん:2010/06/08(火) 17:14:26
デバイスをロストするまでの過程が大切なんだよ
302デフォルトの名無しさん:2010/06/08(火) 18:30:38
>>300
それだとプレイ中にメッセのチップWindowが出た瞬間にお陀仏だな。
303デフォルトの名無しさん:2010/06/08(火) 23:13:59
おーぷnじーえるで作ればロストしないよ
304デフォルトの名無しさん:2010/06/09(水) 00:24:31
デバイスロストしてもいいようにテクスチャはIDかなんかで間接的に参照したほうがいいんですか?
305デフォルトの名無しさん:2010/06/09(水) 01:30:31
>>304
OnLostDevice/OnResetDeviceの呼び出しが必要なすべてのリソースを
一箇所のコンテナでまとめて管理する。
必要になったら一斉に処理する。
306デフォルトの名無しさん:2010/06/09(水) 01:36:34
>>304
そういう判断が自分で付かないレベルの人はおとなしくD3DPOOL_MANAGEDで作りなよ
そこに時間かけるくらいなら他にやることはいくらでもある
307デフォルトの名無しさん:2010/06/09(水) 02:19:08
>>306
リソースをリロードするばあい対応できない
308デフォルトの名無しさん:2010/06/09(水) 09:05:47
そこでだぶるぽいんたぁですよ
309デフォルトの名無しさん:2010/06/09(水) 09:32:57
つかDirectX11でいんじゃねえの。
11さわっちゃうともうかったるくてDirectX9なんてやってらんねぇだろ。
310デフォルトの名無しさん:2010/06/09(水) 10:48:46
DirectX11厨は黙ってなさい
311デフォルトの名無しさん:2010/06/09(水) 11:02:50
DirectX 11はVista以降でしか動かない。
2010年3月の時点でVista/7の市場占有率は26.24%、Windowsの範囲内で見ると28.93%だ。
これでやってけると思うならDX11で作ればいいし、
無理だと思うならDX9もサポートするしか無い。
http://www.itmedia.co.jp/news/articles/1004/06/news008.html
312デフォルトの名無しさん:2010/06/09(水) 11:21:45
とりあえず完成させたい俺は11使いまっせ
313デフォルトの名無しさん:2010/06/09(水) 13:39:26
とりあえず完成させたいならなおさらサンプルも資料も大量にある9しかない
が、まあ好きにすればいいと思うよ
314デフォルトの名無しさん:2010/06/09(水) 16:07:52
>>263
素早い回答ありがとうございます。
パラメータを修正したら無事ロックできました。
315デフォルトの名無しさん:2010/06/09(水) 18:30:21
>>314
今後の回答の参考のために
どこを修正したのかも出来れば書いて欲しいな
316デフォルトの名無しさん:2010/06/09(水) 23:23:55
点A(1,1,1)から点B(3,3,3)の二点間の距離の求め方と

二点間の距離からX短くした時(これを長さLとする)

点Aから点Bの直線状で長さLになる部分となる座標はどうやったら求められますか?

よろしくお願いします。
317デフォルトの名無しさん:2010/06/09(水) 23:33:35
>>316
ぐぐれ
google「二点間の距離の求め方」
318デフォルトの名無しさん:2010/06/10(木) 00:03:38
DirectX9のサンプルって
ピクセルシェーダ1.0を使うのすら躊躇してる低スペック厨のサンプルもあってカオス過ぎる
319デフォルトの名無しさん:2010/06/10(木) 00:14:09
>>318
なんだとちょっとリンク貼ってみろ
みてくる
320デフォルトの名無しさん:2010/06/10(木) 00:35:24
>>316
D3DXVec3Length関数使うと超楽だ
321デフォルトの名無しさん:2010/06/10(木) 00:38:23
>>316
// 2点間距離
LL = sqrt( dot( A - B ) );

//長さLになる部分となる座標
L = LL - X;
C = ( A - B ) * L / LL + B;

基本杉

322デフォルトの名無しさん:2010/06/10(木) 00:41:13
>>321
おまえ頭いいな
323デフォルトの名無しさん:2010/06/10(木) 00:42:14
それAとB置き換えないといけなくね?
324デフォルトの名無しさん:2010/06/10(木) 00:45:00
2点間距離 d = √( ( x2 - x1 )2 + ( y2 - y1 )2 )
325デフォルトの名無しさん:2010/06/10(木) 01:30:24
既出かもしれないですが、Win32コンソールアプリから、GetConsoleWindowして
デバイス作ると見事に失敗します。
どっかから落としてきたサンプルでは(どこだったか忘れてしまった)ちゃんとデバイス作れて、
まったく同じコードをコピペしても初期化失敗します。
プロジェクトの設定もほとんど同じにしたはずなのに・・・
違うといえばUnicodeとマルチバイトが違ってmainと_tmainが違うくらい・・・
プロジェクトの設定でここが違うと失敗する、とかありますか?
326デフォルトの名無しさん:2010/06/10(木) 01:42:44
あるよ
_T("") とかでやんないとエラー出たりする
327デフォルトの名無しさん:2010/06/10(木) 01:48:31
ここのかなぁ?
ttp://raurynotes.spaces.live.com/Blog/cns!1C6F24E1D572041F!245.entry

デフォルトの設定でコンソールのプロジェクト作って
ここのソース丸々コピって貼り付けたけど
少なくともCreateDeviceではS_OKが返ってきてる
プロジェクトとか全然関係ないところで余計なことしてるんじゃね?
328デフォルトの名無しさん:2010/06/10(木) 01:52:40
今のソースや設定を保存しといて、もうひとつ完璧に同じにしたもの作ったらいいんじゃね
329デフォルトの名無しさん:2010/06/10(木) 01:54:54
一応拾ってきたサンプルをUNICODEにしたら通ったんですよ。
もともと私のプログラムはUNICODEなんだけどすでに数千行もあって
マルチバイトに書き直すのはちょっとつらい。
コンパイルエラーではなく
IDirect3D9::CreateDeviceでS_OKが帰ってこないです。
とりあえずDirect3DCreate9してD3DPRESENT_PARAMETERSを設定して
createdeviceしてるだけなのに、同じコードでも失敗します。
330デフォルトの名無しさん:2010/06/10(木) 02:03:48
ちょっとそのCreateDeviceまでの最小コードうpってみろよ
331デフォルトの名無しさん:2010/06/10(木) 02:04:37
>> 327
そうそう!これです。なぜか見つけられなかった汗
かなーり何が違うのかわからない状況ですが・・・
>> 328
う〜そうですね。こっちに自分のプログラムを移植したほうがはやそう・・・
ただ原因を知りたかったもので・・・。勉強のために。
とりあえずちょちょっとやってみます。
332デフォルトの名無しさん:2010/06/10(木) 02:08:42
ウィンドウハンドル生成してる部分とかでウィンドウ名とか指定するだろ
そういう文字列はUnicode→マルチバイト文字に変換してんのか?
333325:2010/06/10(木) 02:44:35
>> 332
windowは作成せず,コンソールwindowにやってたので一切文字系使ってなかったです.

すんごい初歩ミスしてました…
したつもりでd3dppをZeromemory出来ていなかった・・・
解決しますた・・・ありがとうございます→みなさん

m_pD3D = Direct3DCreate9( D3D_SDK_VERSION )return -1;
d3dpp.Windowed = TRUE; //あと,幅とかフォーマットとか
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow = ::GetConsoleWindow();
if(FAILED(hr=m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL, param.hDeviceWindow,
D3DCREATE_HARDWARE_VERTEXPROCESSING,¶m,&m_pd3dDevice)))
で普通にいけますた(途中少々略).
334デフォルトの名無しさん:2010/06/10(木) 03:25:49
>>327のソース弄ってみてたけど、GetConsoleWindow()って挙動おかしくないか?
NULLでも強制終了されないし、処理がデバッガで追えなくなるし
なぜかコンソール起動できるし
335325:2010/06/10(木) 03:58:51
GetConsoleWindow()がNULLになるんですか??
いまのとこはなってないです.デバッガも普通どおり動いてますし,
もともとコンソールプログラムなのでコンソールも起動していますが,
なにか変になる条件があるんでしょうか??
336デフォルトの名無しさん:2010/06/10(木) 04:17:53
再起動したら動くようになった
謎すぎる

テストとしては面白かったけど、本番じゃ怖くて使えないわ
337デフォルトの名無しさん:2010/06/10(木) 04:21:12
>>311
XPではエミュレーションしてくれんじゃなかったの?
338デフォルトの名無しさん:2010/06/10(木) 05:09:09
Vistaや7に、9世代10世代のビデオカードが刺さってるときに
11を(可能な限り)エミュレートしてくれるだけで
XP上でエミュレートしてくれるわけじゃない
339デフォルトの名無しさん:2010/06/10(木) 07:19:25
>>337
XP以前とVista以降はビデオカードのドライバの設計が根本的に違うので
DirectXのサポート具合もぜんぜん違う。
いい加減消えてくれ、ロートルXP。
340デフォルトの名無しさん:2010/06/10(木) 09:09:56
http://tron.blogzine.jp/zbrush/images/2008/08/07/blog_chiri_kahu.jpg
こういうのはどうやったら作れますか?何ポリぐらいですか?重要なのはテクスチャですか?背景ですか?
341デフォルトの名無しさん:2010/06/10(木) 09:17:31
それがDirectXと何の関係が?
342デフォルトの名無しさん:2010/06/10(木) 09:20:40
関係ないのですか?
モデリングだけの問題なのですか?
343デフォルトの名無しさん:2010/06/10(木) 09:34:14
>>342
うん
344デフォルトの名無しさん:2010/06/10(木) 09:35:02
へー
345デフォルトの名無しさん:2010/06/10(木) 11:01:53
どーでもいいけど足開きすぎじゃね
346デフォルトの名無しさん:2010/06/10(木) 15:08:21
>>339
機能的にDX10〜11相当のOpenGL3〜4は、XPにも対応してるよ。
ゆえに、WDDMであるかどうかと、DX10〜11相当のグラフィック描画機能をハードウェアサポートできるかどうかは、本質的に関係がない。
XPで、DX10以降をサポートしないのは単にMSの勝手な都合だバカ。
347デフォルトの名無しさん:2010/06/10(木) 15:11:03
>>346
ここはDirectXのスレなんですが。
348デフォルトの名無しさん:2010/06/10(木) 22:42:07
すみません。半透明ポリゴンの描画順序のソートは、
D3DXVec3Projectを使う以外、何かさげな方法は有るでしょうか?
349デフォルトの名無しさん:2010/06/10(木) 22:46:59
>>348
気にしない。
もしくは半透明同士で別に合成しておいて、
一枚のZ付き板ポリとして画面に描画する。
350デフォルトの名無しさん:2010/06/10(木) 23:17:58
カメラの向いてる方向と
ポリゴンの座標の
内積
351デフォルトの名無しさん:2010/06/10(木) 23:19:11
あ、間違えた
352デフォルトの名無しさん:2010/06/10(木) 23:57:26
DirectX11は普及率がまだ低いからこのスレでは話に出すなって何のスレだかもうよくわからんね。
353デフォルトの名無しさん:2010/06/11(金) 00:01:27
>>352
勘違い。リセット時に煩雑なリソース管理が必要になるのは
DirectX9の設計の欠陥であってそれは策定された当時のデバイスドライバモデルに起因する。
ハードウェアの世代はこの場合関係ない。
実際、Vistaで動作しているDirect3D9ExはAPIは
ほぼ3D9のまんまだがリソースの問題がほぼ解決されている。
354デフォルトの名無しさん:2010/06/11(金) 00:26:45
描画コマンドの発行のCPU負担が減ったって話も聞くけど、
同じような描画処理でも、DX9よりDX11のほうがだいぶ軽くなるのかな??
355デフォルトの名無しさん:2010/06/11(金) 01:23:23
一応MSはそう言ってる。
11の場合はComputeShaderでポストエフェクト処理をする場合だと
描画処理自体をしなくてもいいからステートの設定とか全部省ける。
356348:2010/06/11(金) 02:33:27
>>349-351
ありがとうございます。
357デフォルトの名無しさん:2010/06/11(金) 07:14:14
11の話を出すななんて誰も言ってないような?
358354:2010/06/11(金) 07:58:54
>>355
ありがとう!
DX11への移行を考えておこう。
計算シェーダがおもしろそうなのもあるしね。
359>350,351:2010/06/11(金) 08:05:06
http://www.gamedev.net/community/forums/topic.asp?topic_id=411687

数学苦手だから>>350の方法で何故ソートできるのかわかんねぇ
360デフォルトの名無しさん:2010/06/11(金) 08:26:50
ソートはできない、カメラから見たZ値が求まる
361デフォルトの名無しさん:2010/06/11(金) 11:03:55
>>359
カメラから物体へのベクトルと
視線方向の単位ベクトル(長さ1のベクトル)
の内積はその性質上
視線方向の直線に物体から垂直に降ろした直線との交点までの距離
つまりカメラからどのくらい奥にあるか、になる
362デフォルトの名無しさん:2010/06/11(金) 11:33:02
内積・外積程度は勉強することをお勧めします
363デフォルトの名無しさん:2010/06/11(金) 14:17:38
>>359はアホだから無理だろうな
お気の毒に・・・
364デフォルトの名無しさん:2010/06/11(金) 15:08:07
プログラミングの質問ではないのですが、適切なスレが分からなかったのでここで質問させて頂きます。

とあるゲームはOpenGL版とDirectX版の2つあります。
Zbufferと言うか、前後関係の表示精度がOpenGLはハイスペックのPCでも、
グラボなどのないロースペックPCでも、FPSが落ちるだけであまり変わらないように見えます。

一方、DirectXはロースペックPCでは精度が格段に落ちるように見えます。FPSはOpenGLほどは落ちないと感じます。

これはOpenGLはゲーム制作者のプログラムに精度が決定されるのに対し、
DirectXはハード資源を援用して決定されると言うか、フレキシブルに精度が決定されるのでしょうか?(FPS重視?)

365デフォルトの名無しさん:2010/06/11(金) 15:14:31
>>364
それは実装次第。しかしDirectXとOpenGLの一般的傾向を捉えた質問だと思う。

OpenGLは元々ワークステーションで3Dグラフィクスを
処理し表示するためのものだからリアルタイム表示よりも
一定の精度が要求される傾向にある。

一方でDirect3Dは元々がゲーム向けだからリアルタイム処理が前提で、
そこからスペックに応じてどこまで品質を上げられるかが勝負になる。

そういった歴史な事情で、3Dゲーは多数の描画オプションが提供され、
ユーザーの側で品質を指定できるようになっていることが多いね。
366359:2010/06/11(金) 19:32:01
内積を二つの方向ベクトルの角度を求めるのに使うものとしか認識してなかった
>350は軸と座標の内積で、軸の直線状に座標を射影するってことを理解した
そういえば、境界ボリュームとか作るのに使うよな…

>>361
ありがとう
367デフォルトの名無しさん:2010/06/11(金) 20:28:31
あ、忘れた
368デフォルトの名無しさん:2010/06/11(金) 22:55:17
物体と背景の間の線はどうやってつけるのですか?
2次元で書く時の黒ふちとか輪郭みたいなものです
369デフォルトの名無しさん:2010/06/11(金) 23:07:30
>>368
トゥーンシェーダー
370デフォルトの名無しさん:2010/06/11(金) 23:07:35
チョット大きい物体を真っ黒で描いておく
371デフォルトの名無しさん:2010/06/11(金) 23:08:49
>>368
そんなものいらない
汚いだけだ
372デフォルトの名無しさん:2010/06/11(金) 23:10:08
ちょwwどれよ??
373デフォルトの名無しさん:2010/06/11(金) 23:11:41
ゲーム開発者は「ゆめりあ」を見てから目を覚ましたのさ
「ああ、萌えゲーに黒淵はいらねぇわ・・・」
374デフォルトの名無しさん:2010/06/11(金) 23:16:58
>ゆめりあ
あら、それは・・・こんな顔かしら?
http://blog-imgs-40-origin.fc2.com/a/r/e/aresoku/ymra.jpg
375デフォルトの名無しさん:2010/06/11(金) 23:44:43
こういう崩壊ってどういう理屈で起きるんだろう
376デフォルトの名無しさん:2010/06/11(金) 23:53:05
ボーン?
377デフォルトの名無しさん:2010/06/12(土) 02:21:12
ふぅ
378デフォルトの名無しさん:2010/06/12(土) 02:41:00
>>368
昔から使われてるテクニックだが
出来たモデルを複製して、少し押し出したあと面を反転して黒くする。
当然頂点数は倍になる。
今はどうやるのが主流なんだろうな?
379デフォルトの名無しさん:2010/06/12(土) 03:01:49
ピクセルシェーダーで
色差や深度差から輪郭を検出して線を書き加えるという方法もある
サイズや精度次第でシェーダーにかなりの負担をかけることになるが
最近のビデオカードなら普通に行けそう
380デフォルトの名無しさん:2010/06/12(土) 03:15:05
最近のビデオカードなら普通に行けそうだな
381デフォルトの名無しさん:2010/06/12(土) 11:43:01
よくテイルズとかのエンカウントシーンで、画面にひびが入って割れた後に
戦闘に突入するシーンがあるじゃないですか?
あれを表現したいんですけど、どうやってやればいいと思いますか?
382デフォルトの名無しさん:2010/06/12(土) 11:45:18
>>381
演算用データを書き込んだテクスチャをつかって
全画面に対してピクセルシェーダでアニメーションをかけるか、

ひび割れた板ポリのメッシュを用意して画面のキャプチャをテクスチャとして貼りつけて
ポリゴンのアニメーションとして表現するかだな。
383デフォルトの名無しさん:2010/06/12(土) 11:53:38
>>382
初心者には難しそうですね。。
頑張ります!ありがとうございました!
384デフォルトの名無しさん:2010/06/12(土) 14:41:27
まだ知らないあたし
385デフォルトの名無しさん:2010/06/12(土) 19:20:04
HwndRenderTarget.DrawTextLayout()とExtTextOut()で文字列を書く少しづつずれていく
あと、GetTextExtPoint32だと一文字ずつ測ろうがまとめて測ろうが得られる結果は同じだったので、CreateGdiCompatibleTextLayout()の結果も同じだろうと思ったら、微妙に違ってた…
いったいどうすれば同じになるんだ
詳しい人がいたら教えてほしい
386デフォルトの名無しさん:2010/06/12(土) 19:24:09
フォントがプロポーショナルフォントだったりしないか?
387デフォルトの名無しさん:2010/06/12(土) 19:48:06
>>386
等幅フォントでもプロポーショナルでも結果は変わらなかった
ExtTextOut() だとa-a-a-a-a-a-aになるんだが、
DrawTextLayout()だとa-a--a-a--aという感じになってしまう
388デフォルトの名無しさん:2010/06/12(土) 20:00:14
>>385
すまん。肝心なことを書き忘れていた
この症状はどの大きさでも発生するわけではなく、10,11,14,16といったい値の時に発生し、12や18の時だとなぜか発生しない
389デフォルトの名無しさん:2010/06/12(土) 20:17:38
シェーダの勉強をしてるのですが見てるサイトにDXUTMeshやdxstdafx.hなどが出てきて、2004年のSDKに入ってるらしいのですが
自分は2009のSDKしか持ってないのでできません。MSDNを見ても2004年の日本語パッチ?みたいなものでSDK自体をインストールできないように思ったのですができないのでしょうか?
ググっても同じファイル名でも何種類もあるようですし
2009年番でそのまま置き換わってるというようなものではないのですか?
390デフォルトの名無しさん:2010/06/12(土) 20:20:52
>>389
答え。そんな古い情報のサイトはあてにしない。
391デフォルトの名無しさん:2010/06/12(土) 20:22:30
マジ?どゆこと?2009にあったシェーダの書き方とかあるの?
392デフォルトの名無しさん:2010/06/12(土) 20:29:48
>>391
DXUTはDirectXSDKのリリースごとに最も変化する部分で
基本的に互換性は保証されないのでそんなものに頼ったサンプルのサイトは使えない。

2004年とか言ってるんだからDirect3D9のことだと思うが、これ自体は大して変わらない。
単独でビルドできる独立したソースコードでサンプルが書かれてるサイトを探すことだな。
393デフォルトの名無しさん:2010/06/12(土) 20:31:45
ありがとうございました
あばば
394デフォルトの名無しさん:2010/06/12(土) 20:42:47
>>385
http://msdn.microsoft.com/en-us/library/dd368205(VS.85).aspx
ここの下のほうにモード云々書いてある
ドンマイ
395デフォルトの名無しさん:2010/06/12(土) 20:48:36
>>394
もうすでにその道は通った
CreateGdiCompatibleTextLayout()でuseGdiNaturalのフラグを真にしたときと偽にした時で試したんだが、どちらも結果は同じだった
どうなってるんだ?
396デフォルトの名無しさん:2010/06/12(土) 20:53:44
それはここに書かれてるやつかも
http://blogs.msdn.com/b/directx/archive/2009/12/18/direct2d-and-directwrite.aspx

> it will be ignored which should result in this being the same as GDI.
397385:2010/06/12(土) 20:56:22
すまん
自己解決した
pixelsPerDipのところでdpix/96.0Fではなくdpixとしていたのが原因だった
スレッドを汚して申し訳ない
つってくる
398デフォルトの名無しさん:2010/06/13(日) 12:21:56
http://maverickproj.web.fc2.com/pg41.html
このサイトを見てトゥーンシェーダの勉強をしていろいろやってみたのですが黒いふちが出ません
どうすれば黒いふちがでるようになるのかおしえてください
ソースhttp://www1.axfc.net/uploader/Sc/so/123358
399デフォルトの名無しさん:2010/06/13(日) 12:33:22
>>398
メンドクサイからプロジェクトファイルかmakeファイル付けてくれ
400デフォルトの名無しさん:2010/06/13(日) 12:42:52
401デフォルトの名無しさん:2010/06/13(日) 13:32:26
>>400
メンドクサイから市販のゲームを全部買って俺にプレゼントしてくれ
402デフォルトの名無しさん:2010/06/13(日) 13:37:10
>>401
えっ
403デフォルトの名無しさん:2010/06/13(日) 13:57:16
えっ
404デフォルトの名無しさん:2010/06/13(日) 14:03:28
bullet必要でやめましたわ
悪いね
405デフォルトの名無しさん:2010/06/13(日) 14:09:11
なくても通りますよ?
406デフォルトの名無しさん:2010/06/13(日) 14:20:26
デバッグ全くしてねえな
m_d3dParametersとか中身全部0じゃねえか
ウィンドウのクライアント領域のサイズはちゃんと計算してねえから気持ち悪いし
適当すぎだろ
407デフォルトの名無しさん:2010/06/13(日) 14:24:48
はい
まずSDKの種類が違ったのでそこから手間取ってるレベルの初心者です
408デフォルトの名無しさん:2010/06/13(日) 14:48:36
それに、Lambert2.fxコンパイル通らん
俺はここで抜け
409デフォルトの名無しさん:2010/06/13(日) 14:58:22
まじですか
てか、fxファイルの中でエラーが出ないような気がするのですがセッティングがおかしいのでしょうか?
410デフォルトの名無しさん:2010/06/13(日) 15:17:38
>>409
float4x4 m_WVPP;の参照先が間違ってる。

あと、m_pZMapSurfaceをレンダーターゲットにしてない。
あと、Debugモードで動かしてよ。
Zバッファのサイズが小さいとか
vertex declarationがあーだらこーだらとか、ぽろぽろでるよ。
411デフォルトの名無しさん:2010/06/13(日) 15:26:16
>>410
ありがとうございます
常にデバッグモードでやってます
Meshes.cpp以外はそのサイトの丸写しなのでそれ以外でミスがあるとわからないのですが
//レンダーターゲットをバックバッファに戻す
m_pd3dDevice->SetRenderTarget( 0, OldSurface );
m_pd3dDevice->SetRenderTarget( 1, NULL );
SafeRelease( OldSurface );を見落としてたことに気付いて付けましたがまだまだ線が出ません。
412デフォルトの名無しさん:2010/06/13(日) 15:36:20
そういえばコンパイルは通るのですがこういうのがずっと出てました
torashade2009\Debug\torashade2009.exe が見つからなかったか、ビルドされませんでした。フル リンクを行います。
413デフォルトの名無しさん:2010/06/13(日) 15:53:40
>>411
DebugモードってのはDirect3Dのデバッグランタイムのことだよ。
これにして、実行時のIDEの出力ウインドウに出るデバッグメッセージをみるの。

また、fxファイルはそのソースだと実行時コンパイルだよ。
ここらへんの理解も怪しいなあ。
414デフォルトの名無しさん:2010/06/13(日) 15:57:06
書くの忘れたけど、もらったソースで
表示されるトラは、Lambert2.fxの結果じゃない。
あれは、固定機能パイプラインの結果か?
415デフォルトの名無しさん:2010/06/13(日) 16:01:55
なんとなくしか理解できません(`;ω;´)
ソース仕上げてあげてくだしあ
416デフォルトの名無しさん:2010/06/13(日) 16:20:09
これはひどい
417デフォルトの名無しさん:2010/06/13(日) 16:22:46
だってもともとSDK2004ならコピペだけでできるつもりだったんだもの
もう限界ぽ
418デフォルトの名無しさん:2010/06/13(日) 17:11:37
http://codepad.org/e6tpZhUI
       ::                .|ミ|
       ::                .|ミ|
        ::               .|ミ|           ::::::::
         :::::     ____ |ミ|          ::::
           :: ,. -'"´      `¨ー 、       ::
   ::        /   ,,.-'"      ヽ  ヽ、    ::
   ::     ,,.-'"_  r‐'"     ,,.-'"`     ヽ、 ::
   ::   /    ヾ (    _,,.-='==-、ヽ         ヽ、   
   ::   i へ___ ヽゝ=-'"/    _,,>         ヽ 
   ::   ./ /  > ='''"  ̄ ̄ ̄               ヽ 
  ::   / .<_ ノ''"       ヽ               i
  ::   /    i   人_   ノ              .l
  ::  ,'     ' ,_,,ノエエエェェ了               /
    i       じエ='='='" ',              / ::
    ',       (___,,..----U             / ::
     ヽ、         __,,.. --------------i-'"  ::
      ヽ、_   __ -_'"--''"ニニニニニニニニヽ   ::
         `¨i三彡--''"´              ヽ  ::  
          /                      ヽ ::              ┼ヽ  -|r‐、. レ |
         /                     ヽ::            d⌒) ./| _ノ  __ノ
419デフォルトの名無しさん:2010/06/13(日) 17:32:16
>>417
とりあえず、動作するまでにはした。
・Lambert2.fxは法線を無効にしてる。
・COMオブジェクトは最後に全部Releaseしろ。
以上

EdgeFilterhttp://www1.axfc.net/uploader/Sc/so/123429.zip
420デフォルトの名無しさん:2010/06/13(日) 17:44:23
>>419
キター
ありがとうございます!
でもなんか中をくりぬいた虎がくるくる回ってるだけのようなのしか表示されないのですがあってますか?
421デフォルトの名無しさん:2010/06/13(日) 18:01:37
とてもじゃないが完成までいけるとはおもえない。
素直に基礎からちゃんと始めるかありもののライブラリを使ったかのどっちかしかないだろ。
422デフォルトの名無しさん:2010/06/13(日) 18:08:40
虎が白い理由を教えて下さい!
白くなる理由を知ってるという経験値が無いので何故白くなるか頭から生み出せないのです
てか、玄人のみなさまならトゥーンシェーダの基本的なソースくらい一瞬で直せるものだと思っていたのですがそこそこむずかしいものなのでしょうか?このサイトは基本的なものですよね?
423デフォルトの名無しさん:2010/06/13(日) 18:14:22
おまいのソースがひどすぎて治しづらい
424デフォルトの名無しさん:2010/06/13(日) 18:15:29
425デフォルトの名無しさん:2010/06/13(日) 18:17:18
>>424
荒らし乙
426デフォルトの名無しさん:2010/06/13(日) 18:21:56
ちょwソースはSDKチュートリアルの虎(メッシュの読み込み)+サイト(元々DXUTMeshを使うはずだったメイン+エフェクトとその実態とヘッダ)だけだぞw
俺が書いたのなんかほぼ0だし
427デフォルトの名無しさん:2010/06/13(日) 18:30:31
どう作ったのかは知らないけど、
ソースの行儀が悪すぎなの。
エラー時の処理まったく入ってないでしょ。
HRESULTで受けてないし、
エフェクトロード失敗してるのにスルーして
レンダリングループまわしちゃうし。
だから時間が掛かるんだよ。
(つーか、マジになって直してる奴がいるわけねーやんw)
428デフォルトの名無しさん:2010/06/13(日) 18:36:43
だからコピペ…俺は何一つ書いてない。俺は何一つ書いてないんだ…
俺は悪くねえ
だから直してくだしあ。おねがいしまつ
429デフォルトの名無しさん:2010/06/13(日) 18:37:44
>>422
サイトの内容は基礎の基礎で難しいところは全く存在しないが、
君のソースがあまりにもひどすぎて手の入れようがない状態といえば通じるかね。

0から書きなおしたほうが早いレベル。
430デフォルトの名無しさん:2010/06/13(日) 18:38:32
>>428
コピペだって言い張るならコピペもとのサイトの管理人にメールで聞けよ。
431デフォルトの名無しさん:2010/06/13(日) 18:41:24
言い張るじゃなくてマジだから
2009チュートリアルの虎があって
そのサイトは2004でDXUTMeshってのを使ってるからそれが無いからメインでメッシュ読み込むとかを移植したの
移植はコピペだし
432デフォルトの名無しさん:2010/06/13(日) 18:45:57
>>429
じゃあ0から書き直して表示させてください。おねがいします
433419:2010/06/13(日) 18:53:15
>>432
>>419のじゃ直ってないの?
おかしいなぁ、俺んとこじゃちゃんと輪郭線出ているが。
まあ、このソースは俺が有効利用、、、、ちゃんと処分しといてやるから
諦めるんだな。
434デフォルトの名無しさん:2010/06/13(日) 18:55:15
マジですか?中が白抜きになってるようなのしか表示されないのですが
435デフォルトの名無しさん:2010/06/13(日) 18:56:49
じゃぁちょっと0から書いてみるか
436デフォルトの名無しさん:2010/06/13(日) 18:57:45
おねがいします
437デフォルトの名無しさん:2010/06/13(日) 19:02:08
とはいったもののどの方法で輪郭描画するかが問題だな・・・。
438デフォルトの名無しさん:2010/06/13(日) 19:02:57
このサイトに載ってるシェーダーの方法に近いのが良いです
439デフォルトの名無しさん:2010/06/13(日) 19:07:20
>>434
ほれ
http://www1.axfc.net/uploader/Img/so/85536.jpg

まあ正常に表示されないのはHWの違いのせいだろうが
これもデバッグランタイムで一回流せば容易にわかるはずだ。
(俺が変更した部分も実はバグっているがそのせいかw)
440デフォルトの名無しさん:2010/06/13(日) 19:09:06
>>439
キター
HWって何ですか?ハンドルウィンドぅ?
デバッグランタイムで一回流す方法を教えて下さい!
441デフォルトの名無しさん:2010/06/13(日) 19:15:01
ん、もう片付いたんならサンプルいらんか
442デフォルトの名無しさん:2010/06/13(日) 19:16:12
こいつ・・俺をおちょくっていやがる・・ッッ!!
443デフォルトの名無しさん:2010/06/13(日) 19:17:17
欲しいです。
それと
Direct3Dのデバッグランタイムに設定する方法を教えてください
それとIDEってポップアップみたいなことですよね?ランタイムエラー、アドレス○○でエラーがでましたとかよく見るしそういう設定ですか?
444デフォルトの名無しさん:2010/06/13(日) 19:22:27
wktk
445デフォルトの名無しさん:2010/06/13(日) 19:23:48
やべぇ面倒くせぇ・・・
ComputeShader使ってもいいか・・・?
446デフォルトの名無しさん:2010/06/13(日) 19:24:02
447デフォルトの名無しさん:2010/06/13(日) 19:26:25
>>446
ぐぐりまくってます。それでも理解できないのです。良い感じのサイトがないし
IDEはハードとどうのこうのとかでてきたし
448デフォルトの名無しさん:2010/06/13(日) 19:32:49
というか、自分で他所から勝手に拾ってきたソースコードを
オレの責任じゃねえと
赤の他人にデバッグを押し付けるって
一体どういう了見だ。

まともなやつならそんな厚かましいことはできんだろ。
449デフォルトの名無しさん:2010/06/13(日) 19:42:17
はい、申し訳ございません。
ComputeShaderは何かわかりません。サイトや一般的な方法が良いです。
それとHWというのを>>439と同じにして正常に表示させる方法を教えて下さい
450デフォルトの名無しさん:2010/06/13(日) 19:52:25
この初心者君が今後成長できずに行き詰るとしても
プロのプログラマーになりたいわけじゃないなら何も問題はないよ。
451デフォルトの名無しさん:2010/06/13(日) 20:10:17
デバッグランタイム
とかで検索してもまともに初心者的な使い方を解説してるページが無いのですが
452デフォルトの名無しさん:2010/06/13(日) 20:15:41
これどうやってうpったらいいんだ?
453デフォルトの名無しさん:2010/06/13(日) 20:21:27
>>452
http://www1.axfc.net/uploader/He/file_post.pl
拡張子選択zip→以上の内容でアップロードする
→choosefile→URL貼る
454デフォルトの名無しさん:2010/06/13(日) 20:26:02
http://www1.axfc.net/uploader/Img/so/85549.png
とりあえず確認用に画像だけ。

元のサイトとやらは面倒で見てないからよくある普通の方法で作ってみた。
455デフォルトの名無しさん:2010/06/13(日) 20:29:49
ソースも上げてください
456デフォルトの名無しさん:2010/06/13(日) 20:32:19
457デフォルトの名無しさん:2010/06/13(日) 20:38:30
指定のピクセルシェーダをサポートしていません
どゆこと?
458デフォルトの名無しさん:2010/06/13(日) 20:46:31
3.0もサポートしてねぇ環境でトゥーンなんてやろうとしてたのかよ。
http://www1.axfc.net/uploader/Sc/so/123482

これが最後だ。
459デフォルトの名無しさん:2010/06/13(日) 20:53:31
MRTをサポートしていません
あーあ
460デフォルトの名無しさん:2010/06/13(日) 20:54:34
お前ら面白すぎw
461デフォルトの名無しさん:2010/06/13(日) 20:56:51
MRTもダメ、PS3.0もダメってインテルのオンボ以下かよ。
DirectXのプログラムやる前にGTX480買って来いって・・・。
462デフォルトの名無しさん:2010/06/13(日) 20:59:19
デルのE8500買ってオンボのままでつ
できないのでつか?トラの方のやり方でもそのせいなのでしょうか?
463デフォルトの名無しさん:2010/06/13(日) 21:01:53
>ビデオコントローラ:グラフィックス・メディア・アクセラレーター Intel G33 Express チップセット内蔵

少なくともDirectXでエフェクトをやってみたいとか心にも思ってはいけないレベル。
数千円で帰るからRadeon5000番台の安いのかってつけとけ。
464デフォルトの名無しさん:2010/06/13(日) 21:03:22
客のPCのグラボがオンボだったときに
開発のみんなでよく歌った歌

オンボード(ガンダーラ)♪
オンボード(ガンダーラ)♪
They say it was in India♪
465デフォルトの名無しさん:2010/06/13(日) 21:06:35
まじですか…そんなところに盲点があったなんて…
それでトラの方が真っ白になるのもそのせいなのですか?
466デフォルトの名無しさん:2010/06/13(日) 21:09:56
グラボと入門書買って出なおせ・・・な?
どの道、この先詰まってばっかりで一歩も前へ進めねぇよ
467デフォルトの名無しさん:2010/06/13(日) 21:10:48
>>465
トラもMRT使ってるし、そうなんじゃねーの?
つーかソースみろよ、お前の書いたソースだろww
468デフォルトの名無しさん:2010/06/13(日) 21:11:02
トラの真っ白の理由
469デフォルトの名無しさん:2010/06/13(日) 21:12:23
そっか…ありがとうございました
これから夏になるので涼しくなったらグラボ買いまつ…
ありがとうございました
470デフォルトの名無しさん:2010/06/13(日) 21:13:00
でもグラボによって表示できるできないがある機能使って作るのって、ソフトウェアとして駄目なんじゃ?
471デフォルトの名無しさん:2010/06/13(日) 21:15:54
//マルチレンダーターゲットに切り替え
m_pd3dDevice->SetRenderTarget( 0, m_pColorSurface );
m_pd3dDevice->SetRenderTarget( 1, m_pZMapSurface );
ここか
MマルチRレンダリングTターゲット
グラボで決まるなんてシラネーよ
472デフォルトの名無しさん:2010/06/13(日) 21:16:57
>>470
まあ確かにそうで、MSも改心してD3D10で性能統一しる!!とかやったんだけど
D3D11でまた妥協し始めたんだっけか?
473デフォルトの名無しさん:2010/06/13(日) 21:19:30
>>470
おめーそんなこといったらPCで3Dゲーム全部うごかねーよ(笑)
ってぐらい3D描画の機能はグラボに依存してる
474デフォルトの名無しさん:2010/06/13(日) 21:22:04
ソフトウェアとしてはサポートしてるかどうかを
起動時に調べて機能のON/OFFを行うのが正しい姿だろう。

コンシューマーには関係ないけど。

>>471
知らないのはただの無知。
マニュアルを読めばいい。ちゃんとチェックする関数もあるんだし。
475デフォルトの名無しさん:2010/06/13(日) 21:24:28
まぁでも今から勉強するならDirectX11やっとくのが色々な意味で手っ取り早いと思うけどね。
DirectX9みたいにあの機能がないだとかあの機能があるだとか関係なく全部サポートしてんだし。
476デフォルトの名無しさん:2010/06/13(日) 21:27:53
でも11極めるころには14ぐらいになってパソコンも高性能化して自宅でモーションキャプチャしてツクールで3DCGゲー作れるようになってるんでしょう?
477デフォルトの名無しさん:2010/06/13(日) 21:29:54
3Dゲームはもうとっくにアマチュアの扱えるもんじゃなくなってるから
11だろうが20だろうが、作れないことに変わりはない
478デフォルトの名無しさん:2010/06/13(日) 21:30:38
極めるのにどんだけかけるんだよ・・・。
APIだけなら1年もかかんねぇよ。
479デフォルトの名無しさん:2010/06/13(日) 21:38:45
APIや仕様だけならDirectX9のより遥かに簡単にはなってる。
問題は汎用的過ぎて扱いきれるかどうかだが・・・。
480デフォルトの名無しさん:2010/06/13(日) 21:43:47
よく極めるといっている人がいるけど、
具体的に極めるとはどういう段階なのか、
俺定義でいいから教えてくれ。
481デフォルトの名無しさん:2010/06/13(日) 21:45:09
>>476
モーションキャプチャ程度ならPCの性能はとっくに足りているが、
いったい何を言っているんだ?
482デフォルトの名無しさん:2010/06/13(日) 21:45:33
この先は超多段になったパイプラインがリセットされて
フルプログラマブルレンダリングになるんじゃなかったっけか?
そうなると低能ジャップの場合アマチュアどころかプロまで壊滅だな。
483デフォルトの名無しさん:2010/06/13(日) 21:47:44
これから数年でビデオ機能はCPUに統合されるので
以前のプログラミング法に逆戻りするよ。ある意味で。
484デフォルトの名無しさん:2010/06/13(日) 21:51:50
逆にGPU機能にCPUが食われてるけどな・・・。
485デフォルトの名無しさん:2010/06/13(日) 21:59:04
CPUを対称型コア、GPUを非対称型コアとして
ハイブリッドなマルチスレッドシステムを組んでおけば
どっちに転んでも対応できるようになると思うよ。
486デフォルトの名無しさん:2010/06/13(日) 23:20:15
でもどうせ2DSTGばかり作るんでしょ
487デフォルトの名無しさん:2010/06/14(月) 00:01:16
directxが全て悪い
488デフォルトの名無しさん:2010/06/14(月) 00:06:21
今時2DSTGはないだろ・・・
489デフォルトの名無しさん:2010/06/14(月) 00:17:10
>>488
背景が3Dなだけで実質2Dばかりじゃね?
490デフォルトの名無しさん:2010/06/14(月) 00:20:16
アクションとか色々ジャンルはあるのに
なんで大半が2DSTGにいくんだろうな。

RPGやシミュレーションはデータつくんのが大変だから分るけど。
491デフォルトの名無しさん:2010/06/14(月) 00:22:13
STGは2Dで十分だろ。せいぜい背景を3Dにするぐらいで。
492デフォルトの名無しさん:2010/06/14(月) 00:24:51
初心者の2DSTG好きは某T方のせいだろ
493デフォルトの名無しさん:2010/06/14(月) 00:26:04
>アクションとか色々ジャンルはあるのに
>なんで大半が2DSTGにいくんだろうな。

作るのが楽だからかと。
俺の場合、何も考えずにアクション作ってみて、ショボすぎてお蔵入りしたのがある。
494デフォルトの名無しさん:2010/06/14(月) 00:35:00
もうあれじゃね
そんなに弾幕STG好きならComputeShader使って
100万発の弾幕とかやればいんじゃね。
495デフォルトの名無しさん:2010/06/14(月) 01:49:32
流行ってるだけっていう

はい,次の話題
496デフォルトの名無しさん:2010/06/14(月) 02:00:19
上のほうで、エラー処理(HRESULTで受けて関数の処理結果をチェックする)を書くべき、というような
意見がありましたけど、自分は一切チェックしてないです。
問題があった場合、ブレークポイントを使ってチェックすればほとんど解決できています。
仕事でやる場合はマズいのでしょうか?
497デフォルトの名無しさん:2010/06/14(月) 05:50:11
全てのエラー発生箇所をチェックして処理するのが開発の基本だよ。
仕事か仕事でないかに関わらず。
MSDNとかのサンプルにエラー処理がないのは省略されてるだけ。
エラー処理はアプリ固有のコードになるし、コード量も倍ぐらい増えるし、サンプルの意図にそぐわないから。
仕事で勝手にエラーを握り潰したり、無視して続行したりをやったら普通は問題になる。
仕事でなくても信頼性の低いコードとして窓から放り投げられる。
498デフォルトの名無しさん:2010/06/14(月) 07:59:39
エラーチェック省くとバグとりに時間かかるし、自分の環境では問題なくても
他の環境で問題が出たときに困る
それに何の出力もなしにプログラムがいきなり落ちたりしたら不親切
499デフォルトの名無しさん:2010/06/14(月) 08:45:04
自分で書いたDirectXのプログラムをいろんな環境で動かすとわかるが、
およそありとあらゆる呼び出しでエラーが返ってくる可能性がある。

だからSlimDXなんかはエラーを検出すると
例外発生に置き換えるのがデフォルトの動作になってるくらいで。
500デフォルトの名無しさん:2010/06/14(月) 10:35:12
自分でDirectXのAPI使うときも大体例外に置き換えるラップ処理してるだろ?
DirectXに見習ってHRESULTで返したり、FAILEDだったらfalse返したりしないよな
501デフォルトの名無しさん:2010/06/14(月) 10:55:11
自分とこで動くからって他人とこでもうごくとは限らないのがDirectX9の難儀なところ
502デフォルトの名無しさん:2010/06/14(月) 11:22:54
エラーはログ吐いて例外飛ばせばいいんじゃないの?
503デフォルトの名無しさん:2010/06/14(月) 16:47:25
ぶひ
504デフォルトの名無しさん:2010/06/14(月) 18:17:41
例外は投げ捨てるもの
505496:2010/06/14(月) 18:48:15
なるほど・・・
たしかに、他環境で動かしたときにエラーが出てもすぐ分からないですね。
勉強になりました。
506デフォルトの名無しさん:2010/06/14(月) 19:27:45
>>505
雑魚が
507デフォルトの名無しさん:2010/06/14(月) 19:55:59
なんだかんだで修正アドバイスするお前らの男気に惚れるわ
508デフォルトの名無しさん:2010/06/14(月) 19:59:08
ソースうpったらアドバイスくれるのか
509デフォルトの名無しさん:2010/06/14(月) 20:08:37
サンプルくらいならいいが、それなりの規模になってくるとな
510デフォルトの名無しさん:2010/06/14(月) 20:13:27

Microsoftのモーションコントローラー「Natal」、正式名称は「Kinect」に

6月14日14時17分配信 ITmedia News


これでモーションキャプチャできるのかな
511デフォルトの名無しさん:2010/06/14(月) 23:35:54
できないお
512デフォルトの名無しさん:2010/06/15(火) 00:24:04
PCでモーキャプやりたいなら、Webカメラとopencvでいいんじゃない?
513デフォルトの名無しさん:2010/06/15(火) 21:40:17
ちなみにMRT使用の2パスから
MRT非使用の3パスにすれば
ホワイトタイガーさんの糞PCでも動くんじゃないかな
514デフォルトの名無しさん:2010/06/15(火) 21:44:31
ホワイトタイガーさんw
515デフォルトの名無しさん:2010/06/16(水) 00:19:25
動いたところで描画数増えるから負荷やばいだろw
516デフォルトの名無しさん:2010/06/16(水) 01:22:40
低スペック対応なんて、人口比3%以下の
俺のマシンで動かん金返せのモンスターカスタマーを突っぱねられればいいのだから、
特殊エフェクトなんか全部なしのモードが選べるだけでいいんじゃないの。
517デフォルトの名無しさん:2010/06/17(木) 08:48:35
DirectX9SDKの複数のバージョンを入れても開発ってできます?
DirectX SDK (February 2010)
DirectX SDK (August 2009)
DirectX SDK (March 2009)
みたいな感じなんですけど・・・

また、DirectX SDK (February 2010)で開発してたとして
DirectX SDK (February 2010)っていつまでダウンロードできるんでしょうか?
518デフォルトの名無しさん:2010/06/17(木) 09:29:47
複数の環境をインストール出来るかは知らないが
複数のSDKを開発環境から参照してビルドは出来る

SDKのインストーラはバージョン毎に自分で取っといた方がいいぞ
519デフォルトの名無しさん:2010/06/17(木) 15:45:22
DirectX9cのカメラについて質問です。

キャラクターに追従するカメラを作成したいと思っております。
(例えば、モンスターハンターのカメラなど)

D3DXMatrixLookAtLH でビュー行列を作成しているのですが
下記画像での原点の位置を ( 0 ,0 ) から変更できなくて困ってます。

http://www.dotup.org/uploda/www.dotup.org969533.jpg

どのような方法で変更するのか、教えていただけますでしょうか。

何度も出てる質問かもしれませんが
レスよろしくお願いします。
520519:2010/06/17(木) 15:46:43
図のZの向きが逆っぽいですが気にしないでください・・・。
編集ツールの絵をそのまま流用しました。
521デフォルトの名無しさん:2010/06/17(木) 16:07:37
>>519
正直、何がどう変更できないのか良く分からん質問だがとりあえずコレお勧め
ttp://marupeke296.com/DXG_No36_DependenceCamera.html
522519:2010/06/18(金) 05:30:00
>>521
出来ました!
ありがとうございます。
523デフォルトの名無しさん:2010/06/18(金) 14:00:50
>>522
うむ
勧めた甲斐があったわ
524デフォルトの名無しさん:2010/06/18(金) 14:32:38
>>523
お前じゃないだろw
525デフォルトの名無しさん:2010/06/18(金) 18:58:51
便乗してわたしもカメラの質問
マウスの左クリックをドラッグするとカメラがトラックするようにしたいんですけど
どうしたらいいでしょうか?

マウスの移動量をカメラの位置と始点に足せばいいですか?
526デフォルトの名無しさん:2010/06/18(金) 19:13:58
ヒント
DXUTcamera.h
DXUTcamera.cpp
527デフォルトの名無しさん:2010/06/18(金) 19:29:17
>>525
仕様が明確になってないな

マウスのデータは2Dなのにカメラのデータは3Dなんでしょ?
それをどうやって変換するのか?ってのは仕様をがっちり固めなきゃ
どんなPGだって組めないよ
528デフォルトの名無しさん:2010/06/18(金) 19:44:36
>>526
>>527

ありがとうございます
DXUTcamera.cppみました

操作性に難がありますができました
529デフォルトの名無しさん:2010/06/19(土) 12:12:05
初歩的な質問で申し訳ないんですが、
LPDIRECT3DSURFACE9でLNK2001というエラーがでます。
どうすればいいんでしょうか?
530デフォルトの名無しさん:2010/06/19(土) 12:16:11
ポインタ型自体が参照エラーになるわけがない。
夢でも見たんだろ。
531デフォルトの名無しさん:2010/06/19(土) 12:26:35
IDirect3DSurface9の間違いでした
532デフォルトの名無しさん:2010/06/19(土) 12:30:40
単にd3d9.libをリンクしてないってオチなんじゃ
533デフォルトの名無しさん:2010/06/19(土) 12:42:32
リンクしてますよ。
GetBackBufferでbackbufferというのを取得したいのですが。
534デフォルトの名無しさん:2010/06/19(土) 12:49:08
ちょっとエラーを全部書いてみろよ
535デフォルトの名無しさん:2010/06/19(土) 12:50:44
スペルミスとかしょーもないオチに1票
536デフォルトの名無しさん:2010/06/19(土) 12:58:03
これです。

Top.obj : error LNK2001: 外部シンボル ""public: static struct IDirect3DSurface9 * Top::backBuffer" (?backBuffer@Top@@2PAUIDirect3DSurface9@@A)" は未解決です。


if (FAILED(g_pD3DDev->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&backBuffer))){
return false;
}

DirectX9 August 2009
537デフォルトの名無しさん:2010/06/19(土) 13:02:21
分かった
クラスで静的なメンバ変数として宣言してるのに初期化してないからだ
どっかグローバルスコープで

IDirect3DSurface9 * Top::backBuffer = NULL ;
538デフォルトの名無しさん:2010/06/19(土) 13:06:08
>>537
うわ、ほんとだ!
ありがとうございました。
初歩的なミスですみませんした。。。
539デフォルトの名無しさん:2010/06/19(土) 16:54:34
HD5770買ってきてこれでDX11開発しようと思いSDK入れてサンプルブラウザからサンプル起動したら
有効なWin32アプリじゃないといわれて調べたらXPはDX9までしか対応してないのかよぉおおおおおお!!!!!!!
540デフォルトの名無しさん:2010/06/19(土) 17:10:26
常識だろ
541デフォルトの名無しさん:2010/06/19(土) 17:39:20
最近複雑だよな

DirectX9形式でやってもいいけどさ
だったら過去のバージョンもダウンロードできるようにしてくんね?って思う
途中まで開発してて1人新人が入ってきたからダウンロードしてもらおうと思ったら
最新しかダウンロードできなくて糞忙しいときにわざわざ最新に対応するしかなくなったとかある
インストーラもとっておいたけどネットにつなげにいって最新しかインストールできないようにしてね?

んで10と11は特殊OSしか使えないとか・・・DirectXの開発者様の掲げる理想が理解できない・・・
542デフォルトの名無しさん:2010/06/19(土) 18:22:52
販売終了して、延長サポート中のXPの方がマイクロソフトから見れば特殊なOSなんじゃないだろうか
とは言ってもXPの普及率高いしなぁ

>>541
http://www.microsoft.com/downloads/en/results.aspx?freetext=DirectX+SDK
つか開発中の環境くらい取っておけよ
なんかあったとき再構築大変じゃね?
543デフォルトの名無しさん:2010/06/19(土) 18:25:25
あるものを見つけられない無能な開発者を、順調にフィルタリング出来ているようだ。
544デフォルトの名無しさん:2010/06/19(土) 18:30:50
>>542
これ押すとぜってー最新しかダウンロードできないんだけど
俺だけ?
545デフォルトの名無しさん:2010/06/19(土) 18:33:15
>>542
インストーラーっぽいものも保存しておいたんだけど
実行すると最新とってくるか途中で止まるかするんだよこれが
546デフォルトの名無しさん:2010/06/19(土) 18:38:36
>>544
俺は落とせるけど… ただインストールまでは試してない

>>545
webインストーラかなんか保存してたんじゃね?
普通の奴は500MBくらいあるんだけど
547デフォルトの名無しさん:2010/06/19(土) 18:47:26
>>546
えー
なんか色々リンク飛ばされて結局最新のところにならね?
いや俺もデカイの保存してたんだけど途中で止まる
548デフォルトの名無しさん:2010/06/19(土) 18:50:44
>>539
XPでジオメトリシェーダやテッセレーション、コンピュートシェーダ試したいだけならOpenGLやOpenCLで可能。
まぁ普通に7買ってくれば?
549デフォルトの名無しさん:2010/06/19(土) 18:58:50
>>547
色々リンク飛ばされるって…
落としたいの選んでリンク先のDownloadボタン押して
Start downloadをクリックで終わりだろ?3回クリックするだけなんだが
550デフォルトの名無しさん:2010/06/19(土) 19:13:22
>>549
わかったw
GenuineCheck.exeを起動する奴がダメだった
古いの消したらいったw

すまんw
551デフォルトの名無しさん:2010/06/19(土) 21:33:51
今くらいの複雑さなら丁度いいフィルタになるからいんじゃね。
SCEハードほど難易度あげちゃうとアレだが複雑つっても
今のWindows環境なんて調べりゃすぐ分る程度のレベルなんだし。
552デフォルトの名無しさん:2010/06/19(土) 23:50:22
DirectX9SDKの最終バージョンってどれですか?
553デフォルトの名無しさん:2010/06/19(土) 23:54:12
>>552
まだまだ続いてるらしいから最新はわかっても最終はわからんな
554デフォルトの名無しさん:2010/06/20(日) 00:42:10
9目線で選ぶならもろもろ含めてAugust 2007がお勧め
555デフォルトの名無しさん:2010/06/20(日) 00:44:47
>>554
なんで?
556デフォルトの名無しさん:2010/06/20(日) 01:34:42
半端にフルすぎるだろ
557デフォルトの名無しさん:2010/06/20(日) 01:48:12
>>555
D3D9とDirectDrawの最終更新のあったJuneの後で(9EXが使用可能)
DXUTが現在のものと互換になって(それ以前との互換性は無し)
いまは削除されたD3D8やMusic等のコンポーネントが含まれてるのが
Aug2007とあとはNov2007(確認してない)だから

Webサイトで公開されてるような古いサンプル動かしたりしないんであれば最新の使っとけばいいよ
558デフォルトの名無しさん:2010/06/20(日) 01:50:30
DirectX9のサンプルとヘルプが含まれている最新版はどれですか?
559デフォルトの名無しさん:2010/06/20(日) 02:00:30
ヘルプはこの前新しい日本語版のドキュメントが公開されたじゃん
デベロッパーセンターでたぶんダウンロードできる

サンプルは最新版にも入ってるだろ
560デフォルトの名無しさん:2010/06/20(日) 02:13:03
なんでこのスレDirectX9の話題しかないんだろうとふと思った。
10や11って地雷なのか?
561デフォルトの名無しさん:2010/06/20(日) 02:17:42
10は地雷11はやるべきだが現状9は避けては通れない
562デフォルトの名無しさん:2010/06/20(日) 10:33:34
9を避けて通れないのは同人ゲー作る人だけだろw
563デフォルトの名無しさん:2010/06/20(日) 10:41:44
現場に出るのが5年後くらいの若い人なら11からやっていいんじゃ
564デフォルトの名無しさん:2010/06/20(日) 10:46:28
3Dの基礎知識がないと難しいんじゃないかと
565デフォルトの名無しさん:2010/06/20(日) 13:52:27
openGLやったほうがいい気がする
566デフォルトの名無しさん:2010/06/20(日) 14:05:16
んなことはない
567デフォルトの名無しさん:2010/06/20(日) 14:39:34
今現場に出てるレベルなら9はいまさら勉強するものじゃなく使い古した仕事道具だしな。
3Dの基礎知識があろうがなかろうが単に叩くAPIが違うだけなんだからそこはDirectXのバージョンは関係ない。
568デフォルトの名無しさん:2010/06/20(日) 16:37:24
現場とか仕事とか、子供が背伸びしているだけにしか見えないんだけど
569デフォルトの名無しさん:2010/06/20(日) 16:46:07
9.3のレベル指定して11使えばいいんじゃね?
今更9使いたく無いし

570デフォルトの名無しさん:2010/06/20(日) 16:51:39
PCゲームやるようなやつらはVistaか7に移行してるよね?
サポート面倒だからXP早く消えてくれ
571デフォルトの名無しさん:2010/06/20(日) 17:29:35
XPはまだまだ消えないよなぁ
いま専門学校生とか大学生で1-2年後には就職活動しなきゃってひとはおとなしく9やっとけよ
PCゲームだけじゃなくて最近流行の組み込みOS系の筐体もまだ9かGLの2択だから
まぁ、本気で食いっぱぐれたく無ければ
DirectXよりAdobeDirectorとかのオーサリングを勉強しとけと言いたいw
572デフォルトの名無しさん:2010/06/20(日) 18:24:33
職の事を気にするならそもそもプログラムなんてやるな、で終わりだろ。
573デフォルトの名無しさん:2010/06/20(日) 19:09:35
つまらない人ですね
574デフォルトの名無しさん:2010/06/20(日) 20:25:14
面白くて飯が食えるなら苦労しねぇよ
575デフォルトの名無しさん:2010/06/20(日) 23:39:22
面白い面白くないはともかく
KYな発言を繰り返して友達いなさそうな雰囲気ではあるね
576デフォルトの名無しさん:2010/06/20(日) 23:45:45
だな、いじめられてそう
577デフォルトの名無しさん:2010/06/21(月) 00:04:24
日本じゃもうゲームで飯は食えないってどこの専門講師も大学教授も言ってる事だろ
それでもゲーム業界に行きたいとか言うやつはよっぽど現実見れないバカ
578デフォルトの名無しさん:2010/06/21(月) 00:51:22
でもリアルタイムCGプログラムはおもしろいなぁ。
何かゲーム以外で仕事できる会社ないのかな?
579デフォルトの名無しさん:2010/06/21(月) 07:46:43
>>577
専門学校のうたい文句に騙されて結局就職できずに
そうやって自分を納得させてるんですねw
580デフォルトの名無しさん:2010/06/21(月) 17:26:11
すいません、少々質問です
http://sky.geocities.jp/kmaedam/directx9/hello9.htm

このサイトを見ながら今やっているのですが、このページの場合で
#include "resource.h"
#include "Main.h"
この3つのファイルが見つかりません。

この2つについて記述がないようなのですが、ここにのってるソースコードを動かすにはどうすればいいのか分からないでしょうか?

それと、変に初心者向けライブラリを作って態々それを使っての解説ではなく、
1から順番に説明していってくれているようなサイトはないでしょうか?
581デフォルトの名無しさん:2010/06/21(月) 17:27:22
ageついでにもう一つ

DirectX9の教本としてよさそうな物がありましたらどなたか紹介お願いいたします。
582デフォルトの名無しさん:2010/06/21(月) 17:42:52
DirectX以前にC/C++での開発に関する知識が決定的に不足してます
ここでいくら説明してもそこに乗ってるソースを今のあなたに動かすことは不可能です
DirectX9の教本の前にC++言語の入門書を1冊消化することをお勧めします
583デフォルトの名無しさん:2010/06/21(月) 17:44:33
584デフォルトの名無しさん:2010/06/21(月) 17:45:04
c++の勉強しろ
終了
585デフォルトの名無しさん:2010/06/21(月) 17:57:23
>>584
アホ
586デフォルトの名無しさん:2010/06/21(月) 18:22:20
C++重要だよね

いままで時間の無駄だったよ
587デフォルトの名無しさん:2010/06/21(月) 19:10:02
>>580
> ☆DirectX 9.0 Summer 2004(.NET) からはテンプレート機能が無くなって、ここで説明する方法は使えません。

って書いてあるんだからそのページを参考にするべきではない
588デフォルトの名無しさん:2010/06/21(月) 21:26:42
>全ソースコードを掲載しているので、これをコピーして動かして下さい。
が大嘘なので色々追記は削除することで
動くように説明してあげても良いけど
includeが分からないレベルの人だと
長々説明させたあげくに
「なんだか大変そうですね。もう少し勉強してから出直します」
とか言われそうなくらい複数箇所の修正が必要

本気でやる気あるなら説明するけど、あんの?
589デフォルトの名無しさん:2010/06/21(月) 21:45:40
ソース見たけどDirectX関係ねえw
590デフォルトの名無しさん:2010/06/21(月) 21:47:05
>>578
作れ
591578:2010/06/21(月) 21:55:31
>>590
それしかないかw
592デフォルトの名無しさん:2010/06/21(月) 22:35:20
前にシェーダー使ったリアルタイム映像解析とか考えたけど
それで論文書いてもDirectXって時点で「ハッ」って鼻で笑われるんだよなぁ
べつにGLと比べて劣ってる部分なんて無いと思うんだが
学術分野だと何故かOpenGLじゃないと認められないと言う
Windowsでしか動かないのが原因なのかアタマの硬いおっさん連中のせいなのか
593デフォルトの名無しさん:2010/06/21(月) 23:00:23
>>592
微妙に論点がズレてる

その映像解析の理論や手法が重要なのであって
それを実現する機能がDXなのかGLなのかは大して重要じゃない

DXとGLの両方でサクッと作れって言うレベルの話で
作る方も評価する方も、そんなインターフェイスに捕われてる時点でレベル低って…
594デフォルトの名無しさん:2010/06/21(月) 23:05:18
>>593は、GPU使っただけの論文書いてる人に非道いことしたよね
595580:2010/06/21(月) 23:17:03
すいません、レス感謝。
今DirectX自体については>>583見てやってます。

>>588
お願いできますか?

というかすいません、
>全ソースコードを掲載しているので、これをコピーして動かして下さい。
これ前提で考えていました……ちょっと自分でも考えて見ます

include自体は分かってるつもりです……一応Cはやってたので
596デフォルトの名無しさん:2010/06/22(火) 05:38:05
質問です。
DirectX9(February 2010)をつかっています。
プログラムを実行して描画が始まる前(一番最初のClearが実行される前?)にプログラムのウィンドウを非アクティブにすると
何も描画されなくなってしまいます。
デバイスロストかなと思ったのですがPresentの戻り値はS_OKになっていて正常のようです。
DrawIndexedPrimitiveの戻り値もS_OKになっていて何が原因で描画されないのか分からない状態です。
描画されない原因は何でしょうか?
597デフォルトの名無しさん:2010/06/22(火) 08:04:03
実行直後じゃなく、実行後しばらくしてフォーカスを切った場合は大丈夫ってこと?
598デフォルトの名無しさん:2010/06/22(火) 15:34:27
>>596
ウィンドウを非アクティブにすることが直接的原因じゃないきがす
fps60出ていなくて、
メッセージ処理のWM_PAINTの時だけ書いてあって、
ウィンドウの重なりで描画が消えてるだけとかあり得そうなので
チェックしてみてくだされ
599598:2010/06/22(火) 17:18:53
WM_PAINTならちゃんと描画されるか・・・
とにかく言いたかったのは描画ルーチンがうまく回っているか
チェックしてみるといいかもしれない、ということで解釈してほしい
600デフォルトの名無しさん:2010/06/22(火) 17:20:11
>>598
その辺、通常のWindowsプログラムとゲームプログラムの全く違うところだよな。
普通のプログラムはWM_PAINTを受け取った時だけ再描画する受動的な動き方だが、
ゲームプログラムはアイドル時に暇さえあれば書き換え続けるやり方になる。
601デフォルトの名無しさん:2010/06/22(火) 18:26:17
>>597-600
ありがとうございます。

描画されるのを確認してからフォーカスを切った場合は正常に描画され続けます。

DirectXの初期化をしてからモデルファイルの読み込みとシェーダーの読み込みをしています。
読み込みをしている間、現在のデスクトップが写り込んだウィンドウが表示されていて
このときに非アクティブにするとClearで指定した青色で塗りつぶされたままになってしまいます。
ウィンドウの上に別のウィンドウを重ねたりしても青色のままなので一応ウィンドウは更新されてるみたい?

描画関数にブレークポイントを置くと止まるのでDrawIndexedPrimitiveは実行されていてS_OKになっています。
ウィンドウプロシージャはWM_KEYDOWNでエスケープキーでプログラムを終了する処理しか書いていません。
602デフォルトの名無しさん:2010/06/22(火) 19:24:52
シェーダーのエフェクトはどうなってる?
デバイスがロストしてるならエフェクトもリセットしないとだめよ
603596:2010/06/22(火) 20:59:49
すいません601=596です。
>>602
IDirect3DDevice9::Presentメソッドの戻り値がD3DERR_DEVICELOSTにならずにずっとS_OKのままなのですがロストしているのでしょうか?
それともPresentメソッドの戻り値以外ににロストを確認する方法があるのでしょうか
604デフォルトの名無しさん:2010/06/22(火) 21:10:35
>>603
実は初期化のどっかからいって失敗してんじゃね?
全部ログに吐き出してみろよ
605デフォルトの名無しさん:2010/06/22(火) 21:53:00
ウインドウモードだとデバイスロストってサスペンドとかにしないとならなかったような
606デフォルトの名無しさん:2010/06/22(火) 22:02:05
>>605
他のアプリケーションが排他モードにすればロストする。
607デフォルトの名無しさん:2010/06/22(火) 22:09:23
歯痛!
608デフォルトの名無しさん:2010/06/22(火) 22:18:28
てか、デバックの領域になって気がするので最小コードにしてソースうp

でも最小にしたらなんが動きそうな気がする
そっからどこから動かなくなってるのか探るのが良いかもね
609デフォルトの名無しさん:2010/06/22(火) 23:16:37
>>606
俺の萌えっ子スクリーンセーバーが起動すると大抵のゲームアプリは対応されてなくて落ちる
610デフォルトの名無しさん:2010/06/23(水) 04:58:56
WM_PAINTで描画してないゲームが結構あるけど何なの?喧嘩売ってんの?
611デフォルトの名無しさん:2010/06/23(水) 09:04:58
毎秒60回書かれるゲームでWM_PAINTで描画されなくて何が困る
612デフォルトの名無しさん:2010/06/23(水) 09:08:08
WM_PAINTじゃアニメーションシーンが入るエロゲーができないじゃん
613デフォルトの名無しさん:2010/06/23(水) 10:12:52
エロゲーかよ
614デフォルトの名無しさん:2010/06/23(水) 22:50:36
高フレームレートで画面更新してんなら影響なかろう
615デフォルトの名無しさん:2010/06/23(水) 23:25:09
OpenGLのスレはどこですか?
616デフォルトの名無しさん:2010/06/24(木) 00:09:45
OpenGLは初心者がやるものではないだろう。
617デフォルトの名無しさん:2010/06/24(木) 11:06:01
>>612
十分に高速な描画を行える自身があるなら30fpsはでるんだぜ。
618596:2010/06/24(木) 11:16:25
すいません解決しました。
マウスの移動量でカメラを動かしているのですが、ウィンドウが非アクティブになると
DirectInputが値を取得できなくなって変数にでたらめな数値が入ってました。
それでカメラがおかしなところに飛んでしまって何も描画されなくなってしまっていたみたいです。
レスありがとうございました。
619デフォルトの名無しさん:2010/06/24(木) 11:28:52
>>618
なんじゃそりゃ! そんな質問文の書いてないような情報をエスパーできるか!
ま、正常に動かん時なんてえてしてそんなもんさ……。
620デフォルトの名無しさん:2010/06/24(木) 11:31:32
ずこー
621デフォルトの名無しさん:2010/06/24(木) 11:31:57
DirectInputがデバイスロストしてるんかね。
622デフォルトの名無しさん:2010/06/24(木) 13:26:02
>>618
ズサー
まあ良くあることだなw
俺も気をつけよう
623デフォルトの名無しさん:2010/06/24(木) 15:01:53
>>618
なんで最初じゃなく途中で非アクティブにした時はちゃんと動いてたん??
624デフォルトの名無しさん:2010/06/24(木) 15:25:04
DirectXでテキストボックスみたいなのを作るのはどうやったらいいんでしょう?
別ウィンドウではなく描画してる画面に作りたいのですが…
625デフォルトの名無しさん:2010/06/24(木) 15:33:47
>>624
DXUTのサンプルを動かしてみれ。
626デフォルトの名無しさん:2010/06/24(木) 15:37:26
>>625
DXUTですか、ありがとうございます。
やってみます。
627デフォルトの名無しさん:2010/06/24(木) 15:41:31
xjshxvあるあ、gA嗚呼ああ、ジャアdッvcぜdrfdっfghfっwf通雨ううっ伺うお8bgさ
628デフォルトの名無しさん:2010/06/24(木) 15:44:11
http://game.watch.impress.co.jp/docs/20070131/3dlp03.htm
このようなUIのウインドを作りたいのですが、どうしたらいいでしょうか?
629デフォルトの名無しさん:2010/06/24(木) 15:45:28
>>628
どうやってんだろうね
630デフォルトの名無しさん:2010/06/24(木) 15:57:11
>>628
OpenGLならGLUT系列のものがいくつかあるけどな。(freeglut、 GLUI)
Direct3Dならなんだろう。
先程上げたDXUTがそうだし、WPFもそう。
ほかに何か安定したツールキットあるんだろうか?
631デフォルトの名無しさん:2010/06/24(木) 15:58:06
大きなとこなら自前でウィンドウシステム構築してるでしょ
632デフォルトの名無しさん:2010/06/24(木) 16:13:44
>>631
利用できるライブラリやサンプルソースを探すという話題なのに
そのレスじゃあ何の答えにもなってないだろ。
633デフォルトの名無しさん:2010/06/24(木) 16:40:48
何でよ。自前でウィンドウシステム作ればいいって話じゃないか
634デフォルトの名無しさん:2010/06/24(木) 16:55:23
>>633
それなら「じゃあ作れ」で終わってしまわないか?
その材料が欲しいというなら、それもDXUIのソース見れ、で終わる。
635デフォルトの名無しさん:2010/06/24(木) 17:10:24
ウィンドウモードで描画してるだけだろ。
ったくうぜったらありゃしねえ。
636デフォルトの名無しさん:2010/06/24(木) 17:33:26
余裕があるなら自分で作ってみるといいよ

ドットバイドット表示系の2D基盤をDirect3Dの上で作って、その上にUI構築基盤作って、
その上にウィンドウシステム作って、そのうえでデザインやらスクリプトとかでカスタマイズできるようにしたり

いったんちゃんとした物が出来ればゲームプレイ時のUIとしても役に立つだろうし便利だよ!勉強にもなるし


そういうのが面倒ならDXUT使えばよろし
637デフォルトの名無しさん:2010/06/24(木) 20:17:38
どんな質問にも答えられる魔法の言葉
「自分で作れ」
638デフォルトの名無しさん:2010/06/24(木) 20:18:59
ワロタw
639デフォルトの名無しさん:2010/06/24(木) 21:59:58
まぁ、結局自分で作るしかないのが実情なんだけどね

初心者が難しく感じるのって絵が書けないからでしょ
プログラムで出来る範囲で全部やろうとするからどうやればいいのか見当もつかないだけで
普通は横にグラフィッカー置いてデザイン出してもらってプログラマはそれを組むだけ
枠組みの仕様に関しては要打ち合わせだけど、かっこよく見せる部分に関してはうちらの仕事じゃない
640デフォルトの名無しさん:2010/06/24(木) 23:03:07
キーの上おしたら+Z方向に向いて進む
キーの下おしたら-Z方向に向いて進む
(左右も同様)
ってどうやるんでしょうか?

押されたキーの方向にローカル軸を回転させればいいんですかね?

641デフォルトの名無しさん:2010/06/24(木) 23:17:45
なにかうまくいかないところでもあるのかね?
642デフォルトの名無しさん:2010/06/24(木) 23:19:32
>>641
キーを押しっぱなしにするとグルグル回転しちゃうんですよね
643デフォルトの名無しさん:2010/06/24(木) 23:25:06
>>642
現在の向いてる角度とって
進行方向の角度とって
キーおしっぱにしたら徐々に進行方向の角度に近づけていって
向いたらその方向で固定したらどうでしょうか?
644デフォルトの名無しさん:2010/06/24(木) 23:46:48
ワールドマトリックスの3行目を位置に加算しろ
645デフォルトの名無しさん:2010/06/24(木) 23:52:58
めんどくさいから、上押されたら90度左なら180ってしてる
646デフォルトの名無しさん:2010/06/25(金) 00:27:54
>>643,644,645
ありがとうございます

とりあえず押されたキーの方向(8方向)に軸を固定で設定する事にしました。
徐々に向けるとか、右から左に急に向いたりするのって難しいですね
647デフォルトの名無しさん:2010/06/25(金) 02:33:04
float angle = ...; // 自分の向いてる方向の角度
D3DXVECTOR3 dir = ...; // 向かせたい方向

// 向かせたい方向の角度[-180,180]
float targetAngle = D3DXToDegree( atan2( dir.x, dir.z ) );

// 角度差、自分から見た目標の角度
float diffAngle = targetAngle - angle;

// 角度差を[-180,180]に収める
diffAngle = std::fmod( diffAngle, 360.0f );
if( diffAngle < -180 ) diffAngle += 360;
if( diffAngle > 180 ) diffAngle -= 360;

float a = 0;
if( diffAngle < 0 ) a = (std::max)( diffAngle, -rotationSpeed ); // 左に回る
if( diffAngle > 0 ) a = (std::min)( diffAngle, rotationSpeed ); // 右に回る
angle += a;

targetAngle でググるとこんな感じのが見つかる
648デフォルトの名無しさん:2010/06/25(金) 02:54:15
if( diffAngle < -180 ) diffAngle += 360;
if( diffAngle > 180 ) diffAngle -= 360;

なんで360?
180じゃね?
649デフォルトの名無しさん:2010/06/25(金) 07:36:14
一周360度で
-190度 = 170度
-180度 = 180度
-170度 = 190度
ってなるでしょ
650デフォルトの名無しさん:2010/06/25(金) 07:50:16
>>646
面倒臭そうなんでやめますっていうその根性たたきなおせよw
651デフォルトの名無しさん:2010/06/25(金) 12:11:58
趣味でやってるぶんには別にいいだろw
プログラマーになりたいとか思ってなけりゃなんでもいい。
652デフォルトの名無しさん:2010/06/25(金) 13:02:55
そういうのが考えるのがダメな人はFlashでもやってればいいと思うよ
653デフォルトの名無しさん:2010/06/25(金) 13:34:51
>>652
あれで凝ったもん作ろうとするともっと面倒臭いわ
あれこそ好きにやらせてくれと思う
654デフォルトの名無しさん:2010/06/25(金) 13:39:59
趣味でもある程度学んだり面倒なことでも後の効率を考えて作ったりしないと行き詰まるがな
655デフォルトの名無しさん:2010/06/25(金) 13:45:20
スタートラインに立つ前から、効率的な方法は何なのかグダグダ聞きまくる奴もいるが、
精神病としか思えないレベルなんだよな。
656デフォルトの名無しさん:2010/06/25(金) 13:52:16
まあ、はじめの頃は色々と躓いてちっとも進まないから気持ちわからないでもないな
657デフォルトの名無しさん:2010/06/25(金) 13:58:25
ニートが語るスレはココですか
658デフォルトの名無しさん:2010/06/25(金) 14:02:56
仕事中ですが何か?

まぁ、コンパイル中に2ch巡回してるダメ人間ですがw
659デフォルトの名無しさん:2010/06/25(金) 14:13:02
会議中ですが何か?
660デフォルトの名無しさん:2010/06/25(金) 14:38:52
現実逃避中ですが何か?
661デフォルトの名無しさん:2010/06/25(金) 15:33:41
今からDirectX9の勉強を始めます。
オススメのSDKはどれですか?
662デフォルトの名無しさん:2010/06/25(金) 15:39:40
最新
663デフォルトの名無しさん:2010/06/25(金) 17:51:43
フイタ

矛盾してるようだが一応あってる。
そしてネットに転がってる古めのサンプルコードは動かないことがある :)
664デフォルトの名無しさん:2010/06/26(土) 02:52:44
いつのまにかDirectX SDK June 2010が出ていたんだな
VS2010で使えるようになってるらしい
665デフォルトの名無しさん:2010/06/26(土) 06:11:54
それは知っていたがVS2010が発売開始してたのを忘れてた
注文しとかないとな。ありがとう
666デフォルトの名無しさん:2010/06/26(土) 06:18:51
2010に乗り換えたいんだがFBX SDKの2010対応状況はどうなってるんだ?
C++0xを切れば今のままでも使えることは分かってるんだが
667デフォルトの名無しさん:2010/06/26(土) 13:14:59
VS2010のトピックって何?
668デフォルトの名無しさん:2010/06/26(土) 14:04:36
>>667
スレ違い
669デフォルトの名無しさん:2010/06/26(土) 14:19:46
楕円形で回転するのに壁との当たり判定ってどうすればいいの?
670デフォルトの名無しさん:2010/06/26(土) 15:05:40
>>669
厳密なやり方はいくつかあるけど
「めんどくさいのでやらない」のが正しい

ゲームだったら複数の円を組み合わせて類似の判定を取るか
楕円周上に適当な密度で当たり判定用の円または点を置いて判定するくらいで十分

あとスレ違い
671デフォルトの名無しさん:2010/06/26(土) 15:31:29
ごめん
672デフォルトの名無しさん:2010/06/26(土) 16:59:38
ポリゴンで当たり判定作れるようにしてるならデザイナさんがいい当たり用ポリゴン作ってくれるよ
673デフォルトの名無しさん:2010/06/26(土) 20:42:52
本当に2Dしか必要ないときはWindows SDKのDirect2Dを使ったほうがいいの?
674デフォルトの名無しさん:2010/06/26(土) 20:48:46
いいからDirect3Dでやっとけって
675デフォルトの名無しさん:2010/06/26(土) 20:50:54
それならわざわざあらためてDirect2Dを発表した意味あるのって感じなんだよな
676デフォルトの名無しさん:2010/06/26(土) 20:55:12
Direct2DはGDIと混合運用するためのものだ
グラフィカルなWindowsアプリをつくるためのものであって
2Dゲームを作るためのものじゃない
やるのはいいけど逆にメンドイ部分が出てくるはず

最初からゲームなんて興味ないですって人ならスマン話だが
677デフォルトの名無しさん:2010/06/26(土) 21:00:16
まてまてまて。
678デフォルトの名無しさん:2010/06/26(土) 21:01:39
あ、書けた。
>>676
Direct2DというのはあくまでDirect3Dベースで2D処理するための汎用のAPIセットであって、
用途は限定されてない。
むしろゲームでは積極的に利用すべき優秀なライブラリだ。
Direct2Dレベルの豊富な機能を自力で実装しようだなんてぞっとしない話だろ。
679デフォルトの名無しさん:2010/06/26(土) 21:59:55
前にDirect2D試したことあったが、
加算合成のさせ方がよくわからんかったから使うのやめた。
アルファ合成は簡単なんだが。
結局あれはどうやるのだろう?
680デフォルトの名無しさん:2010/06/26(土) 22:24:17
アルファ合成は半透明合成の意
681デフォルトの名無しさん:2010/06/26(土) 22:27:48
>>679
マジか
なんか嫌な臭いがすんな
できねーんじゃねん?(いや、試してないけど)

こーゆーの誰のレビューもしないで通してるんだろうか?
ってほど仕様に関して糞なの多いよね?>MS
682デフォルトの名無しさん:2010/06/26(土) 22:55:33
>>670
何だ?めんどうだからやらないって?
ゲームだからを理由にすんなカス
683デフォルトの名無しさん:2010/06/26(土) 23:15:10
ところがどっこい
すごい方程式で計算しても
簡易で代替手段で計算しても最終結果はほとんど変わらないだなぁ
「面倒だからやらない」ってのは手抜きではなくて
いかに楽に速くできる代わりの方法をひらめけるかどうかってことなんだよ

何でも物理やら方程式で解決しようとするのは3流のゲームプログラマ
684デフォルトの名無しさん:2010/06/26(土) 23:20:15
ここはこういうすごい計算してるんですよ!って力説しても
周りは結局表示結果しかみてないから、ふーん、って感じだしな
厳密に計算した方法より
フィーリングでこんなもんだろって直感的に組んだ方が
ゲーム的に気持ち良くて評判良かったりするのは良くある話
685デフォルトの名無しさん:2010/06/26(土) 23:40:16
でっかくてゆっくり動く楕円なら
当たり判定が正確じゃないと気になりそうだけどな。
686デフォルトの名無しさん:2010/06/26(土) 23:43:51
>>683
その面倒だからと今の面倒だからは意味合いが違うと思うな
687デフォルトの名無しさん:2010/06/27(日) 00:00:59
要は無理に楕円でやろうとするより楕円を使わないアプローチを考えろってことだろ?
なにも間違ったことを言ってないと思うが
『めんどうだからやらない』は『難しすぎて出来ません』
とは全然違うぞ
688デフォルトの名無しさん:2010/06/27(日) 00:03:08
>>682の早とちりだろ
意味を理解してくれればきっといいあいにはならない
689デフォルトの名無しさん:2010/06/27(日) 04:02:53
イマドキは面倒でもやるのがトレンド
>>669はGJK法でググって手がかりにするがよい
ただしスレ違いなのでここで質問はしないでおくれよ
690デフォルトの名無しさん:2010/06/27(日) 07:49:38
嘘教えんなよw
691デフォルトの名無しさん:2010/06/27(日) 11:09:30
ここで何度も推奨されてるけど
「ゲームプログラミングのための3Dグラフィックス数学」って本に
解法の足がかりが載ってる。
個人的にGemsやGPUGemsよりまずこの本を買っとけと思う。

で、楕円体と壁の衝突判定だが、これは楕円体と平面の判定を考える。
楕円体やボックスなど対称な物は法線方向の実効半径ってもんがあって、
平面法線の実効半径を求め、その実効半径と距離を比較することで
平面と衝突しているか判定することが出来る。
時間と共に移動と回転する楕円体の場合、上で使った式に
回転行列M(t)と移動行列D(t)を組み込んで、tについて解けばいい。(t=時間)
M(t)はsin(t)やcos(t)で出来ているで、tについて解くとn次多項式になるんで、
nの上限は自分で決める必要がある。(nを増やせば精度が上がるが重くなる)

ただ俺はこの方法は使わない。別に同じように正確でもっと簡単な方法を使う。
これは教えない、自分で探せ。

>>683のいうこともある意味正しいが、それはわかったうえでの話。
わかりもしない、検討もしないくせに、ゲームだからいいんだよは違う。
それはペテン師の言い訳であって、エンジニアの言うセリフじゃない。
692デフォルトの名無しさん:2010/06/27(日) 11:22:45
うむ、ゲーム作らないでライブラリばっか作ってる『エンジニア』さんの意見ですね
相手が平面ならいいけど
デコボコした地形を転がすとか考えた時に絶対簡易でやった方がまともに動くって
693デフォルトの名無しさん:2010/06/27(日) 11:23:34
草の根BBSの頃から、日本のゲーム技術者は技術を隠す傾向が強かったね。
しかも隠しているものは「簡易な代替手段」そのものだ。
こういう性質が積もり積もって今に至る。
694デフォルトの名無しさん:2010/06/27(日) 11:27:33
>>693
まあなぁ。現代的なゲームプログラミングに通用する
オープンソースの国産ライブラリやフレームワークががどれだけあるか考えれば。
695デフォルトの名無しさん:2010/06/27(日) 11:37:14
国産オープンソースなんて皆無だろ。
つーかクローズドでもろくなもんねえよ?
696デフォルトの名無しさん:2010/06/27(日) 11:43:37
>>690
えっ
697デフォルトの名無しさん:2010/06/27(日) 15:21:01
国産とかならDXライブラリとかあるだろ。

>>694
そもそも特許だのなんだのでがんじがらめにしてんのは企業だろ。
思いついたネタが片っ端から会社の特許にされたんじゃ公開する気なんてねぇ。
698デフォルトの名無しさん:2010/06/27(日) 16:31:38
>>これは教えない、自分で探せ。
>>これは教えない、自分で探せ。
>>これは教えない、自分で探せ。
>>これは教えない、自分で探せ。
699デフォルトの名無しさん:2010/06/27(日) 17:07:37
秘伝の奥義教えてくれよ。エスパー頼むよ。
楕円が半径1の球になるように、移動ベクトルと、判定対象としてリストアップしたポリゴンの頂点の方をスケーリングしてしまうとか?
700デフォルトの名無しさん:2010/06/27(日) 17:13:03
>>669
そもそも楕円がそんなに重要な形なのか?
オレならサイコロ型、球形、凸多面体ぐらいに分類してしまうだろう。
701デフォルトの名無しさん:2010/06/27(日) 17:37:14
普通はせいぜい八角形くらいにするだろ。
えてして初心者はリアルタイムで高速動作する完全な形状でのコリジョンの処理方法があると思っているようだが。
702デフォルトの名無しさん:2010/06/27(日) 17:39:19
当たり判定なんて以外とテキトーなのかな?
最近のゲームやってないけど
703デフォルトの名無しさん:2010/06/27(日) 18:12:14
まあ、実際に経験しないと分からないんだよ
処理負荷の問題があるならだけど、ゲームとしてユーザーが気にならないレベルなら簡易化すれば良いんだよ

例えば、サウンドの発生とかも、うっかり
”厳密にタイミング違うけど気にならないレベル”
なんて言おう物なら、キチガイのように
”駄目です、きちんと合わせて下さい”
とか言いだす企画とか

お前さ、自分で絵と音を判断して区別も付かないレベルなのに
言葉に踊らされてるんだよって感じ
(厳密に言えば、ダブルバッファ使って2INTの画面遅れがあって2/16msズレてんのにユーザー気にしてないだろってレベル)
704デフォルトの名無しさん:2010/06/27(日) 18:14:10
間違った…
2x16msな
705デフォルトの名無しさん:2010/06/27(日) 18:18:49
モノリンガルジャップに10年落ちのゴミ技術をさも秘術であるかのように出し渋られるような屈辱を受けるくらいなら
英語勉強したら?
NVIDIAのサイトには訳本だと1万円するGPU Gemsが3冊公開されてるし、
他所では、海外ではシェーダーのバイブルなのに日本では訳本すら出ていないShaderXも無料公開されてるし。
DXSDKのヘルプをまともに読めるようになるだけでもかなり違ってくるぞ。
706デフォルトの名無しさん:2010/06/27(日) 18:54:49
>>705
実際には、デザイナの啓蒙も必要だから
プログラマだけが技術もっても意味無いケースが多いよw

どんなにLODを説明したり実画面見せてもも、
ローポリを3Dソフト上で拡大していじりながら
”細かい形がかわっちゃうからLODは使えない”
とか言い張って、全然LODを理解しないデザイナとかw

バッチ数を下げたいので、マテリアル分けはコストを考えて
って色々と説明やツールを用意しても、見た目がほとんど変わらないのに
キャラの一々全ての詳細部分のマテリアルを変えて
”こだわりでござい”ってデザイナとかw

プログラマに断りもなく、3Dソフトのレンダリング用に落ちてるシェーダー拾って
自分のプレビューと実記は違うと騒ぎ出すデザイナとかw

…全部実在ね、しかも最近の話なのが痛いんだわ…
707デフォルトの名無しさん:2010/06/27(日) 19:00:58
クビ切れよそんなクズ。
オレはそんなのにはあったこと無いわ・・・。
708デフォルトの名無しさん:2010/06/27(日) 19:08:09
>>706
うわぁ・・・w
709デフォルトの名無しさん:2010/06/27(日) 22:41:11
別に、うわぁって言うほど珍しいことじゃないような
そういう輩は何でもかんでもダメダメ言うと余計言うこと聞かなくなるから
ある程度は妥協してあげる姿勢をみせて上げるのが上手く付き合うコツ

絶対に譲っちゃいけないところは譲らないけど
割とどうでもいいところをさも「キツイですけど、しょうがないですねー」
と引いてあげると上手く操縦できる
710デフォルトの名無しさん:2010/06/27(日) 22:44:58
すげーw
人を使うのがうまいんだね。
711デフォルトの名無しさん:2010/06/27(日) 23:09:35
>>698-699
秘伝でも何でもないよ。
誰でもわかる、簡単な方法で
聞けばがっかりする話だ。

ただ俺はそれにたどり着くまでに
それなりに苦労したんで、お前らみたいな
キリギリス野郎にタダで教えるのは腹が立つんだ。

2分法を使うんだよ、
dt=0で衝突しておらず、dt=1で衝突している場合、
dtを半分にしていって衝突判定を繰り返す。
これなら、どんな形状であろうと関係ないし、
どんな動きをしてもいい。
精度が欲しければ、半分にする回数を増やせばいい。
最悪32回もやれば、float精度を確保出来る。

(dt=0で非衝突、dt=0.5で衝突、dt=1で非衝突のケースは検出出来ないが、
レアケースとして無視する。これが許容出来ないならdtを縮めるしかないな)
712デフォルトの名無しさん:2010/06/27(日) 23:18:56
特許がどうとか守秘義務がどうとか言っても、本音はそんなの。
いやあ、まさに頑固職人の発想だわ。
713デフォルトの名無しさん:2010/06/27(日) 23:19:26
それ只のバイナリサーチじゃねえの
714デフォルトの名無しさん:2010/06/27(日) 23:21:22
苦労も何もDirectXSDKのサンプルで普通にやってる事だろ・・・
せめてサンプルは全部一通り見とこうぜっていう。
715デフォルトの名無しさん:2010/06/27(日) 23:21:27
>>713
そう、だから唯の2分法だって。
716デフォルトの名無しさん:2010/06/27(日) 23:25:17
>>714
何という名前のサンプル?
確認してみたいと思う。
717デフォルトの名無しさん:2010/06/28(月) 00:25:47
>>716
他人には教えないくせに自分には教えろって変じゃないか?
718デフォルトの名無しさん:2010/06/28(月) 01:07:47
知らないんですか?
719デフォルトの名無しさん:2010/06/28(月) 01:35:20
英語分からないとほんと低レベルな争いになるんだな
発展性ゼロどころかマイナス
720デフォルトの名無しさん:2010/06/28(月) 02:00:13
>>706
愚痴イラネ
721デフォルトの名無しさん:2010/06/28(月) 02:08:09
>>701
FPSのあたり判定ってどうしてんの?

結構適当で,足の先に当たってても当たってないことになったりってあるの?
722デフォルトの名無しさん:2010/06/28(月) 06:34:59
>>717
知らないんですか?
723デフォルトの名無しさん:2010/06/28(月) 07:41:41
すみません。みなさんは「モーション」をどう管理しているのでしょうか?

私はモーションの編集しやすさを優先し、じみに再生速度を1つ1つ調整しなければいけないので
別ファイルに再生時のもろもろの都合をそれぞれ別記しようとしていますが、
もっと良い方法というか、制作込みでもっと良いデザインパターンというのが有るのでしょうか?
724デフォルトの名無しさん:2010/06/28(月) 07:49:01
編集しやすさも何もモデリングソフト側で設定すればいいだけの話だろ。
いったい何を言っているんだ?
725デフォルトの名無しさん:2010/06/28(月) 08:21:16
モデルとモーションをモデリングソフトの形式からからゲーム内形式に変換するのに、1セット数十秒かかるケースなんじゃないか?
だからちょっといじるたびに時間かかって仕方ないとか。

答えは簡単だ。頻繁に書き換えたいデータは別ファイルにする。テキストファイルでも何でもいい。
726デフォルトの名無しさん:2010/06/28(月) 09:35:17
結局何が聞きたいのが良くわからん

製作の都合上、モーションファイルの他に設定ファイルがいるんだけど
ファイル数が増えてしまうので何か良い方法はありますか?ってことなら
パッケージ用ツールを別途製作して
適当なヘッダくっ付けて対応するファイルを連結してついでに圧縮なんかもしちゃって
読み取り時にヘッダを元に解析するとか
727デフォルトの名無しさん:2010/06/28(月) 09:46:18
なんかプログラムうんぬん以前に、まともなモデリングソフトを一度でも使って出直すべき人間が多すぎる。
728デフォルトの名無しさん:2010/06/28(月) 09:49:57
高価なモデリングソフトも持ってること前提で話進めるとかどんな初心者スレだよw
729デフォルトの名無しさん:2010/06/28(月) 10:05:34
体験版でタダで使えるものもあるんだから、
一回使うだけなら高価かどうかなんて関係ないだろ。
730デフォルトの名無しさん:2010/06/28(月) 10:19:24
できるかできないかを知りたいんじゃなくて
製作に使えるかどうかが問題なのに
試用期間の1ヶ月で全てを終わらせろってことですね?アタマ悪いな
731デフォルトの名無しさん:2010/06/28(月) 10:22:51
1ヶ月も使って使えるかどうかの判断ができないのか・・・
732デフォルトの名無しさん:2010/06/28(月) 10:23:28
制作に使うのではなくモデリングソフトの基本的な考え方を学べという話をしているんだろ。
だから一回使えと何度も言っているのに、本当に頭が悪いな。
733デフォルトの名無しさん:2010/06/28(月) 10:35:12
話が全然かみ合ってないな
734デフォルトの名無しさん:2010/06/28(月) 10:40:12
ぶっちゃけ、知識も技術もないのなら、
代わりにソフトに金をかけるのは必要だろう。
735デフォルトの名無しさん:2010/06/28(月) 10:45:00
ここに質問しにくるような奴って
フリーのメタセコとかブレンダーとかでシコシコ作ってるようなのだろ?
それに対し高価なソフトを買えとか酷すぎじゃね?
試用版で基本を知るのはいいけど
結局使い続けられないならなんらかの代替手段が必要なわけでそれを聞きにきてるんだと思うが
736デフォルトの名無しさん:2010/06/28(月) 10:50:04
基本を知る前から基本の代替手段が思いつくって、どれだけ天才かエスパーなんだよ。
737デフォルトの名無しさん:2010/06/28(月) 10:56:15
基本が理解できたら、自分で解決できるようになるから、
質問する必要がなくなると思うよ。
738デフォルトの名無しさん:2010/06/28(月) 11:31:42
すげぇ上から目線の奴が多いのなここ
お前ら初心者のレベルの低さを舐めてるだろう
一度専門学校の講師に借り出されたことあるけど
いまお前らがぼんやりと思い浮かべたレベルのさらに2段下くらいだと思ってもらいたい
最初はまぁこれも勉強かとおも思ったが3年くらいで我慢できなくなってやめた
しかし自分の下に人が付くようになるとあの時の経験は無駄ではなかったと思うこともある
739デフォルトの名無しさん:2010/06/28(月) 11:56:40
レベルが低いからこそ基本からやらないとダメだろ。
740デフォルトの名無しさん:2010/06/28(月) 12:00:55
未経験の18歳にどんな期待をしてるんだろう
レベルが高かったら教える人間なんて必要ないじゃないか
741デフォルトの名無しさん:2010/06/28(月) 12:21:36
基本をすっとばして理解させられると、上から目線で思い上がっている人間てなんなの?
742デフォルトの名無しさん:2010/06/28(月) 12:41:23
ずいぶんと必至な奴がいるな
743デフォルトの名無しさん:2010/06/28(月) 12:54:30
まぁレベルが高い学生のところにはレベルが高い講師が呼ばれるだけだよな
744デフォルトの名無しさん:2010/06/28(月) 13:10:51
スルーしないなら、こういうのは723にもう少し具体例を挙げさせて議論しないと不毛やん。
>>723じゃ何がしたいのか分からんし、回答側が予想で話していても理解できまいて。

…そもそもDirectX関係なさそうな
745デフォルトの名無しさん:2010/06/28(月) 13:15:51
デザインパターンという言葉を使うと荒れる良い例だな
746デフォルトの名無しさん:2010/06/28(月) 13:53:42
質問です。

海外FPSとかをプレイしてるとマップ切替時に、マップデータロード、
テクスチャやオブジェクトロードしてるところまでは分かるのですが、大抵の場合、
Prechasing...みたいな文字が出てしばらく何かの処理をしています。

創造でいいので、おそらくこういう事をしているんだろうというのを教えて頂けないでしょうか?
747デフォルトの名無しさん:2010/06/28(月) 14:16:16
FPSのソースがそこら中に落ちているんだから、いい加減な想像をする必要なんか無いだろ。
いったい何がしたいんだ?
748デフォルトの名無しさん:2010/06/28(月) 14:41:01
基本からやり直して来いとか
○○見ろとか
質問に答える気の無い人はいい加減消えればいいのに
749デフォルトの名無しさん:2010/06/28(月) 14:54:09
>>748
うわぁ・・・
750デフォルトの名無しさん:2010/06/28(月) 14:59:50
751デフォルトの名無しさん:2010/06/28(月) 15:13:21
まぁ、説教したいだけなら「初心者」質問スレにはいらんわな。
ただ746はDirectX関係なさそうだしマ的でも無さそうなのでスルーしようと思ったが。

>>746
自分で言っている通りの処理だよ。そこでシーンデータ以外も扱うかどうかは物によるわな。

特にPCの場合、想定よりスペックが足りなければシームレスな設計でも処理落ちするし、
VRAMが確保できなければ最悪数秒とまるかも知れない。だから普通は、処理が終わるまでは警告を出す。
752デフォルトの名無しさん:2010/06/28(月) 15:17:17
・・・だろ

って書く人同じ人かな?
753デフォルトの名無しさん:2010/06/28(月) 15:26:17
>>752
病気だろ
その判定w
俺も〜だろは結構使う
754デフォルトの名無しさん:2010/06/28(月) 15:38:21
普通使わないだろ
755デフォルトの名無しさん:2010/06/28(月) 15:53:09
>>753は病気・・・だろ?
756デフォルトの名無しさん:2010/06/28(月) 18:10:58
2chで「だろ」はよく使われてるけど
「だろ。」の奴は同じ奴臭いな
757デフォルトの名無しさん:2010/06/28(月) 18:13:18
>>756
上からみたら煽りしかしてないwwwww
758デフォルトの名無しさん:2010/06/28(月) 19:17:25
基本的な質問で申し訳ないんですが、
画面サイズの板ポリを20個くらいのランダムな三角形で切れ目を入れて、
ばらばらになって飛び散っていくアニメーションを作ろうとしています。
モデルやアニメーションデータはどんなツールで作れるでしょうか。
できればフリーソフトの範囲がいいんですが。

実際の描画はID3DXMeshを使う予定です。
759デフォルトの名無しさん:2010/06/28(月) 19:30:08
>>757
ホントだw
「だろ。」のレスは煽りしかしてねぇw
760デフォルトの名無しさん:2010/06/28(月) 19:43:47
>>758
申し訳ないらなら質問しないでください。
761デフォルトの名無しさん:2010/06/28(月) 19:45:15
>>758
お前馬鹿だろ
762デフォルトの名無しさん:2010/06/28(月) 19:49:59
>>758
その条件じゃ無理じゃないの?
三角形の区切りと飛び散り方が決め打ちでいいなら
ツールで動きを設定してフレームアニメーションさせればいいんだろうけど

切れ目もランダム、飛び散り方もランダムとかになると
普通に計算で頂点を区切ってそれぞれ動かした方がよさそう


>>760>>761は「だろ。」の人
763デフォルトの名無しさん:2010/06/28(月) 20:10:28
めたせこでいうナイフツールかねぇ??
764デフォルトの名無しさん:2010/06/28(月) 20:15:19
>>762お前は何もわかってない・・・だろ?
765デフォルトの名無しさん:2010/06/28(月) 20:21:06
人間死に方は選べないが、生き方は自由だろ。
所得から控除じゃないよ。例えば、保険料は、所得から控除して残ったものに税金がかかるだろ。

なんぞこの検索候補
766デフォルトの名無しさん:2010/06/28(月) 20:28:25
>>758
XSIのプラグインであったよ
767デフォルトの名無しさん:2010/06/28(月) 20:30:21
AABBと線分の交差判定ってどうやるんでしょうか?
英語のサイトでそれぞれx,y,zの成分を比較していくソースがあったんですけど、日本語で知りたい・・・
768デフォルトの名無しさん:2010/06/28(月) 20:34:29
>>758
技術がないんだから金を惜しむな。
769デフォルトの名無しさん:2010/06/28(月) 20:48:24
OpenCVに平面を細分化するクラスがあった気がする
770デフォルトの名無しさん:2010/06/28(月) 20:52:04
まったく…
煽ってる奴は分かってるんだから回答してやれよ
それに頓珍漢なレスする奴も何だかなぁ…

>>758
悪いが、その程度は全てプログラムで出来ないと駄目だろw
変換済み頂点で、自分で全画面を構成するランダムポリゴンを作成して
自分で簡易的な物理式でも使って飛び散る変換をかけないさい
(マトリクスでも頂点変換でもお好きに)
771デフォルトの名無しさん:2010/06/28(月) 20:53:58
ツールは方眼用紙とエンピツで十分
772デフォルトの名無しさん:2010/06/28(月) 20:56:18
「だろ」の日記に嫉妬w
773デフォルトの名無しさん:2010/06/28(月) 20:57:50
>>772
人気だろ。
カス
774デフォルトの名無しさん:2010/06/28(月) 21:13:15
だろ。の人が図星を指されて顔真っ赤にして荒らしてるようにしか見えないw
775デフォルトの名無しさん:2010/06/28(月) 21:14:07
コテつけて
776デフォルトの名無しさん:2010/06/28(月) 21:17:28
上から検索してみるとここまで煽りに徹するというのも信念を感じるねw
キモイーw
777デフォルトの名無しさん:2010/06/28(月) 21:24:03
ゲームプログラムなら俺に聞け7
http://pc12.2ch.net/test/read.cgi/tech/1274521960/

こっちにもw
778デフォルトの名無しさん:2010/06/28(月) 21:31:45
基本的にファイターなんだなw
779デフォルトの名無しさん:2010/06/28(月) 21:53:01
>>762,770
どもです。ランダムと書いたのでうまく伝わらなかったんですが、
エフェクトの一種として使いたいだけなので3〜4パターンもあれば十分なんです。
数式で作ると規則的になってしまうだろうということでランダムと書きました。
切り目はモデラーで手で作れれば。
どちらかというとそこからのアニメーションでしょうか。
数式だけで飛び散っていく感じが表現できるのかなぁ。
780デフォルトの名無しさん:2010/06/28(月) 22:03:31
あのね…ランダム使うとかって発想は無いの?
781デフォルトの名無しさん:2010/06/28(月) 22:03:42
>>779
大丈夫
それぞれに初速度と方向ベクトルを与えてやって
毎フレームごとにに速度に減衰をかけたり
重力方向に加算するだけでかなりそれっぽく見える

どうしてもそれで納得できないなら
物理エンジン組み込むなり適当なサイトから方程式を引っ張ってくれば良い
782デフォルトの名無しさん:2010/06/28(月) 22:10:16
>>767
AABBでぐぐったら、2番目にそれらしいのがヒットしたが・・
もしかして、ぐぐるなんて女々しい!2chだけが我が友!!みたいな人?
783デフォルトの名無しさん:2010/06/28(月) 22:12:11
>>779
ソフトを探してるというのが質問ならXSI ModToolかBlenderでも使えば。たしか無料だし。
でもプログラムでやらないならスレ違いすぎだる
784デフォルトの名無しさん:2010/06/28(月) 22:37:06
>>767
適当だけど良くあるレイとボックスの当たり判定して
衝突点までの距離が線分の長さより短かったら衝突じゃだめなのか?
785デフォルトの名無しさん:2010/06/28(月) 22:44:50
爆発をビルボードで表現したいのですがやる気が出ません。ソース下さい
786デフォルトの名無しさん:2010/06/28(月) 22:53:22
>>785
画像くださいの間違いじゃねぇか?
ここじゃねぇだろ

Googleで「爆発」「爆発エフェクト」あたりでググるとそれっぽいのでるから
真似て作ったらどう?(権利関係があるのでそのまま使うのはお勧めできない)
787デフォルトの名無しさん:2010/06/28(月) 22:53:58
>>785
ソースも何もビルボードでやるって決まってるならほとんど絵の問題だ
ttp://tukiken.hp.infoseek.co.jp/muge/cr/tool/tool_A.html
みたいなツールでエフェクト作ってあとはアニメーションさせるだけ
788デフォルトの名無しさん:2010/06/28(月) 22:56:11
知ってる
初心者だから四角ポリゴン作って画像分割してとか時間かかるから面倒臭い
だからソース下さい
789デフォルトの名無しさん:2010/06/28(月) 23:00:04
だろ。の人が初心者の振りして荒らしてるだけです
触らないように
790デフォルトの名無しさん:2010/06/28(月) 23:03:03
ちょwちげwww
爆発だけのサンプルくだたい
車輪の再開発面倒臭いのです
ぐぐったらすぐソース出てくると思ったらでてこなかった
791デフォルトの名無しさん:2010/06/28(月) 23:03:58
>>789
たしかにそんな臭いするねw
こういう糞な初心者のフリして
「だから俺がいてよかっただろ?」
的な展開にでもしたいのかな?
あったま悪いなw
792デフォルトの名無しさん:2010/06/28(月) 23:05:35
>>790
じゃ「ビルボード DirectX」でググってどっかいけゴミクズ
793デフォルトの名無しさん:2010/06/28(月) 23:07:57
ゲームそのものが車輪の再発明なんだよ。
嫌ならやめちまえ。
794デフォルトの名無しさん:2010/06/28(月) 23:10:34
うぜー
それくらい作ってくれよケチ
玄人のくせに
795デフォルトの名無しさん:2010/06/28(月) 23:11:26
そういえば昔
ココかゲ製作板の方か忘れたけどDirectXの質問スレで
同じように叩かれて
「ここで回答してるのはほとんど俺だし
俺がいなくなったらこのスレ成立しなくなるだろ?
でももうコネーヨって」
って泣きながら消えた奴がいたけど同じ臭いがする
796デフォルトの名無しさん:2010/06/28(月) 23:19:50
このスレにおいて「だろ。」はNGワードにしても問題ないな
なんも建設的な意見出さないし
レス見てると相手の意図がわかってるくせにわざとはずしたレスばかりしてるし
育ちが悪くて会話するだけ無駄な人種だろーねw
開発にもこーゆーのいるよ
技術あるのに(っていうほどないけどw)いても全く役に立たないのw
797デフォルトの名無しさん:2010/06/28(月) 23:22:01
だろ厨うぜー
スレ荒れてなかったらたまにソースくれるのに
798デフォルトの名無しさん:2010/06/29(火) 00:04:14
たまにソースくれ厨もうざいですお
799デフォルトの名無しさん:2010/06/29(火) 00:21:57
>>784
ありがとう
頭イイですね
800デフォルトの名無しさん:2010/06/29(火) 00:24:06
>>795
実際俺がきえて消滅したスレあるけど
801デフォルトの名無しさん:2010/06/29(火) 00:25:25
>>799
まあね
よくいわれるよw
802デフォルトの名無しさん:2010/06/29(火) 00:29:14
荒らす

人が減る

レスがないので嵐がいなくなる

レスがつかずスレ消滅
803デフォルトの名無しさん:2010/06/29(火) 00:56:52
それは本当に必要が無いスレだっただけだろう
804デフォルトの名無しさん:2010/06/29(火) 08:44:51
板ポリにテクスチャの左端を表示させてここからテクスチャを右端まで動かしたいのですが
void TexTrans(D3DXMATRIX &out,float u,float v)
{
D3DXMatrixIdentity(&out);
out._31 = u;
out._32 = v;
}
描画関数中
D3DXMATRIX out;
TexTrans(out,0.0,0.1);
pd3dDevice->SetTransform(D3DTS_TEXTURE0,&out);
pd3dDevice->SetFVF
Effect->SetMatrix
Effect->SetTexture
            描画
としても動きません。どうしてでしょうか?
805デフォルトの名無しさん:2010/06/29(火) 08:50:23
>>804
そんなもん、シェーダーの内容によってどうとでもなるので
提示されたソースだけではなんとも言えん。
806デフォルトの名無しさん:2010/06/29(火) 08:53:34
>>805
どういうことですか?これじゃできないのですか?
807デフォルトの名無しさん:2010/06/29(火) 08:54:49
>>804
毎回D3DXMatrixIdentityで初期化してるんだから動くはずが無い
あとそのままだとv方向に動かないか?
808デフォルトの名無しさん:2010/06/29(火) 09:05:29
>>807
uvの方向はよくわからないので見て判断しようと思いました
D3DXMatrixIdentityを消してテクスチャのセットアップ時に一回だけD3DXMatrixIdentityするようにしてもできませんでした
描画のところは
UINT Passes;
Effect->Begin( &Passes, D3DXFX_DONOTSAVESHADERSTATE ) );
for( UINT p = 0; p < Passes; ++p )
{Effect->BeginPass( p ) ;
Mesh->DrawSubset( 0 ) ;
Effect->EndPass() ;
     }Effect->End() );
これです
どこを変えたらテクスチャが動くようになるのでしょうか?
809デフォルトの名無しさん:2010/06/29(火) 09:24:02
>>808
805も言ってるけど
シェーダーで描いてるならいくら固定機能でずらそうとしてもダメなんじゃないかな?
頂点シェーダーでテクスチャ座標出力してるところあるでしょ
そこをずらさないといけない

ちょっと頂点シェーダの中身書いてごらん
810デフォルトの名無しさん:2010/06/29(火) 09:27:43
>>809
http://codepad.org/Tl079uPN
おねがいします
811デフォルトの名無しさん:2010/06/29(火) 09:42:52
上の方(8行目あたりに、変数名は自分の好きなように

float2 TexTrans = { 0.0f, 0.0f };

を追加
54行目を

o.Tex0 = Tex0+TexTrans ;




あとはプログラム側から
Effect->SetVector ( TexTrans &D3DXVECTOR4(u, v, 0.0f, 0.0f ) ;

uの値を徐々に変えていけばずれていくはず
812デフォルトの名無しさん:2010/06/29(火) 09:46:57
あ、ごめ
Effect->SetVector ( TexTrans &D3DXVECTOR4(u, v, 0.0f, 0.0f ) ;

Effect->SetVector ( "TexTrans", &D3DXVECTOR4(u, v, 0.0f, 0.0f ) ;
813デフォルトの名無しさん:2010/06/29(火) 10:01:40
>>811
>>812
ありがとうございます!ズレました!
シェーダーで描くというのはエフェクトを使うということでしょうか?
g_pMesh->DrawSubset( i );のみ→普通
Effect->BeginPass( p );にはさむ→シェーダを使っている
みたいな感じですか?
814デフォルトの名無しさん:2010/06/29(火) 10:22:00
D3DXを使わないのであればID3DXEffecを書く必要性はないので、それだけで判断することは出来ない。
815デフォルトの名無しさん:2010/06/29(火) 10:22:13
まぁ、大体その認識であってる

多分固定機能すっとばしていきなりシェーダーから入った人なんだろうけど
それならそれで固定機能の事は忘れて
シェーダーだけでやっていけばいいんじゃないかな
今回みたいに固定機能を使った古いサンプルを参考にすると動かないこともあるかもだけど
816デフォルトの名無しさん:2010/06/29(火) 10:25:52
ありがとうございます
シェーダー系でできるように頑張ります
817デフォルトの名無しさん:2010/06/29(火) 12:08:05
>>812
「データ」「タバコ」「イクラ」などカタカナ言葉の日本語を原語のアクセントで読むのは間違い。
これらを間違えて読んでいると日本人である事を疑われるので気を付けるように。
818デフォルトの名無しさん:2010/06/29(火) 12:12:08
えっ
819デフォルトの名無しさん:2010/06/29(火) 12:15:17
えっ
820デフォルトの名無しさん:2010/06/29(火) 12:24:44
自分以外がまともな回答をしてるのが許せない
だろ。が荒らしてるだけです
触らないように
821デフォルトの名無しさん:2010/06/29(火) 12:26:39
>>820
心の病をかかえてるだろ。
822デフォルトの名無しさん:2010/06/29(火) 12:30:48
DirectXってどういう風に発音するの?
823デフォルトの名無しさん:2010/06/29(火) 12:33:54
関西風に発音します
824デフォルトの名無しさん:2010/06/29(火) 12:34:16
だいれくとえっくす。
昔人に聞いたときは、ディレクトエックスっていってたなぁ。
825デフォルトの名無しさん:2010/06/29(火) 12:56:33
外国人がDirectXって発音してる動画ある?
826デフォルトの名無しさん:2010/06/29(火) 13:00:43
ありますよ
827デフォルトの名無しさん:2010/06/29(火) 13:10:19
中国人ってそういう反応するよね
828デフォルトの名無しさん:2010/06/29(火) 13:23:11
MicrosoftとNVIDIAのお偉いさんの報道向け説明会
ttp://www.youtube.com/watch?v=e7H35LUOGbA
ネイティブすぎてなんとも言えんが
ダイレクトエックスでいいんじゃないの?
829723:2010/06/29(火) 14:16:31
>>724〜745
曖昧な質問をして混乱させてすみません。
定番という形がもし存在するならばそれに添えるように作りたくてつい。
自分なり考えてプログラム側をそれに合わせる事にします。ありがとうございました。すみませんでした。
830デフォルトの名無しさん:2010/06/29(火) 15:20:36
>>825
ないあるよ
831デフォルトの名無しさん:2010/06/29(火) 15:36:10
>>735
Blenderなめんなよ?

自分でスクリプト組んでゲームないデータとかパラメータで持たせたり物理的なあたり判定データ組み込んだり出来るんだぜ

高いソフト使えばいい物が作れるなんて大きな間違いだ
フリーや安物のソフトを使い倒して自分の技量がソフトの機能を超えたら高いソフトでも何でも買えばいい
832デフォルトの名無しさん:2010/06/29(火) 15:38:07
>>831
ブレンダーってボーン吐き出せたっけ?
833デフォルトの名無しさん:2010/06/29(火) 15:39:18
Blenderじゃなくても出来るけどな
たぶん3Dソフトといわれてすぐに名前がでてくるようなソフトは全部できると思うぞ
834デフォルトの名無しさん:2010/06/29(火) 16:04:55
>>832

だからぁ
無けりゃスクリプト組めるんだから自分で書けばいいでしょ

結局市販のフォーマットなんていつか自分のやりたいことが出来無くなるから(たとえばモーフィング)
自前で3Dソフトのエクスポーター、ゲームプログラムのインポーター位書けたほうがいい

何が言いたいかって言うと、高いソフトを買うのもいいけどそういう応用力があれば安ものでも十分やっていけると言う事

>>ここに質問しにくるような奴って
>>フリーのメタセコとかブレンダーとかでシコシコ作ってるようなのだろ?

こういう考えは間違ってるってことだ。初心者ほど金をかければ何か出来ると勘違いしている。多少楽にはなるかも知れんが金をかけても何もできない奴はできない
835デフォルトの名無しさん:2010/06/29(火) 16:16:49
ボーンならメタセコ+Rokdeboneでいいじゃん
836デフォルトの名無しさん:2010/06/29(火) 16:18:05
837デフォルトの名無しさん:2010/06/29(火) 19:24:43
エフェクトのある部分だけコピーしたいのですがどうすれば良いのでしょうか?
エフェクトを同じように2個つくてデバイスー>セットFVF、エフェクト2−>マトリックス、テクスチャー
と設定したはずなのですが消えてしまいます。何が足りないのでしょうか?
エフェクト1だとー>マトリックス、テクスチャーだと表示されます
なぜでしょうか?
838デフォルトの名無しさん:2010/06/29(火) 19:35:04
DirectXを学びたいと思ってるんだけどお前らはどうやって勉強したの?
それとお勧めの本とかあったら教えてくれ
839デフォルトの名無しさん:2010/06/29(火) 19:40:24
補足
C,C++,Rubyを経験してます
840デフォルトの名無しさん:2010/06/29(火) 20:03:09
>>837
エフェクトってのは
ID3DXEffectのことなのかい?、それとも何らかの効果描画なのかい?
841デフォルトの名無しさん:2010/06/29(火) 20:06:14
>>838
ウィンドウくらいは作れるの?
842デフォルトの名無しさん:2010/06/29(火) 20:15:20
>>841
それは大丈夫です
843デフォルトの名無しさん:2010/06/29(火) 20:16:43
>>842
チュートリアルはやった?
844デフォルトの名無しさん:2010/06/29(火) 20:19:45
>>840
ID3DXEffectです!
エフェクト1−>ゲットマトリクス
エフェクト2−>セットマトリクス
これでコピーできてますか?
エフェクト1−>セットテクスチャをしようとすると
ID3DXEffect::GetTexture' : 2 番目の引数を 'IDirect3DTexture9 *' から 'LPDIRECT3DBASETEXTURE9 *' に変換できません。
となりますキャストしようとしてもうまくいきません。
845デフォルトの名無しさん:2010/06/29(火) 20:26:21
>>844
全然コピーできてないと思うけど正直何がやりたいのかわからないので
ちゃんと丁寧に質問内容をまとめてくれ

コピーってのは同じエフェクトを複数表示したいってこと?
それとも
エフェクト1の演算結果をエフェクト2で使用したいってこと?
846デフォルトの名無しさん:2010/06/29(火) 20:43:31
>>842
ウィンドウが作れるなら843も言ってるけど
ttp://msdn.microsoft.com/ja-jp/library/ee416755(v=VS.85).aspx
ここのチュートリアルをとりあえずやってみるのが一番お金がかからない(DirectX9の場合)
ソースコードは全てSDkと一緒にインストールされてるのでそれを見る

本はいつも俺はココでは「これ1冊でOKな本は無い」ということにしてるが
あえてまったく知識が無い状態で学習用に買うなら
ttp://www.kohgakusha.co.jp/books/detail/978-4-7775-1272-0
を一応押しておく
ただし、これやってもゲームとか作れるようにはなりません
最終的には「コレ何だっけ?」というときにぺらぺらめくる辞書的な使い方になるかと

ややDXUT寄りだけどシェーダに関してかなり初心者向けに丁寧に書いてあるのが高感度↑
ただ、固定機能に関してはほとんど触れられてないので要注意

いろいろパラメーターの説明とか書いてあるけど全部覚える必要は無い
どこに何が書いてあるかだけ覚えといてあとで必要になったら読み返せば良い
847デフォルトの名無しさん:2010/06/29(火) 20:58:17
>>845
エフェクト1のマトリクス部分か、エフェクト1のテクスチャ部分をエフェクト2のその部分にコピーして使いたいのです。
やりたいことは
D3DXCreateEffectFromFileでエフェクト2.fxからエフェクト2に入れる
SetTechnique
OnResetDevice
描画中で
SetMatrix
SetTexture
ビギン→ループ(ビギンパスビギン描画エンドパス)→エンド
としてエフェクト1を使って表示してる物体とは別にエフェクト2を使って違う物体を表示したいのです
848デフォルトの名無しさん:2010/06/29(火) 21:18:18
>>847
なぜコピーする必要があるのか詳しく
849デフォルトの名無しさん:2010/06/29(火) 21:29:49
やりたいことは
D3DXCreateEffectFromFileでエフェクト2.fxからエフェクト2に入れる
SetTechnique
OnResetDevice
描画中で
SetMatrix
SetTexture
ビギン→ループ(ビギンパスビギン描画エンドパス)→エンド
これでエフェクト1を使って表示してる物体とは別にエフェクト2を使って違う物体を表示したいということなのですが、エフェクト2の方は何かが足りなくて全く表示されないのです
これを全てエフェクト1にすると上手くいきます
ということで、エフェクト2のマトリックスが悪いのかなと思ったり、テクスチャが悪いのかなと思ってエフェクト1からコピーしようと思ったのですが上手くできなかったからです
なぜちゃんと流れどおり設定したつもりなのにエフェクト2の方は表示されないのでしょうか?どうやったらコピーできるのでしょうか?
850デフォルトの名無しさん:2010/06/29(火) 21:35:03
>>843
>>846
丁寧にありがとう
参考にします
851デフォルトの名無しさん:2010/06/29(火) 21:37:23
>>849
それはコピーとか関係無しになにか根本的なところが間違ってる
描画部分のソースコードを省略しないで全部書いて
852デフォルトの名無しさん:2010/06/29(火) 21:58:18
void RendExplode(LPDIRECT3DDEVICE9 pd3dDevice,ID3DXEffect* Effect)
{ HRESULT hr;
V( pd3dDevice->SetFVF( g_pMesh2->GetFVF() ) );
V( Effect2->SetMatrix( "g_mWorld", &g_Mx2 ) );
V( Effect2->SetTexture( "g_txScene", g_Tx2 ) );
UINT cPasses;
V( Effect2->Begin( &cPasses, D3DXFX_DONOTSAVESHADERSTATE ) );
for( UINT p = 0; p < cPasses; ++p )
{
V( Effect2->BeginPass( p ) );
V( g_pMesh2->DrawSubset( 0 ) );
V( Effect2->EndPass() );
}V( Effect2->End() );
}
この関数を作って呼び出してます。引数のEffectは、Effect2をEffectと書き換えた後メイン描画中のEffect1を引数にして使いました、この時は、全部同じエフェクトですが物体は表示されます
出かけるのでレス返せなくなりますがエスパーよろしくおねがいします
853デフォルトの名無しさん:2010/06/30(水) 14:20:36
DirectXについてよく知らないんだが、
DirectX9とDirectX11って具体的に何が違うんだ?
854デフォルトの名無しさん:2010/06/30(水) 14:27:44
いろいろ
855デフォルトの名無しさん:2010/06/30(水) 14:29:14
よく知らないならその違いを気にする必要はないんじゃないか?
答えても理解できないだろうし
その質問の仕方じゃ
技術的な違いなのかプログラム的な違いなのか解からんし
856デフォルトの名無しさん:2010/06/30(水) 14:35:59
>>855
んー、技術的にどういったことができるようになって、
どういうことができなくなった、もしくはやりづらくなったかっていうのを知りたいんだが…

9を今使ってて11に乗り換えると何がどーなるのかいまひとつなのよね…
857デフォルトの名無しさん:2010/06/30(水) 14:39:52
>>856
http://ja.wikipedia.org/wiki/Microsoft_DirectX

とりあえず動作的には
動作するのがVistaのsp2からwindows7だけだ
xpとvistaの古いままなのでは動作しないって感じじゃね?
まちがってたらスマンコ
858デフォルトの名無しさん:2010/06/30(水) 15:10:37
DirectX9であと何年戦えますか?
859デフォルトの名無しさん:2010/06/30(水) 15:18:37
>>857
それは判ってるんだけど…どういう技術が使えるようになったかって事が聞きたいのよね
質問を変えてみたほうがいいのかな?
シェーダモデル5.0って何ができるん?
860デフォルトの名無しさん:2010/06/30(水) 15:21:49
DirectX11でググれ
861デフォルトの名無しさん:2010/06/30(水) 15:30:22
>>860
やっぱりよくわからん。
ダイナミックシェーダリンクとかコンサバティブオーデプスとか
そういうことなのか?
862デフォルトの名無しさん:2010/06/30(水) 15:34:35
>>861
wikiに書いてあるじゃん

高精細な描画を可能にするテッセレーションのサポートや新たな命令セットが追加されたほか、
GPUコンピューティングを実現するDirectX Compute Shader、マルチコアCPUに対応したマルチスレッディング処理、
HDR圧縮などの新機能を実装している。

だと
あんまり興味なかったらいらないんじゃね?
863デフォルトの名無しさん:2010/06/30(水) 15:35:45
SDKのサンプルにわざわざ新機能の使い方が載っているのに、
質問する理由がさっぱり理解できない。
864デフォルトの名無しさん:2010/06/30(水) 18:13:31
DirectX9で後5,6年は戦えるんじゃない?
WebインストーラーでDirectXをインストールすると2004年のとかからインストールされるし
865デフォルトの名無しさん:2010/06/30(水) 18:25:27
戦える戦えないより、
むしろDirectX9はいい加減放棄したいな。
せめてDirectX9Exがいい。
とっととDirectX11で作って問題ない世の中になってくれー
866デフォルトの名無しさん:2010/06/30(水) 18:54:48
5-6年は無理じゃないか?
DirectX9自体はすぐには消えないと思うけど
マイクロソフトのやり方だとまず開発環境の方から締め付けてくるから
過去のサポートを打ち切ることで
最新の開発環境でやりたかったら11でやれみたいな流れにしていくと思われる
867デフォルトの名無しさん:2010/06/30(水) 18:54:51
XPでもサポートしたらイイのにね・・・
OS売ろうなんて欲出さずに。
868デフォルトの名無しさん:2010/06/30(水) 18:57:57
Direct3Dを使って2D画像をビルボードとして等倍で表示するとき、
画像全体だと問題ないんだけど
画像から一部を抜き出して描画させると微妙に半ピクセルほどずれてしまう……。
画像全体を表示させるときは左右上したどこもずれてないことは市松模様の画像を作って確認済み。

どこがポイントなんだろう……。
869デフォルトの名無しさん:2010/06/30(水) 19:13:58
>>868
とりあえずココを読んでみることをお勧めする
http://msdn.microsoft.com/ja-jp/library/bb219690(VS.85).aspx
870デフォルトの名無しさん:2010/06/30(水) 19:19:02
>>868
半ピクセルズレるってどんな状態か想像出来ないんだが
871デフォルトの名無しさん:2010/06/30(水) 19:24:39
>>868
テクスチャのサンプラーモードを
D3DTEXF_LINEARからD3DTEXF_POINTに変更すると解決すると予想
872デフォルトの名無しさん:2010/06/30(水) 20:10:01
>>869
そこは最初の段階で押さえました。画像全体ではずれずに表示できています。
>>870
描画位置が1ピクセル未満ずれること。2D描画だとまず無いだろうけど3Dだと当たり前に起こっちゃう。
>>871
確かにそれなら0.5ピクセル未満のズレなら解消できるだろうけど、
等倍じゃなく縮小表示させる時もあるんだよね……。

ちなみに、これらの話はDirect3Dで実装した独自GUI部の描画の部分です。
873デフォルトの名無しさん:2010/06/30(水) 20:17:24
スマンが
描画位置のズレが気になってるのか
フィルタリングのアンチエイリアスが気になってるのか良くわからなくなってきた
不満がある部分の画面のスクリーンショット見せてくれ
874デフォルトの名無しさん:2010/06/30(水) 21:53:46
>>867
ぶっちゃけXPで動いたとしても同人や趣味レベルでDirectX11が主流になる気がしない。
もちろん技術レベル的な意味でな。
875デフォルトの名無しさん:2010/06/30(水) 23:14:05
情報がDirectX9ばかりだもんな
それで間に合わせてくださいって言われてるような感じさえする
876デフォルトの名無しさん:2010/06/30(水) 23:21:27
11になったからって、べつに難しくなるわけじゃないでしょ。
なんちゃらシェーダーが増えても、使わなくてもいいものなら
いくら増えても関係ない。

固定機能がなくなっても、固定機能程度の表現力でよければ
誰かが書いたシェーダーを使いまわすだけだし。
877デフォルトの名無しさん:2010/06/30(水) 23:23:19
Xファイルが読めなくなったが初心者的には問題ないといえるか?
878デフォルトの名無しさん:2010/06/30(水) 23:43:28
fbxを使えばいい
fbx sdkは内部で何やってるか分からないから不安と言われたら、
お前みたいなカス如きがフルスクラッチしたガラクタライブラリよりは万倍マシだろうよ、
と答えとけばいい
それとゲーム業界だとcolladaも結構使われてるんじゃなかったっけ?
これもopencolladaやcollada DOMを使えばいける

もしかしたらライブラリの英語ドキュメントを読めないパープリンもいるかもしれないが、
将来出版されるであろう日本向けDX11参考書には
そういうカス向けにXフォーマットの代替手段とその使い方が十中八九収録されるだろうから
それに頼ればいい
879デフォルトの名無しさん:2010/06/30(水) 23:44:02
読み込みまでを9のヘルパー関数つかって
表示を11でやればいいだけの話では?
880デフォルトの名無しさん:2010/07/01(木) 00:40:03
Direct3DRMが無くなるときも同じようなこと言ってる人いたけど、
みんな普通にDirectX5や7に移行してるしね。
881デフォルトの名無しさん:2010/07/01(木) 00:42:44
11への移り時はいつ頃が良いんだろ?

まあ7持ってないから移れないけどさあ
882デフォルトの名無しさん:2010/07/01(木) 00:46:26
>>878
いやFBXはAdobeのプロプライエタリなライブラリなのでまずいだろう。
せめてオープンソースのものでないと
883デフォルトの名無しさん:2010/07/01(木) 00:53:21
Windowsのバージョンが7.0になるくらいで11に移行すればいいんじゃない?
884デフォルトの名無しさん:2010/07/01(木) 07:05:38
マイクロソフトが関わってないPCが主流になればいいのに
885デフォルトの名無しさん:2010/07/01(木) 07:34:59
OpenGLが主流になればいいってことか?
D3DXなしなんてソレこそ初心者からの質問が鬱陶しくなるだろ。
886デフォルトの名無しさん:2010/07/01(木) 08:53:30
正直DirectXもOpenGLも初心者にはまったくお進めできないぐらい
奇形に進化してしまった。1回リセットして新しいAPIを定義した方がいいと思う。
887デフォルトの名無しさん:2010/07/01(木) 09:37:19
何度も言っているがD3D10以降はすげーシンプルっていうか、合理的で分かりやすい
リファレンスだってサクッと読めるレベル
俺は初心者だったころから思っていたけど、D3D9は継ぎはぎだらけな感じがした
888デフォルトの名無しさん:2010/07/01(木) 11:27:23
確かに分かりやすくなったねぇ。
ただ、9はシェーダ移行時期だし、期間長かったしで、そう思われるのはしょうがないけど、
あれでも随分シンプルで使いやすくなってたのよ

FBXの方が導入は楽だったけど、拡張性で俺もCOLLADAに一票だな。バイナリ無いけど
889デフォルトの名無しさん:2010/07/01(木) 12:04:55
X-Fileも自分でテンプレートを追加して、いくらでも拡張できるんだが、
ヘルプに親切な解説がついている割には、仕様を理解している人間が少ないのが実情。
890デフォルトの名無しさん:2010/07/01(木) 12:10:54
Xファイルで問題なのは多くの3Dモデリングソフトメーカーからそっぽを向かれてること
標準性を言えばやっぱFBXかなぁ

11はGeForce400シリーズが型落ちしてお手ごろになったら本格的にやりたい
891デフォルトの名無しさん:2010/07/01(木) 12:11:07
Xファイルって本来、XMLみたく勝手に定義して使ってねって感じだよな
892デフォルトの名無しさん:2010/07/01(木) 12:29:20
COLLADAがオープン、FBXがAutoDesk推奨だっけ?
893デフォルトの名無しさん:2010/07/01(木) 12:41:39
だれかCOLLADAの資料を翻訳してくれ〜
894デフォルトの名無しさん:2010/07/01(木) 15:41:16
>だれかCOLLADAの資料を翻訳してくれ〜
翻訳以前に資料を見に行こうとすらしていないのがバレバレな馬鹿発言だな。
895デフォルトの名無しさん:2010/07/01(木) 15:44:57
>>894COLLADAのサイトで配布してるのって英語版のPDFでしょ?
896デフォルトの名無しさん:2010/07/01(木) 15:49:07
馬鹿にはJapaneseという単語すら翻訳してやらないといけないらしいぞ。
897デフォルトの名無しさん:2010/07/01(木) 16:07:31
>>896あらやだありがとう。
898デフォルトの名無しさん:2010/07/01(木) 16:53:57
なにそれこわい
899デフォルトの名無しさん:2010/07/01(木) 17:51:26
>>888
そういやFBXスレって無いね
需要は特定の人間にはあるだろう
900デフォルトの名無しさん:2010/07/01(木) 18:44:08
AABBとレイの衝突判定でAABBのどの面に当たったかどうか知るにはどうしたらいいでしょうか?
レイの原点とヒットした面の距離は分かります。
901デフォルトの名無しさん:2010/07/01(木) 19:06:07
>>900
距離だけで交点は解かってないの?
902デフォルトの名無しさん:2010/07/01(木) 19:16:15
Xファイル、趣味グラマにはとっても便利だったのに、サポート切られて残念。
拡張性、機能を多少限定したものでいいから、代替フォーマットを用意してほしかったなぁ。
903デフォルトの名無しさん:2010/07/01(木) 20:31:04
ふむ
904デフォルトの名無しさん:2010/07/01(木) 20:35:21
ぬふぅ
905デフォルトの名無しさん:2010/07/01(木) 22:56:05
DirectXってWindowsとXboxだけでしょ?
OpenGLはそれ以外のゲーム全てなのに
906デフォルトの名無しさん:2010/07/01(木) 22:58:12
で?
907デフォルトの名無しさん:2010/07/01(木) 23:03:46
つれたつれた
908デフォルトの名無しさん:2010/07/01(木) 23:19:10
サウンドを何で鳴らすかという問題に直面する
909デフォルトの名無しさん:2010/07/01(木) 23:29:27
USBブブゼラ
910デフォルトの名無しさん:2010/07/01(木) 23:46:58
IDirect3DDevice9::DrawIndexedPrimitive
http://msdn.microsoft.com/ja-jp/library/bb174369(v=VS.85).aspx
について質問です

↓これを参考に
http://msdn.microsoft.com/ja-jp/library/bb147325(v=VS.85).aspx#Scenario_4_Drawing_One_Triangle_with_Offset_Indexing
頂点バッファの途中読みをしたいのですが
GeForceだと期待通りの動作をするのですが
RADEONだとずらした時に何も表示されなくなってしまいます

現在はIDirect3DDevice9::SetStreamSourceで
頂点バッファの先頭位置をずらすことで一応期待通りの動作にすることが出来てますが
DrawIndexedPrimitiveだけで対応することはできないのでしょうか?
911デフォルトの名無しさん:2010/07/02(金) 01:03:40
>>905
正確には「OpenGLっぽいAPI」「OpenGLに似せたAPI」「OpenGLを参考にしたAPI」
OpenGLそのままなんて実際にはそんなにない。だいたいどっかしら弄ってるし。
ATI拡張とかNVIDIA拡張とかうぜぇメーカー毎の拡張機能まであったりなかったり。
912デフォルトの名無しさん:2010/07/02(金) 01:37:26
あるのかないのかどっちだよ
913デフォルトの名無しさん:2010/07/02(金) 02:12:58
50年ゲームを作り続けてきた僕から言わせて貰うなら
あるやつもある、ないやつもある
914デフォルトの名無しさん:2010/07/02(金) 02:13:56
つれますか
915デフォルトの名無しさん:2010/07/02(金) 05:26:05
は?
916デフォルトの名無しさん:2010/07/02(金) 05:59:58
>>913
いやいやいやちょっと待てよ。
俺なんか3000本級のゲーム開発に何本も参加してきたけど、結局結論として思うのは
あるやつもある。だけど、ないやつもある。
917デフォルトの名無しさん:2010/07/02(金) 08:31:45
3000本級ってなに?3000本売れたってこと?
918デフォルトの名無しさん:2010/07/02(金) 10:39:33
ミリオン級とか言うだろ
つまり・・・
919デフォルトの名無しさん:2010/07/02(金) 10:47:20
日本全体で3000人にしか知られてないゲームか
920デフォルトの名無しさん:2010/07/02(金) 11:53:28
3000本売れたってことは少なくとも30万人ぐらいは知ってると思うぞw
921デフォルトの名無しさん:2010/07/02(金) 12:18:21
PCゲーなら1万本売ったら超ヒットだそ
開発期間にもよるが3000本なら頑張った方
2000本なら吊らないといけんかもだが
922デフォルトの名無しさん:2010/07/02(金) 12:19:11
いや売れたって言ってないし
923デフォルトの名無しさん:2010/07/02(金) 12:31:52
また、だろ。が荒らしに来てるのか?
924デフォルトの名無しさん:2010/07/02(金) 14:11:58
スネークマンショーだろ。
知ってるよそんくらい。
925デフォルトの名無しさん:2010/07/03(土) 04:28:03
日本はいい国だなァ
926デフォルトの名無しさん:2010/07/03(土) 17:44:38
いっきは100万本売れてないって知らなかったぜ
927デフォルトの名無しさん:2010/07/03(土) 18:17:50
質問受付中です
928デフォルトの名無しさん:2010/07/03(土) 18:48:35
質問右から左へ受け流し中です
929デフォルトの名無しさん:2010/07/03(土) 19:52:38
DirectX 9Exって何ですか?XPで開発してる俺にも関係ありますか?
930デフォルトの名無しさん:2010/07/03(土) 20:01:02
今飯食ってるから回答無理
931デフォルトの名無しさん:2010/07/03(土) 20:11:54
飯のタネを教えるわけにはいかん
932デフォルトの名無しさん:2010/07/03(土) 20:40:43
>>929
9EXはVista向けだからXPで作ってるのなら関係ない
デバイスロスト時にテクスチャなどのリソースを作り直す必要がなくなったりする
933デフォルトの名無しさん:2010/07/03(土) 21:33:45
>デバイスロスト時にテクスチャなどのリソースを作り直す必要がなくなったりする
違うよ、そもそもデバイスがロストしない。
934デフォルトの名無しさん:2010/07/03(土) 21:50:39
>>933
残念ながらロストはする
ただし、デバイスドライバが停止したりハードがクラッシュしたりでもしない限り
ロストはしないので「ほぼしない」というのが正しい
デバイスマネージャーからドライバを停止するとリセットは必要なことがわかる
935デフォルトの名無しさん:2010/07/03(土) 22:44:01
グラボ付け替えたりしてもいけんの?
936デフォルトの名無しさん:2010/07/03(土) 22:47:38
>>934
ドライバが停止したらそもそもリセットしても復旧しないよ。
937デフォルトの名無しさん:2010/07/03(土) 22:51:38
>>936
グラボ抜いて(停止)
もう一回刺しても動かなかったっけ?
昔、会社で組んでた頃の記憶だけど
938デフォルトの名無しさん:2010/07/03(土) 22:53:38
横からだけど、ドライバ停止しても復旧する例はあるよ
熱による事前停止とか
939デフォルトの名無しさん:2010/07/03(土) 22:53:48
稼動中にグラボ抜く事なんてそうそうないだろw
USBじゃあるまいし
940デフォルトの名無しさん:2010/07/03(土) 22:59:28
2本挿してて出力切り替えると死んだはず
性質の悪いデザイナぐらいしかこんな使い方しないってのはその通りだと思う
941デフォルトの名無しさん:2010/07/03(土) 23:16:25
デバイスの動作の変更

デバイスは、2 つの状況下でのみ喪失するようになりました。
つまり、ハードウェアがハングアップしているためにリセットされている場合、
およびデバイス ドライバーが停止されている場合です。ハードウェアがハングアップしている場合、
デバイスは IDirect3DDevice9Ex::ResetEx を呼び出すことでリセットできます。
ハードウェアがハングアップすると、テクスチャー メモリーは失われます

ドライバーが停止された後は、IDirect9Ex オブジェクトを再作成してレンダリングを再開する必要があります。

プレゼンテーション領域がウィンドウ表示モードの別のウィンドウによって隠されている場合、
または全画面のアプリケーションが最小化されている場合、
IDirect3DDevice9Ex::PresentEx は S_D3DPRESENTATIONOCCLUDED を返します。
全画面アプリケーションは、WM_ACTIVATEAPP コールバック メッセージを受信するとレンダリングを再開できます。

DirectX の以前のバージョンでは、アプリケーションにモード変更が発生した場合、
これを復旧するには、デバイスをリセットして、
すべてのデバイス メモリー リソースとスワップ チェーンを再作成するほかありませんでした。
DirectX for Windows Vista では、モード変更の後に Reset を呼び出しても、
テクスチャー メモリー のサーフェス、テクスチャー、およびステート情報は失われず、
これらのリソースを再作成する必要がなくなりました。
942デフォルトの名無しさん:2010/07/03(土) 23:19:44
>>941
グラボ切り替えたらステートなんて覚えてたって
そもそも切り替えたグラボの性能同じとは限らないじゃんな
ウンコばっかり気を配りやがって
943デフォルトの名無しさん:2010/07/03(土) 23:43:35
>>942
グラボの性能はいいぞ
おれもダイエットに成功したからね
944デフォルトの名無しさん:2010/07/03(土) 23:56:00
最近関係ないレスつけてるのって明らかに同じ人だよね
そんなに流したい話題でもあるのかい?
945デフォルトの名無しさん:2010/07/04(日) 00:10:59
どうなの?
946デフォルトの名無しさん:2010/07/04(日) 00:14:16
947デフォルトの名無しさん:2010/07/04(日) 00:19:50
グラボノイドか
948デフォルトの名無しさん:2010/07/04(日) 00:30:40
>>944
いいからもう寝ろw
949デフォルトの名無しさん:2010/07/04(日) 00:37:03
技術的話題には絡めないけど
開発者気取りたいとかいうワナビーのやることにいちいち突っ込んでたらきりがない・・・
950デフォルトの名無しさん:2010/07/04(日) 00:58:51
その通りだ。
>>944は反省しなさい。
951デフォルトの名無しさん:2010/07/04(日) 02:19:28
最近チップセットのオンボードグラフィックとGeForceを
動作中に切り替えられるのあるよね。
あれに対応するのはめんどくさそう。
952デフォルトの名無しさん:2010/07/04(日) 02:20:51
対応しなきゃいいんだよ
953デフォルトの名無しさん:2010/07/04(日) 02:22:47
あれDirectX使用中に切り替わったりはしないよ
API呼び出し時に切り替わる(か、切り替わらない)、でアプリ終了時に戻る
954デフォルトの名無しさん:2010/07/04(日) 05:37:37
モバイルラデ5850使ってDX11プログラム実行してて、
何かのタイミングでDX10のIntelオンボに切り替わってクラッシュなんて事になったら困るもんな
955デフォルトの名無しさん:2010/07/04(日) 07:13:56
対応しなきゃいいんだって・・・
956デフォルトの名無しさん:2010/07/04(日) 09:22:44
すごく初心者な質問だけど
らでHD5850のようにdirectX10上がメインのでも
9.0cとかで動く?
957デフォルトの名無しさん:2010/07/04(日) 09:26:42
試してごらん。
すぐに分かるから。
958デフォルトの名無しさん:2010/07/04(日) 09:27:57
>>956
動かないよ
959デフォルトの名無しさん:2010/07/04(日) 09:28:31
ども やっぱwin7にしなきゃだめか
960デフォルトの名無しさん:2010/07/04(日) 09:30:40
>>957
うん
961デフォルトの名無しさん:2010/07/04(日) 09:31:00
動きたくない(お前のPCじゃ)
962デフォルトの名無しさん:2010/07/04(日) 09:32:10
恐らく思いっきり既出の質問内容だと思いますが、解決方法がわからないので質問
させていただきます。
VC++2008 + DirectX 9.0c SDKの開発環境にてD3DXSPRITE機能を使い最低限の
2D表示を実現したいのですが、本に載っている最小ソースコードを実行したところ
SPRITEの描画結果がにじんでしまいます。
↓実行結果
http://jishinkuma.aa0.netvolante.jp/etc/nijimu.png
D3DXCreateTextureFromFileEx関数にて24ビットの白と黒の2色しか使っていない
128x128のbmpファイル(Sprite.bmp)を読み込んでいます。
プログラムを実行した画面にも128x128の画像が表示されましたが、
Sprite.bmpに使っていない灰色が表示されて像がにじんだ状態です。

【ソースコードの一部】
//「テクスチャオブジェクト」の作成
D3DXCreateTextureFromFileEx( pDevice, "Sprite.bmp", SPRITE_WIDTH, SPRITE_HEIGHT,
0, 0, D3DFMT_UNKNOWN, D3DPOOL_DEFAULT, D3DX_FILTER_NONE, D3DX_DEFAULT,
0xff000000, NULL, NULL, &pTexture )

//レンダリング
pSprite->Begin(D3DXSPRITE_ALPHABLEND);
pSprite->Draw( pTexture, &rect, &vec3Center, &vec3Position, D3DCOLOR_ARGB(255,255,255,255) );
pSprite->End();

像がにじまないようにSprite.bmpに忠実な白と黒の2色だけ表示されるようにしたいのですが、
方法がわかりません。恐らくソースコードに数行追加すれば直るのではないかと思いますが、
どこにどのように追加すればよいのかわかりません。

すみませんが、追加する場所とソースコードをご教示していただけないでしょうか。
よろしくお願いします。
963デフォルトの名無しさん:2010/07/04(日) 09:33:37
>>961 うぜえ
win7にするつってんだろ
964デフォルトの名無しさん:2010/07/04(日) 09:35:40
>>962
表示した画像の解像度はちゃんと128x128になってる?
printScreenキーでしっかりとってペイントに貼り付けて解像度を目視で確認した?
なんとなく128x128っぽい・・・じゃなくて・・・
965デフォルトの名無しさん:2010/07/04(日) 09:39:47
画像が滲んだときに疑うこと(俺の経験で)

1.バイリニアフィルタがかかってね?
2.表示した画像の解像度が微妙に違う
3.初期化時に作成した画面の解像度が指定と微妙に違う
4.UVの設定がしけてる
5.元画像がハナからなんかおかしい
6.読み込み時におかしくなってる

このぐらい?
966962:2010/07/04(日) 09:44:35
>>964
ペイントに貼付けて拡大して確認しました。
間違いないです。

>>965
本に載っている最小ソースコードなので足りない設定はあっても、余計な設定はないと思います。
967デフォルトの名無しさん:2010/07/04(日) 09:51:38
>>966
1〜6まで全部確認した?
設定もデフォルト値調べてそれが自分の意図と違ったら設定しなおすんだよ?


これでダメだったらとりあえず俺としてはよくわからないなw
968デフォルトの名無しさん:2010/07/04(日) 09:51:47
何言っているんだよ。
本がどうこうじゃなくて自分で設定を一つ一つ確かめろよ。
969デフォルトの名無しさん:2010/07/04(日) 09:53:39
>>966
6つの内のどれかだからさ、もう一回確認してごらん

>>967
だれ?
970デフォルトの名無しさん:2010/07/04(日) 10:05:10
>>966
これはよくある質問なんだけど
ID3DXSprite::Beginは2D描画向けに勝手に色んなステートを書き換えてるので
いくらこの外で設定しても無駄、詳しくは
http://msdn.microsoft.com/ja-jp/library/bb174250(v=VS.85).aspx


手っ取り早くやるなら

pSprite->Begin(D3DXSPRITE_ALPHABLEND);

pDevice->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_POINT );
pDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT );
pDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT );

pSprite->Draw( pTexture, &rect, &vec3Center, &vec3Position, D3DCOLOR_ARGB(255,255,255,255) );
pSprite->End();


で多分うまくいくよ
971962:2010/07/04(日) 11:20:17
パソコンからはアクセス規制で書き込めないのでPHSから書き込んでいます。

>>964>>965>>967-970
ご教示ありがとうございます。

>>970
その方法で上手く行きました。感謝します。
”手っ取り早くやるなら”とのことですが、
他に”きちんとした方法”が存在するのでしょうか。
少し気になります。
972デフォルトの名無しさん:2010/07/04(日) 11:37:03
手っ取り早くやらないならD3DXSPRITE_DONOTMODIFY_RENDERSTATE使って
自分でステート弄くり回せってことでしょ
973デフォルトの名無しさん:2010/07/04(日) 11:40:08
結論:そんなもの(ID3DXSprite)使うな
974デフォルトの名無しさん:2010/07/04(日) 11:47:25
>>962
というかD3DXSpriteは通常だと座標変換すら使わないから、
フレームバッファのサイズとWindowの大きさが食い違ってたりしない限りは
指定したとおりに描画されるはずだよ。

意図した動作になってないなら指定が間違ってるわけで、
デバッガで動作を止めてパラメータを確認するか、最初からやり直せ。
975デフォルトの名無しさん:2010/07/04(日) 11:48:36
>>971
いいよ
976デフォルトの名無しさん:2010/07/04(日) 11:53:03
>>973
ID3DXSpriteを使っているサイトをよく見かけるのですが?
977デフォルトの名無しさん:2010/07/04(日) 11:55:09
それは初心者向けだから
978デフォルトの名無しさん:2010/07/04(日) 11:55:37
ごめんなさい質問取り消します。
>>973は荒らしかもしれないので。
979デフォルトの名無しさん:2010/07/04(日) 12:01:22
なんで既に答えが出てるのに蒸し返すの?

この手の質問って

ID3DXSpriteで○○しようとしてうですが上手くいきません

回答

やっぱりうまくいきません

の流れって
ここで回答してる連中がID3DXSpriteなんて使うのを良しとしないのばっかだから
ID3DXSprite::Beginがステート書き換えてるのを知らなくて
回答自体はあってるけど対処法が正しくない場合がほとんどじゃん
980デフォルトの名無しさん:2010/07/04(日) 12:05:56
ID3DXSpriteって前よりも普通に実用レベルの速度でるようになったよな

何を誤解したんだが
たまにクラスでID3DXSpritをメンバに持って
DrawのたんびにBeginとEnd呼び出して遅い遅いっていってるやついるけど
981デフォルトの名無しさん:2010/07/04(日) 12:30:25
次スレ

【C++】 DirectX初心者質問スレ Part30 【C】
http://pc12.2ch.net/test/read.cgi/tech/1278214135/
982デフォルトの名無しさん:2010/07/04(日) 12:43:34
>>980
D3DXFontの場合は普通に描画するには問題ないものの、
縁取りとかで同じ文字を9回描画させるようにしたらすぐに重くなりすぎるけどなw

まあ、自前のレンダリングエンジンが枯れてくるまでの動作確認用としては使える。
983デフォルトの名無しさん:2010/07/04(日) 12:54:45
ID3DXSpriteが内部で何をやっているのか正しく理解していれば
使っても別に問題はない
がしかし、ID3DXSpriteについて質問してくる人は大抵理解していない
理解するにはどうすればいいかというと>>973
984デフォルトの名無しさん:2010/07/04(日) 13:07:47
初心者スレなんだからD3DXは使わないほうが良いって風潮どうにかした方が良いな
言ってる本人たちはそれがカコイイ(笑)と思ってるのかも知れないが
985デフォルトの名無しさん:2010/07/04(日) 13:12:21
>>984
だな。完成品の配布の際に多少注意点がある程度で、
(ビルドに使用したSDKのバージョンに合わせた再頒布パッケージの同封が必要)
それ以外には制限らしい制限はない。

D3DXのパフォーマンスに不満が出るというレベルになるまでは積極的に使えばいいと思うよ。
986デフォルトの名無しさん:2010/07/04(日) 13:13:05
>>984
そうやってわざと議論をはぐらかすのやめてくんない?
ID3DXSpriteは欠陥クラスだってみんなわかってるでしょ?
987デフォルトの名無しさん:2010/07/04(日) 13:15:41
どこに欠陥があるのかkwsk

まぁ、言えないだろうけど
988デフォルトの名無しさん:2010/07/04(日) 13:18:27
>>987
グローバル変数関数使いまくりのところ
だからID3DXSprite::Beginの中身が何をやってるのかわからない
ステートを好き勝手変更しても誰も中身をみないとその変更を認識できない

これはグローバル変数関数の弊害
このクラスを作った奴は間違いなくただの素人
989デフォルトの名無しさん:2010/07/04(日) 13:20:31
>>988
PIX for Windowsで調べてみればいいじゃないか。
それに、ID3DXSprite系は基本的にBegin〜Endの外側には影響を与えないように設計されている。
普通に使う分に何が不満なのかね。
990デフォルトの名無しさん:2010/07/04(日) 13:21:56
わたし、あいでーさんでーえっくすすぷらいと使った事ないんだけど、
みんながけっかん品だっていうから、つかわないようにしようと思うの
991デフォルトの名無しさん:2010/07/04(日) 13:23:02
>>988がまったく理解してないことはわかった
992デフォルトの名無しさん:2010/07/04(日) 13:25:43
D3DXを勧めてる奴はもう少し初心者のことを考えて発言するべき
993デフォルトの名無しさん:2010/07/04(日) 13:26:10
>>989
はぁ?
なにそれだっせぇいいわけ
グローバル変数関数を使うプログラムなんて欠陥品でなくてなんなのかと言いたい
994デフォルトの名無しさん:2010/07/04(日) 13:30:30
別にD3DXを薦めてるわけじゃないだろ
D3DXを使った質問に「D3DX使うな」って答えはどうなんだって話
質問は質問として回答すべき
995デフォルトの名無しさん:2010/07/04(日) 13:34:42
>>994
はぁ?話をはぐらかすなよ
ID3DXSpriteの話をしてるんであってD3DXの話なんてしてないでしょ?
なんでさっきから曲解するの?
どうしてそうやって卑怯な手を使うの?
育ち悪いの?
親にそう教わったの?
996デフォルトの名無しさん:2010/07/04(日) 13:37:38
勧めてる奴とは>>984のことであり、今回の質問の回答者のことではない
997デフォルトの名無しさん:2010/07/04(日) 13:40:54
痔スレ

【C++】 DirectX初心者質問スレ Part30 【C】
http://pc12.2ch.net/test/read.cgi/tech/1278214135/
998デフォルトの名無しさん:2010/07/04(日) 13:43:35
ウンコしたくなってきた
999デフォルトの名無しさん:2010/07/04(日) 14:11:54
埋め
1000デフォルトの名無しさん:2010/07/04(日) 14:24:33
1000ならDX11対応のQuadroFX発売
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。