【C++】 DirectX初心者質問スレ Part20 【C】
※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
【C++】 DirectX初心者質問スレ Part19 【C】
http://pc11.2ch.net/test/read.cgi/tech/1224942911/
DirectX API以外の話題厳禁
シェーダや数学の話題も板違いなので厳禁(前スレで荒れたので)
>>1-3 乙
以降のスレ違い質問者は放置すること。
自治厨も放置でよろ
いちいち神経を逆撫でして癪に障る高慢な回答者もスルーでお願いします。
そんな涙目にならんでも
回答者も質問者も同じぐらいの知識量だからな。実際。 無能な回答者から情報を利用してやりましょう。
新スレたててもらったら
>>1 乙って学校で習わなかったか?
>>1 乙
DirectX 10,11の話題も厳禁(回答者が自分の知らない技術に対して疎外感を覚え不快感を顕にし出しスレが荒れるので)
>>9 マナーも知らん奴しかいないからしょうがない
1乙がどうのとかで盛り上がれる素敵なスレ、DirectX初心者質問スレ Part20!! 乞うご期待!!
先が思いやられるな ストレスで早死にしないように気を付けるか
チャンネルとは何ですか?
テレビのつまみのことだよ
自分で作ると言っておきながらしつこいなこの人w
つか、数学はともかく シェーダを語らずしてDirectXの何を語るんだ? どう考えてもメインだと思うんだが
DirectX API以外の話題厳禁
シェーダスレと数学板があるだろ。 自分の都合のいいようにルールを解釈するな。
だったら誘導も貼っとけよ
まあ確かにシェーダ自体の話はそっちで問題ないな DirectXのコードを絡めての話なら別にいいが
なんでもかんでも人がやってくれると思ってる そんな人はプログラマやらんでよろしい
いつまでも固定機能なんて 過去の遺物にしがみついてる奴の言うことなんか気にするな
シェーダなんて使えて当たり前 誰が固定機能の話なんてしたんだ?
Paint.NETの透明度だけ弄るペンのプラグインでも作れば。 C#で数行でしょ。
質問です。メッシュに接ベクトルのデータを追加しようとしてD3DXComputeTangent関数を呼んだのですが、関数の戻り値を調べたら失敗してました MSDNで調べたらメッシュ頂点宣言に従法線フィールド、接線フィールドが含まれていない場合に失敗するって書いてあったんですが どうやってメッシュ頂点宣言に従法線フィールド、接線フィールドを追加するんでしょうか?
モデルに接線、従法線が含まれていないなら これらを追加した頂点要素を宣言して 普通に読み込んだメッシュ->CloneMeshでこの頂点要素を指定する
> Supporting plugins for Tools is not a very good idea.
>>28 プ
C#で数行でしょ。だってよw
その前に28は英語が読めない
このPaint.NETのLeaderってすげー嫌な奴だな フォーラムのほぼ全てのスレッドで、このスレのヒス回答者同様の回答しかしてない 可哀想に
世間なんてそんなもんっていうことがわかっていないみたいね(笑)
叩きレスだけならまだしも、一応回答してくれたヤツまでいちいちけなすなら 自分が回答してあげればいいのにな。 なんでしないの?できないの?
と、低脳なスレ違い質問者が必死になって煽っています スレ違い質問は回答などせずに放置でよろしく
>>29 みたいにまともな質問でかつ自分なりの努力が見られれば
まともな答えが帰ってくるもんだよ。
回答者がヒスだのなんだのととち狂った事を言ってるお馬鹿さんは、
まずは自分の質問のレスをいろんな意味で見直した方がいいんでないの。
自分で答えたわけでもないのになんでそんなにえらそうなの?
質問者がえらそうだからじゃねw
きちがいのすくつ(苦笑)
43 :
デフォルトの名無しさん :2008/12/11(木) 01:00:04
丸ごとソース公開されてるのにブラシのプラグインひとつ組めないとか阿保の極みだろ。
質問者は自分で作るって言って解決したんだからほっとけよ 相手にするだけ無駄
質問です。 DrawIndexedPrimitiveにD3DPT_LINESTRIPを与えて直線を複数並べて描画したいのですがどのようにすればいいのでしょうか。 最終的にはオセロとか将棋盤みたいな升目を描画したいと思っています。
なんでもかんでも人がやってくれると思ってる そんな人はプログラマやらんでよろしい
細長い矩形を線とすればいい
(0, {0-8}, 0), (8, {0-8}, 0) ({0-8}, 0, 0), ({0-8}, 8, 0)
緑なんでプログラムなんかしてんだ? CGしようぜ
ソフトウェア レンダリングもサポートしろよ 起動できねえんだよ
52 :
デフォルトの名無しさん :2008/12/11(木) 09:21:28
ちょっと質問です 現在 DirectX を使ったゲームを作ったのですが そのアプリガどのdllを使っているのか どうやって調べればいいでしょうか?
>>51 D3DDEVTYPE_REF(笑)
>>52 Depencancy Walker
55 :
デフォルトの名無しさん :2008/12/11(木) 16:26:43
なんで「質問」って単語がスレタイにつくと、ム板とは思えないほど低レベルなスレになるんだろう
なんで初心者スレなのに高圧的なやつが多いんだろう
甘やかすとつけあがるからな。本人の為にもならん。 APIスレなどに湧いているアフォは総スルーで。
うっせー 何様だよお前は
お前こそ何様だよ
「本人の為にならん」とか、 相手のことなんかこれっぽっちも考えてないのに よくもまぁそんな心にもないこと書けるな…とは思う 「何様だよ」とまでは思わないが ろくない回答できないのに傲慢さだけは一丁前の奴が多く 「死ねばいいのに」とは思う
質問者のレスポンスも含めて回答者の実力 実際、まともな回答をもらっている人間もいる
違うw逆w
DXUTのリストボックスの縦スクロールバーは消せないの?
まともな質問ができない人にはまともな回答は返ってこない
そんなのネットでもリアルでも常識です
回答者が悪い=質問者が悪い、と考える事のできない
思考停止の
>>60 みたいな人は、何度でも同じことを繰り返します
本人の為にならないと言うよりむしろ、そういう
>>60 のような人は
存在自体が社会の為になりませんよ
精神異常者のすくつwww
今度は 社会の為にならない ですか なにさまのつもりだろうね
という具合に、2ちゃんでモラルを説いても不毛なだけ。 馬鹿はスルー。今も昔もそれ一択。
俺様。2ちゃんでは大威張りw
>>66 やらなければならないのはどんな手を使ってでも
ただ回答者に回答を答えさせるということ
無駄に気分を害したり嫌味を言ったりするのは意味がない
しかし、スレ違い質問を回答してもらえずにはねられたからって いつまで粘着してんのこの人は 早く自分で作る(笑)作業に戻りなさいな
もうシェーダ1.1も使えないPC使ってる人って切り捨ててもいいよね、てかほとんどいないよね?
質問に返答できなかったからって いつまで粘着してんのこの人は おまえらはおとなしく回答してればいいんだよ 質問が理解できなかったり 回答できるほど知識なければ黙ってればいいんだよカス
>>72 とこのスレ住民には誰一人、君の難解な質問には返答できないから
いつまでもここにいてもしょうがないんじゃね?
返答できない人に回答してればいいって矛盾だらけですな
非常に遺憾です謝罪してください。
未だに自分の質問が理解できる人(笑)がいると思い込んでるんでしょ
そんな暇あるなら自分で作る方が早いのに、なんでしないのかしら?
自分で言った事すら実行できない。それが
>>72 クオリティ
>>71 いるかいないかで言えばいる
その手のは未だにサポート宛に来るし
でもここ1年ぐらいでだいぶ減った感じだけど
>>76 前スレから粘着してる荒らしさんだから気にすることはないよ
DirectXを使って作る
プログラム作ってデータ作ればできるよ
このように、質問者がまともじゃないとまともな回答は返ってきません。 理解できましたかね。
というか、ここはROMが主役のスレよね。
明らかに駄目な質問だとどうしようもなく駄目だが やや駄目なぐらいなら最初に見かけた人が答えてくれるかどうかだな 一旦変な流れになればもうその答えが返ることはない 変な流れのときはややマシな質問しても駄目、書き込む前にスレが荒れてないかはチェックした方がいい
>>80 キャラも立体なのかと思ったら違うのなw
見たこと無いネトゲだw
>>85 そんなことねぇだろ
ただ、回答者のレベルは似たようなもんのような気がするな
レスがつかないのは
1.みんな知らない(やってることが特殊過ぎ)、
2.何を聞いてるのか意味不明、
3.あまりにも簡単すぎて「てめー自分でミリ程度も考えないで丸投げしただろ?シカト決定」的なもん
とで大抵分かれる
なんで「知ってる人いませんか?」的なレスはつけなくても
レスがなかったら1〜3のどれかだから諦めて別のコミュニティに頼ったほうがよさげ
そういう意味で俺はマルチポストは最近許容範囲になった
質問じゃないのですが、今ここに質問しようとして投稿文全部書いた所で、もう少しだけ見直してみようと 思い直して自力で洗い直ししてたらバグ発見できた・・・ 「Detected memory leaks!」って出力されなくても、なんかADDRESS云々っていうダンプが出てきたら やっぱりリークしてるんですね、勉強になた
質問する側は丁寧とかじゃなくて 内容を伝えきれていないと言うのを 自覚するべきですね。 意地悪とかじゃなくてほんとに意味がわからない アルファの人は言語は違うがC#なら 0から作ってもコード300行も要らないですよ
91 :
デフォルトの名無しさん :2008/12/12(金) 08:04:44
そんなの俺は初心者にわかると思ってないから俺の場合はある程度許容
スポイド → アルファを弄る → ペン
COMのリファレンスに CoCreateInstance でオブジェクトを作成した場合は、IUnknown インターフェイス ポインタを要求した後、IUnknown::QueryInterface を呼び出すことによって、必要なすべてのインターフェイスを要求できる。 返すインターフェイス ポインタを指定できないオブジェクト作成メソッドを使う場合は、まったく役に立たない。 とあるんですが、これはつまり DirectSoundCreate8(NULL, &pSound, NULL); pSound->CreateSoundBuffer(&BufDesc, &pBuffer, NULL); pBuffer->QueryInterface(...) ; pBuffer->Release(); みたいな使い方は出来ないってことですか? それとも pSound->QueryInterface(...); pBuffer->Release(); みたいな使い方が出来ないってことですか?
どういったインタフェイスを要求しようとしているんだ?
3Dである頂点配列が不規則であって それをTriangleListで描く場合 どのように並べ替えるのがいいのでしょうか? 時計回りで頂点を指定する場合 X座標で小さい順に並べて まず一番小さいの選んで 次の頂点は、Xは初めの頂点と同じか大きい、Zも同じか小さい 3番目の頂点はXは2番と同じか小さい、Zは2番と同じか小さい など考えたのですが これだと同一箇所に頂点があるとポリゴン同士が重なってしまいます。 面積が最小のポリゴンで重なりなく全ての頂点を使うには どのような並べ替え方をすればいいのでしょうか?
>>これだと同一箇所に頂点があるとポリゴン同士が重なってしまいます。 原因がわかってるんだったら ソートの段階で同一箇所に頂点があったら省けばいいんじゃ
同一箇所に頂点がないと全ての頂点を利用して ポリゴンが描けない欠け、が発生するのです。 TriangleListにしてるのもその為です stripにするとさらに複雑になってしまいます。 面積が最小というのも実際はyもそれぞれ違うからです。 他に考えられるのは今選んでいるのが、三角形のどこか 判定して他の全ての頂点との距離を測ってから 同一ではないならその順番で上記の判定するなんですが 物凄く判定に時間かかります。
頂点だけの情報からポリゴンをっていうのがそもそもおかしいんですよ 面情報を記録してください
OnD3D9FrameRender( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext ) { // このなかで0.5秒ごとに何かをするにはどうすればいい? }
察するに頂点情報から面情報を作る方法を聞いてるんだろ ポリゴンの最適化の問題だね しかしこれは難しいgemsに書いてあった気がする 答えられる奴はいないと思う
いい?とか、ですかにしろ またしてもdirectx関係ないしw そこにきたときに秒数とればいいだろ ごとは理論的に無理だがな
fTimeを500で割った余りが0
バカの相手をすんなよ
D3D9と書いてあるのに またしてもdirectx関係ないしwとな?
0.5秒毎に何かをするのにDirectXは関係ありませんよ^^;
>>99 while(TRUE)
{
Sleep(500);
0.5秒ごとの処理
}
FPSを2にする
108 :
デフォルトの名無しさん :2008/12/12(金) 19:45:31
109 :
デフォルトの名無しさん :2008/12/12(金) 19:47:32
OnD3D9FrameRender( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext ) これを見てDirectXと関係ないとか脳沸き杉だろwww
単純にDXUTのfTimeとfElapsedTime の意味を教えてくださいってことだろ fElapsedTimeが前フレームからの経過時間 fTimeがその累計 ちなみにミリセカンドじゃなくて たとえば60FPSで回してればfTimeは0.01666.... あとはわかるよな?
ごめん、うそ 0.01666....になるのはfElapsedTime
112 :
101 :2008/12/12(金) 19:54:20
俺が
>>99 見た時どうやってこういう書き込みに
いたったか書いておくよ
質問者は本当に回答者が苦労してるの知るといい
またしてもdirectxと関係ない書き込みだな〜
FrameRenderってことはアニメーションかな?
引数でfTimeがあるからほぼ確定だな
でも時間を引数にとってるのにわからない?
コピペはいいけど内容は理解するようにしないとこうなるな
で時間のとり方がわからないのかな?
FrameRenderはどういう構造になってるのか書いてないな
通常の処理のみなのかな?
このなかでってことは本当にこの中って意味なのかな?
次にこの関数が呼ばれた時も含むとかもありえるな
時間のとり方がわからないってことは
この関数の呼ばれ方も理解してないだろうし
とりあえず
秒数取るとかいとくか、こうすればググレばスレ違いの質問って
わかるでしょ。
>>106 嘘を教えないように
>>109 そんなこといってたたらC++で全て聞けばいいじゃん
C++使ってるんだから、おかしいよ君
それとここで普通に回答してるのほとんど俺だから
ためしに3ヶ月ほど書かなくするよ、がんばってね
なんたる自意識過剰 はいはい、もうこなくて結構ですよ
3ヶ月ほどは平和なスレになりますね
115 :
101 :2008/12/12(金) 20:03:08
>>110 そもそも、DXUT使ってるとは限らないし
関数は自作(改造できる)んですから
まあコピペですが
引数の命名にいみがあるんですから
それを調べるのが普通なんですけどね
それがわかれば
>>111 ですが
この関数内自体ループだと思うんで結局
自前で時間とるしかないんですよ
だな引数は無意味だ てことは有益なのは101だけじゃねえかw オマイラ乙
>>102 はこの関数が呼ばれた時のみだから意味間違えてる
それだと関数はいる前でいいわけだしな
この関数内部がloopまたは再帰してるって事考慮してない。
>>106 は論外止めてどうする
>>110 も関数内部の予測ができてない
やっぱり
>>111 かよでも答え方がな
前スレのアルファ描くソフトがどうこう言ってたバカが必死になってるだけだろ。 だからバカを相手にするな、スレ違いは放置だと言っているのに。
そこまで自演して自分の有用性を示したいのか
自分以外は無能だと信じ込んでるんだろ 自分だって大したレスつけてないのに
122 :
101 :2008/12/12(金) 20:38:36
>>119 放置しないですみません
アルファ描くソフトより前に「彼」だろう書き込み
見つけた時からdirectxを利用してるが
プログラム自体初心者と読み取れたので
質問の前に〜を書き込みましたが
煽りや意地悪と捉えてみたいですね
デバックの仕方を勉強すればいいとは
思うんですがしないようですね。
デバックをして中身みて解決できるのは
directx関連の質問ではないと理解できればいいんですが
>>99 今回のもその関数の引数をその関数前にどうしてるか
調べればわかります。
以上です。スレ汚して住みませんでした
正しく答えれなかった奴の妬みですかwww 自演?そう自演ですよ 質問も回答もね うそですちゃんとデスマスで聞くんでこれからも回答よろしくお願いします
で結局質問者はどこいったんだ? あまりの荒れっぷりに逃げちまったのか?
125 :
デフォルトの名無しさん :2008/12/12(金) 22:53:56
なんでDXUT知らない人間がご高説垂れてんの?
DXUTを日本語で解説してるサイトとかあればいいのに
ソースあるだろ・・・
>>125 DXUTは単なるサンプルコード集だから
個人が書いたコードと同じ
それを知ってる知らないとか意味がない
dll内のとは次元が違うんだよ
自分の無能を知られる書き込みするべきでない
DXUTを99が使ってるなら止めたほうがいいだろうな あれの複雑さは異常だまたエスパー必要な質問してくるだろ
101って典型的なNIHシンドロームで DXUTは邪道とか勝手に決め付けて一度も目を通したことにないタイプの人間だろ 使う使わないは別問題として概略くらいは知っておくべきだと思うぞ
てか俺のエスパー能力では実際には99のしたいことは
DrawFrameで秒ごとにアニメーションさせたいんだろうけど
->BeginScene() と->EndScene();のあいだを止めても
->EndScene();の後がレンダリング結果なんだから
やりたいことはできないんだけどなw
>>130 その前に質問者も101もDXUT使ってるとは
言ってないぞ?使わないのに関数名表記も覚えてるって
ありえんだろ
学生レベルだと冗談抜きで ゲームループの概念すら解かってないこともあるから エスパーしだしたら切りがない 質問者が帰ってこないならこの話は終わりだろ
【 質問する方 】 ・ 回答して貰ったら、出来るだけお礼もしよう。 こいつはしとことないなww ・ どんな事で躓いているのか明確にしよう。 ゲームを作ろうと思ってから全てかけww ・ 長くならないなら躓いている部分のコードを晒してみれ。 おれのMPでは無理wお前は全部さらせwww 何をどうしたら解決したかを明確に書こう ここに書いてあるのをコピペしましたww
DXUTを使ってようと使ってまいと、0.5秒毎に「何か」をするのに
DirectXは全く関係ないわけで
それこそ
>>106 のレスで質問に対する回答としては十分ですが、何か?
if ((int)(fTime / 0.5) != (int)((fTime - fElapsedTime) / 0.5)) { ::SetWindowTextA(::DXUTGetHWND(), "⊂二二二( ^ω^)二⊃"); } else { ::SetWindowTextA(::DXUTGetHWND(), "(´・ω・`)"); } これだけのことよね。
なんか知らんが、そのコードはおかしいと思う。
fElapsedTimeは起動からの時間か? 変数の型的にちがくね 関数入ってからからカウントしなきゃいけないんだから 引数は片方(起動からの時間)しか使えないだろ てか使わないな
質問です。 前スレでも少し話題になっていたようですが、D3DXに浮動小数点を扱わせた場合、 D3DXの「最も高速な手法を選択して計算する」のせいで、環境によって結果が微妙にずれてしまいます そこで、SSE2対応を必須条件とすることで対応しようと思ったのですが、 SSE2よりも新しいテクノロジーにPCが対応していた場合、そちらが選択されてしまうようです。 何かしらのほうほうで、選択するテクノロジーを制御することはできないでしょうか?
で調べて自前でやる
>>138 SSE2より上位の命令が使えたとしても計算結果は変わらない。
そういう問題が起きるならば原因は別のところにある。
>>138 そこまで気にするなら、行列演算くらい自分で作るか適当な
ライブラリ拾ってきたら?
簡単な処理だし、一度も組んだことないなら一度くらい自分で
組んでみるのもいい。
ライブラリ拾ってきても同じ事になるだろw こんな事も解決できないスキルで自作できる訳がない。 floatのデフォルトの精度ならずれんし、doubleならDXと併用すると精度変更されておかしくなることがあるから、計算前に精度指定汁。って散々既出なのに・・・。
こんなことって、お前らここ初心者質問スレだぞ
解答ありがとうございます 自作なども考えましたが、Xファイルの読み込みやら、スキニングアニメ、アニメーション合成などでD3DXに頼っているためそうもできないのが現状です。 SSE以降はFP-strict準拠になりつつある(なった?)という記事も読んだため、確かに問題が別のところにあるのか?とも考えました。 ずれるのは、Pen4である私の環境と、Athlon 64 X2である友人の環境です。 私の環境では、D3DXがSSE2で動作するのを確認済みです(デバッグプレイ時の出力により) 友人のところでは何で動作しているのかは不明です。 Wikipediaによると、Athlon64X2の拡張命令は MMX, Extended 3DNow!, SSE, SSE2, SSE3, AMD64, Cool'n'Quiet, NX Bit だそうです。 任意でSSE2を選択させられれば、同じ結果になるのかと期待しています。 Direct3Dの初期化時には、D3DCREATE_FPU_PRESERVEを指定し、floatの精度が落とされるのを防いでいます。 念のため_controlfpでお互いの精度を確認しましたが、同一でした。
>>143 >floatのデフォルトの精度ならずれんし
嘘つくな
>>145 俺には、何故そんな事をしようとしているかわからない。
>>146 とりあえず APIHijack を試すといいわよ。
>>150 情報ありがとうございます。
NyaRuRuさんという方がこの問題にと組んでいたようで、そこを参考にAPIHijackを試し、
「DisablePSGP と DisableD3DXPSGP を1にし、拡張命令ではなくx87で計算させるようにする」
という手法は試しました。
確かにx87で動作するようになりました。
ですがx87自体がそもそも80bit計算ということで、SSEなどのようなFP-strict性を持たないようです。
(一部のサイトでは、x87FPUの動作は変態的と書かれていました)
DisablePSGPのような感じで、SSE2を利用することを促すレジストリ値などがあるのでしょうか?
もしありましたら教えていただきたいと思います。
何分DisablePSGPなどは、ぐぐってもほとんどひっかからないようなマイナー系?隠し?要素っぽいので・・・
>>146 D3DX全ての機能を自分で実装しろと言ってるわけではなく、
リプレイ等に影響する部分だけを自作すりゃいいんだよ。
比較的面倒なView, Projection系の処理は関係ないし、
アニメーション関係もいらない。
ホントにそんなに変わるものなのか? OCしたりしてるんじゃないの 以前同一PCで結果おかしくなったことあるから
そもそもどういうところから 違いがあるって認識したのですか? View, Projection系も違いがあると言ってるんじゃない?
>>152-154 お返事ありがとうございます。
情報が欠けていたことを反省します。
ゲームのシステム上、ポリゴン人形のボーン位置に依存して攻撃を発生させるのです。
例えば、ポリゴン人形の「手」の位置を示すボーン。それが差す位置に攻撃判定を発生させます。
そのため、そこが微妙にでもずれると、攻撃が当たったり、当たらなかったりします。
結果ズレが生じてしまうのです。
ボーンの位置の計算は、やろうと思えば自前でできます。行列のかけあわせだけですので。
ただ、アニメーション合成も行っているため、このあたりはかなりきついです。
私の実力不足と言えばそうなのですが…。
行列>クォータニオン>合成結果のクォータニオン>行列 とする必要がある(と思う)のですが、
行列クォータニオン間の変換もD3DXに依存しない方法でやったことはありません。これは勉強しだいで自分で実装できるとは思います。
違いがあると発覚したのは「初期状態とキー入力のみでリプレイファイルを構成し、再生する」という行為をやっていてです。
最初はもちろん自分を疑い「変数の初期化忘れなどで、初期状態が異なったのでは?」と思い、確かにその通りでした。
そういうものをつぶしていき、Intel系のCPU(友人のほとんどがこれ)で結果矛盾が起きなくなったことを確認しました。
最近になってAthlon系の友人がたまたま結果が若干異なることを発見し、今回の問題発覚となりました。
同じリプレイ用ファイルと言うことは ゲーム中でも違うって事か
>>146 >Direct3Dの初期化時には、D3DCREATE_FPU_PRESERVEを指定し、floatの精度が落とされるのを防いでいます。
これが間違っている。ドキュメントなんて信じるな。
>念のため_controlfpでお互いの精度を確認しましたが、同一でした。
これも間違っている。これで得られる値はいい加減。
SSEっていうのは上位になればなるほど使える命令増えるだけで、演算結果には何も変化はないからね。
途中でfloatとdoubleを行ったり来たりしてないよね?
ちゃんと、変数の値をダンプ等を行って確認している?結果だけみて判断しているように思えるんだが。
チェックコードを沢山埋め込んで、どのタイミングで演算結果がおかしくなるか突き止めれば、本当の原因がわかるかもね。
>>146 D3DCREATE_FPU_PRESERVE は float に最適化するオプションだと思うけど
プログラム側で double とかを使わないなら、
むしろ D3DCREATE_FPU_PRESERVE を指定しない
(floatに特化してもらった)方がいいんじゃないかしら。
×D3DCREATE_FPU_PRESERVE は float に最適化するオプション ○D3DCREATE_FPU_PRESERVE は float に最適化しないオプション ね。
少なくともWindows環境でなら変な設定しなきゃおかしくならんよ。 Athlon64x2環境で作ったリプレイデータを某Windowsベースのアーケード基盤や Pen4やC2DやCeleronでもずっと回してたけど一回も狂わなかったし。 ただし行列関連の処理は全部自前で用意してたけどな。
俺の特製コード置いとく ちなみに、設定値はスレッド毎に独立していて、スレッド作成されると継承されてたかなっと。 ヘッダ unsigned short __cdecl Get8087CW(); void __cdecl Set8087CW(unsigned short cw); #define DEFINE_FPCW_VAR(v) unsigned short v; #define SAVE_FPCW(v) v = Get8087CW() #define LOAD_FPCW(v) Set8087CW(v) #define NORMALIZE_PC(v) Set8087CW(v | 0x0300) ソース __declspec(naked) unsigned short __cdecl Get8087CW() { __asm { sub esp, 4 wait fnstcw [esp] pop eax ret } } __declspec(naked) void __cdecl Set8087CW(unsigned short cw) { __asm { fldcw [esp+4] ret } }
>>151 言ってることとやってることが違う気がする。
今でもD3DX以外の部分ではx87使っているんだよね?
話のレベルから、実は64ビットOS用のバイナリってことは無いと思うけど。
で、D3DX以外の部分は、x87の設定を合わせることで計算結果が一致すると暗に仮定しているのに、
D3DXだけx87を使うと合わなくなるという。なんかおかしくね?
>前スレでも少し話題になっていたようですが、D3DXに浮動小数点を扱わせた場合、
>D3DXの「最も高速な手法を選択して計算する」のせいで、環境によって結果が微妙にずれてしまいます
これほんとに確かめた?
実際のところ、この入力値の組み合わせでずれるってのが確認できてなくて
単に推測でD3DXを疑ってるだけなんじゃない?
プログラマーは駄目な奴の集まりだな
だからそんな気軽にヒョイヒョイとfloatの精度が変わったら 同人ゲームとかの板でリプレイで祭りになってんだろ・・・。 CPUメーカーごとに実装が違いますつったらなんのための規格統一なんだよ。
>>157 ドキュメント信じちゃいけないのはきついです。
どんな感じに間違っているのでしょうか?
floatとdoubleの行き来はしていません。floatで統一しております。(ソース中、doubleは一度もでてきません)
ゲーム結果や、途中でのキャラの位置(当然攻撃をくらった、くらわなかったで、同一時間での位置がずれます)を見ても、やはりずれていましt。
特にわかりやすいのは、ゲーム的には同じ決着がついているように見えても、
最後の「キャラクターの位置」の出力を見ると x=10.53126f とこちらでなっていても、athlon環境だと x=10.53120f のように、微妙にですが食い違っているのほとんどです。
(数値は例です。かなり小さな値で違いがあるということです)
>>158 うーん、どうなんでしょう
>>163 すいません、そこが大問題なのかもしれません
「D3DX以外の部分ではx87使っているんだよね?」に対して、明確に答えることができません。(無知すいません)
何も考えずにfloat計算をすると、通常x87が使われるのでしょうか?
例えば float a = 1.0f; a + 0.5f; というプログラムなどです。
>これほんとに確かめた?
この件も申し訳ないです。
「単なるfloat同士の計算なら、環境に左右されず同じ結果になる」
「拡張命令を使うと、拡張命令の種類によって結果が異なる」
という私の思い込みがあります。断言しているのは良くなかったです。
>>165 同人ゲームでも、この問題は出ているようですよ。リプレイで微妙にずれると
祭りになっているのかはわかりませんが・・・例えば
ttp://www.01step.net/tobitsuki/bbs/test/read.php/tobi_bbs/1116256631/13-112 などです
>>166 01stepのはD3DXのSIMD命令のせい
>>166 >何も考えずにfloat計算をすると、通常x87が使われるのでしょうか?
>例えば float a = 1.0f; a + 0.5f; というプログラムなどです。
はい、使われます。
足し算にもかけ算にも三角関数にも。
VC++で全ての浮動小数点数演算をSSE2に固定したかったら、
出力を64ビットWindows用にするぐらいしかないんじゃないかな、いまのとこ。
正しい演算結果と照らし合わせてチェックするコードを埋め込めば原因は特定できるだろう。 その正しい演算結果自体が間違っていたら駄目だけど。 どうしても解決できなければ、小さい値で判断せずにある程度丸めちゃって手抜きするのも有り。 どうせ表示に関しては同じになるよね? 時には妥協も大切だw
>>167 拡張命令(SSEだとか、SSE2だとか、3DNow!だとか)の違いによるせい。ということでしょうか?
それならば、それを統一させる(強制的にSSE2を使わせる)ような方法はないかな?と思うのですが、いかがでしょうか
>>168 なるほど。となると、逆にx87で統一する
「DisablePSGP と DisableD3DXPSGP を1にし、拡張命令ではなくx87で計算させるようにする」
のほうが、良いのかもしれませんね…。
>>163 の方に誤解を生じさせてしまったようですが、
>で、D3DX以外の部分は、x87の設定を合わせることで計算結果が一致すると暗に仮定しているのに、
はい、確かに仮定してしまっていました
>D3DXだけx87を使うと合わなくなるという。なんかおかしくね?
いえ、x87を使わないでD3DXに自動でまかせると合わなくなる(と推測していた)のです。
x87を使いたくないようなセリフは、
・通常のfloat計算にx87が使われているのを知らなかった
・x87は、CPU全体的から見ると変態的(FP-strictではない)だというサイトを読んだ
ためです。
>>169 試しに、1.000の桁未満のものは切り捨てるように
x = (float)((int)(x * 1000.0f)) / 1000.0f;
とやってみたことがあります。
これでほとんどの場合は完全一致するようなりました。(キャラの位置座標が、末尾まで一致しました)
ですが、まれに、やはりずれてしまうのです。
x87を使った、通常のfloat計算についてなのですが、もしかしてコンパイルオプションの
/fp:strict を指定することによって、環境に左右されず同一値を出すようになったりしますでしょうか?
>>155 2PCのネットワーク対戦ってこと?
だったら二つのPCで当たり判定を行って、お互いの判定結果を照合して
両方当たりだったら当たりとすりゃいいんでない?
報告です。 パターンA D3DXがSSE2で動作 パターンB D3DXがx87で動作 パターン0 _controlfp( PC_64, MCW_PC ) パターン1 _controlfp( PC_64, MCW_PC ) パターン2 _controlfp( PC_64, MCW_PC ) とし、組み合わせで結果を確認しました。 全て私のPen4マシンでのものです。 コンパイルオプションで /fp:strict を指定しました。 A+0、A+1、A+2とも、挙動が異なりました。精度が違うのですからまぁ当たり前かと思います。 A+0 と B+0についてです。 前者はSSE2がFP-strictであるそうですし、後者はオプションでstrictを指定したx87計算です。 結果が完全一致するのでは?と期待しましたが、やはりfloatの最末尾レベルの誤差はでてしまうようです。 A+1とB+1、A+2とB+2についても同様でした
すいません、誤植でした パターン0 _controlfp( PC_64, MCW_PC ) パターン1 _controlfp( PC_53, MCW_PC ) パターン2 _controlfp( PC_24, MCW_PC ) でした。
足し算の誤差のようなものだったら、転がすぞゴルァ
足し算の誤差であっても、環境によってその誤差具合が統一されてないと困る ってのが趣旨じゃないか?
>>172 >>173 だからD3DXが完全にSSE2“だけ”使ってるとは仮定できないんだって。
>パターンA D3DXがSSE2で動作
>パターンB D3DXがx87で動作
つまりここがおかしくてだな。
パターンA D3DXがSSE2+x87で動作
パターンB D3DXがx87で動作
ぐらいに考えておかないと。
そもそもx87レジスタからSSE2レジスタに持っていくだけで丸めが発生するし
SSE2には存在しない超越関数(例えばsinとかcosとか)を
D3DXがどう扱っているかも分からない。
D3DXの中でもあちこち三角関数は使われてるだろうけど
その中に常にx87命令使ってる箇所が1カ所でもあったら
_controlfpの影響は常に及ぶことになる。
>>176 なるほど…。D3DXがSSE2で動作を始めたとしても、内部でx87をまったく使わないですべてSSE2でやっているとは仮定できないわけですか…。
D3DXはSSE2(ないしはそれ以降の、FP-strictな拡張実装)で動かし、
通常のfloat計算などはSSE2のみを使ったFP-strictな自作構造体に置きかえる
というのを検討していましたが、それもダメそうですね…。
178 :
デフォルトの名無しさん :2008/12/13(土) 16:01:07
D3DXなんか使うなって言われ尽くしてるのになんでわざわざ壷に嵌まるの?
じゃあお前は何を使ってるの? 初心者に使えるものなの? 無料無償公開されてるの?
別に、当たり判定結果を記録しときゃいいだろ 所詮誤差程度のずれであるならリプレイ上問題にならんわけだし 数分で勝負がつく格ゲーだと仮定して、当たった時の時間と判定部位、 効果の情報だけ記録するならさほどのデータ量にもならんだろ
181 :
デフォルトの名無しさん :2008/12/13(土) 16:12:01
いつ勝手に仕様変更されるか、存在も無かったことにされるかも分からんもの使って 不安でないの?
横から質問 上の質問者の話と、通常のfloatはx87で行われるとの情報を総合すると やっぱり通常のfloat計算以外の部分、つまり拡張命令の違いしか違いがないのでは?? 通常float計算がお互いx87で。D3DX部がSSE2以降の統一規格で動いているのなら、結果は一緒になるはずでは?
183 :
デフォルトの名無しさん :2008/12/13(土) 16:24:18
x87が遅いから拡張命令が出来たんだけどねw
x87の挙動がCPUによって異なると考えたほうがスマートじゃないか? レジスタからメモリに退避するタイミングが異なるとか
ホント無駄なことに時間使ってるよな 同じにするのではなく違う事を考慮して作れっての
186 :
デフォルトの名無しさん :2008/12/13(土) 16:39:25
ある信心厚い男がいた。 その男は、昔からローマ法王に是非会いたいと念願していた。 ついにイタリアに行った彼は、長年の夢を果たそうとサン・ピエトロ寺院で、 一番いい一張羅を着て、群集の中にまぎれこんだのである。 いい服を着ていれば、ローマ法皇が自分に気づいて話しかけてくれるのではないかと思ったのだ。 ローマ法皇は、ゆっくりと(そして男に気づく気配もなく)人々の前を歩いて来た。 そして、ひとりの乞食にその慈顔を向けると、 穏やかな笑みを浮かべて乞食に何か語りかけると、通り過ぎていったのである。 男はとても反省した。 いい服を着て法王に目を留めてもらおうなんて、自分はなんてはしたない考えを持っていたのだろう。 貧しき者にこそ、神は慈悲深き目を向けるのである。 一計を案じた男は、先程の乞食に頼んで、千ドルで自分の服と乞食の服とを交換してもらうことにした。 次の日、また法王が人々の前を通りかかった。 すると法王は(乞食の服を着た)男に近づいてきたのである。 そして、男の耳に口を寄せると、やさしい声でこう言われた。 「昨日、目障りだから消え失せろと言ったはずだぞ」
>>185 は、どうやって解決するの?この問題
アニメーション合成によるボーンの位置に依存するのが前提なわけだが、まさか合成するなとかボーンに依存するなとか?
この話題のときだけ だれもスレ違いと言い出さないことにちょっとワロタ
>>177 SSE2を使うだけで自動的にFP-Strictになるわけじゃないよ。
SSE2が数値計算的に好ましいのは、SSE2の四則演算を使うと
Intel以外のCPUでの浮動小数点数演算と同じ結果になるのがうれしいだけの話。
浮動小数点演算の順序を入れ替えたり
割り算をかけ算に書き換えるような最適化を行うか行わないかで
計算結果はいくらでも変わる。
計算を再現させる大前提はまず同じ設定・同じ命令で計算させることであって
そのケースなら別にx87でも本来再現するはずなんだよ。
そこを疑うならまず再現方法示してくれってこと。
D3DXで違いが出るのはCPUによって「同じ命令で計算」の前提が崩れるから
別に再現しなくてもおかしくない。
_controlfpで違いが出るのも「同じ設定で計算」の前提が崩れるから
別に再現しなくてもおかしくない。
> SSE2が数値計算的に好ましいのは、SSE2の四則演算を使うとIntel以外のCPUでの浮動小数点数演算と同じ結果になるのがうれしいだけの話 >そのケースなら別にx87でも本来再現するはずなんだよ 矛盾してね?
>そのケースなら別にx87でも本来再現するはずなんだよ。 >D3DXで違いが出るのはCPUによって「同じ命令で計算」の前提が崩れるから別に再現しなくてもおかしくない ここも矛盾してるな
頭の悪い僕に教えてください。
>>155 の言うアニメーション合成とはなんでしょうか。
大体、floatの誤差より 入力デバイスの十字キーのプラスチックの成型誤差の方が 絶対大きいって。 誤差を出さない為の議論より、誤差をごまかす方法でも 話し合った方がいくらかマシ。
>>190 ああごめん。
ここで言ってるIntel以外ってのはPowerPCとかARMとかそっち系。
AMDはIntel互換のCPUで商売している以上、x87も互換してるはず。
といっても異なるケースがあるというのを聞いたことがないだけだけど。
>>192 PCによる結果の違いを引き起こさない最も確実な方法だろ。
ゲームプログラミングとはシステム、状況に応じて最も適した方法を取る
場当たり的な作業だよ。
で、これ以外の正しい解決策をお前は何か書けるのかい?
>>196 DirectXスレで、PowerPCとかARMとかとの整合性の話してもしょうがないと思うんだが
>>198 その解決方法を質問され、みんなで検討してるのに何を言っているんだ?
そうだな
場当たり的にはお前のが完璧な答えだな
じゃあ場当たり的じゃないのも考えようぜ
>>195 俺もそういってるんだが、頭の悪いやつらは一つの事に固執すると
目的を見失ってしまうみたいね
>>199 すまん。
>>177 がSSE2だと再現性が良くなると思っているっぽかったので、
「SSE2が好まれているのはPowerPCとかARMとかと合わせたいためで、今回は意味がない」
という意味で書きたかった。
>>202 リプレイデータの話してるのに、パッドがどうのとか言い始める奴を擁護とか
同一人物だと叫んでるようなもんだな
>>203 SSE2なら、x87の問題の一つである、メモリーに退去時のまるめこみ問題が回避できるから
再現性は良くなると思っていいんじゃないか?
というか今回もこっちの問題が原因なような気がするんだが
とりあえず、ずれるサンプルが欲しいわね。
てきとーに人間とか作ってAnimationControllerでアニメ合成やれば、ボーンの位置はあっさりずれたはずだぞ 昔俺もやって似たような現象は確認した 幸い描画オンリーにしか使ってなかったからスルーしたが
>>200 それが無駄だと言ってるんだがね
それで君は、何か場当たり的でない解決策とやらを提示できたのかい?
自分では何もできていないくせに、人を批判することなどできないよ
>>208 答えが出せる出せないを批判しているんじゃない
他人がやっていることを無駄だと騒ぎ立てて邪魔してることを批判してるんだ
>>204 擁護?
>誤差を出さない為の議論より、誤差をごまかす方法
俺が言ってるのはこういう事だが?
パッドがどうこうだの、同一人物だのは勝手に言ってればいいよ
巧妙に馬鹿が紛れているからスルー汁
212 :
デフォルトの名無しさん :2008/12/13(土) 17:22:06
家庭用ゲーム機用でで作ればいいよw
213 :
デフォルトの名無しさん :2008/12/13(土) 17:22:46
なんか誤解されがちだけど D3Dは一般で言われているところのライブラリというより 単なるヘッダー群だから SDKに付属してくるものの仕様が変わろうが使えなくなることはないし 今のD3DX路線から別のものに方向転換したとしても 使えなくなるものではないんだが
すいません返答遅れました (1)x87の計算には、環境が違っても再現性はあるのか 何度かちらほら出ている「メモリにいったん書き込んださいの丸めこみ」っていう問題があるらしいのですが、 この退避タイミングがCPUによって異なることがあるのではないでしょうか SSE系はメモリ上での単精度と、計算中の単精度が一致するので、この問題が起こらないのではと期待しています (2)D3DXが再現性を邪魔しているのか 私の環境と、友人の環境。両方ともSSEのようなFP-strictな拡張命令を使っているとなると(そうっぽい)、 D3DXが「Aの命令はSSEでやろう。Bの命令はx87やろう」「Aの命令はx87でやろう。Bの命令はExtended 3DNow!でやろう」 (SSEも、Extended 3DNow!も計算結果は同じになるとします) というように、拡張命令を使う部分を変えてしまっている可能性がありますでしょうか? 確かにこれならば、誤差がでてしまいます。 今夜予定として ・D3DXに拡張命令を使わせない方式で、友人環境と一致するかテストする 一致した → (2)の「拡張命令を使う場所をD3DXが変えてしまう」問題が原因だった 一致しない → (1)が問題 となるのではと期待しています。
>>209 だから君が示してみろといってるんだが?
俺は無駄だという的確な指摘をしているだけであって、邪魔をしているわけではないよ
無駄じゃないと言い張るのなら、吼えてないでさっさと証明してみせるんだね能無し君
止めはしないから
>>216 場当たり的じゃない解決ということについて
自分では何もできていないくせに、人を批判することなどできないよ
固定小数点でやれよ なんでやらねーの?
>>219 固定小数点版のD3DX作ってくれるといいなw
今時MMXやSSE使わないって馬鹿なの?
4096 = ONE はオーバーフロー地獄よね。
>>209 横から突っ込むけどそれはおかしい
なんか最終目的が浮動小数点の計算結果を固定するみたいになってるじゃん
俺もROMってきたけどはっきりいって無駄だと思うっていうか頑張るべきところを間違えてると思う
最終目的が示されてるんだから別の方法を提示したっていいと思うよ
っていうかCPU間のちょっとした誤差が問題になるようなソースでいいの?
って話でもある
まあいいんじゃない? 結果的に無駄だとわかったとしてもそれは無駄だという情報にはなるわけだから がんばってもらおうじゃないか
226 :
デフォルトの名無しさん :2008/12/13(土) 17:41:21
>>222 時々沸く、最適化切ったら動きましたとか言う
本末転倒野郎の仲間だろ。
本人が解決したと思うならそれもよし( ゚Д゚)y−~~
>>224 具体的に、誤差を吸収する方法があればそれでいいと思うよ
リプレイならキー入力以外のデータを入れれば吸収できるよね
それはそれで一つの結論だし、それ以上議論の余地はない
尊重してるよ
でもじゃあ、たとえばキー入力をやりとりするタイプのネット対戦ゲーだったらどうする?
自己申請方式でチートの余地を残すのは、キー入力タイプの「チート不可能」を覆す
「今回はリプレイなんだから良いじゃん」と言われればそうだが、前スレでは同じ問題がネット対戦で出たという人もいた
別に考えるだけならタダだし、別にほかに話題もないし、考えたい奴らだけで考えればいいじゃん
俺は環境によって誤差が出るのも知らなかった 同じバイナリなら結果は同じになるもんだと思ってた そして、その解決法をきれいに解消する方法がないことに今びっくりしてる
サーバー管理にでもして判定処理はサーバーでやらなきゃ チートの封印は無理だと思うよ
キー入力を同期させる方式なら、対戦相手の画面上の結果をいじくれないっていう意味でチート対策にはなってるな
キー入力情報をBOTに送らせりゃいいだけじゃね
結局のところ、
>>216 は前スレで出た通信の時は沈黙してたわけで、脳無しだったんだよなw
(やった!今回ならリプレイだから俺様の方式で解決できるぞ!) リプレイデータに補正データを混ぜればいいじゃないか(キリッ 【審議中】 あれはほっとこう ∧,,∧ ∧,,∧ ∧ (´・ω・) (・ω・`) ∧∧ やっぱりD3DXは描画のみで ( ´・ω) U) ( つと ノ(ω・` )固定小数ライブラリとか作るべきじゃ | U ( ´・) (・` ) と ノ u-u (l ) ( ノu-u `u-u'. `u-u' いや、それだとアニメーション合成とかきつい ボーンに依存するのはやめたら?いや、でもそれじゃあなぁ・・・
誰もがひたすらスレに住み着いてレスつけなきゃいけないんだな^^;
チートなんてどんなゲームでもできんだろ キー入力通信ならチート不可能なんて幻想だよ
>>235 前スレで通信絡みの質問に便乗していた人間だが、何か方法ある?
今からでもいいので教えてもらえると嬉しい
今の話題ももし解決したら俺のにも適用できるだろうから興味深くみているよ
相手のコマンドを読み取ってこちらのキー入力を送信するBOTを作る事はできるわな
>>238 どうでもいいけど、まずはちゃんと自分の質問を書けば?
便乗しますたとか書かれても誰もレスつけてくんないよ
>>216 無駄ってより出来ないなら出来ないって言えよw
>>240 わかりました
初期状態を同じにし、キーの入力だけ送りあうという方法で対戦ネットゲームを作っています
キー情報はサーバー役がいったん受け取り、双方にまとめて送るという方式のため、矛盾が出ません
ですがD3DXやらを使っていたら計算結果に微妙な誤差が出る環境がありました
この誤差を吸収する方法はないでしょうか?
四捨五入や、小数点以下●桁で切り捨てのようなこともやってみましたが、
結局は基準値の前と後に計算結果が分かれてしまったとき誤差が出てしまいました
途中でお互いの状況をつきあわせてチェックする方式は、現在のとこ採用するつもりはありません
それを採用するなら、はじめからキー入力でなんてやらなきゃいいわけで・・・
>>242 241がこのスレ初が書きだがw
”俺”には無理だから出来るか出来ないか興味あるんだよw
だから考えるのは無駄とか言ってんじゃねーよ
採用するつもりがないなら不可能ですね。 あきらめて下さい。
あれー?
x87の計算なら環境違っても再現性があるはずって言ってる人いたよね
なのに不可能なの?その人が間違ってるの?
教えて
>>245
>>248 その人に聞けばいいと思うよ
その人が正しいのなら確実な答えが示されるのだろうからね
まあ不可能ですが
だーかーらー固定小数点で計算しろって言ってるだろうがこのチンカスどもがー
>>250 固定小数で、ボーンアニメーションを合成できるライブラリとかあるの?
聞いたことないけど
>>249 不可能というのなら、そのソースを見せてよ
「知らない」じゃなくて「不可能」なんだろ?
>>252 悪魔の証明ですか
可能である事が証明できない限り、それは不可能であることを証明しているんだよ
君のやることは次のいずれか
1.自分の力で可能である事を証明する
2.再現性があるはずだと言ってる人に聞いて、自分のプログラムにて証明する
3.とっととあきらめて照合制を導入する
なぜそのどれもやろうとせずに文句ばかりつけているのかね?
1〜3のどれかを実行すれば君の目的は達成されるだろうに
絶対言われると思ったよ、悪魔の証明 厨房お得意のだもんな 俺は別にお前を論破したいんじゃなくて「不可能だとわかっているというソースがあるなら、見せてほしい」だけ ソースがないなら「不可能」と言い切るな。可能かどうか検討している人間たちの横で「不可能」と騒ぐなというだけ
可能であることの証明ができないことが不可能であることの証明になんてならんだろwww 可能か不可能か分からんというだけだ 不可能であることを示したければ自分の力で不可能であることを証明してみろよ
でも可能であるにしてもCPUに対する知識が少なすぎるよね とりあえずCPUに対する考察より演算ユニットを固定させる方法ってみつかったの? これがなきゃどうせ駄目なわけでしょ?
>>254 そういう言葉は君が1、2のいずれかを行って証明してから言う事だよ
可能という事実が証明されない限りは、悪魔の証明である事は揺るがない
自分もできないという事実があるのに、できないならそれを証明しろ、と駄々をこねる事こそ
厨房お得意の屁理屈そのものだよ
じゃあ言い方を変えようか。
実質不可能だけど、まあ無駄な議論をする頭の悪い人のために撤回してあげよう。
「俺も、当然君も、このスレの全ての人間が、可能である事を証明できない、できていない」
で、なんで君は1、2のそのどちらもやろうともしていないんだい?
さっきも質問したけどなぜか君は答えてくれないね
文句つけてる暇があるなら早くやりなよ能無し君
証明できる人がいるなら、回答して終わりだろw あと知識が多い人間が初心者質問スレにくるかよw
>>258 このスレでこのような質問をする事自体が無駄だという事ですよ
可能かもしれないということでみんながアイデア出し合ってるのに 横で不可能不可能とかわめきたてて何したいの?馬鹿なの?
7〜8年前のVSync論争を思い出したw 今ならどれも液晶で何故か60Hz固定で綺麗だぞw
お笑いコンビはスルーの方向で
>>260 ていうか演算ユニットを固定する方法はあったの?なかったの?
可能かも知れないと思う事自体が頭沸いてるとしか アイデアというけれど、どこにまともなアイデアがあるのだろうか
珍回答 固定小数点を使え 不可能だ!可能だというなら方法教えろ! D3DXなんて使うな 整合性検証用データを入れろ 有用回答 x87は環境に左右されず再現性はとれるはず D3DXを使った場合、とある計算でx87が使われるか拡張命令が使われるかはわからない APIHijackによって、D3DXに拡張命令を使わせないことはできる /fp:strictオプションを試してみるべき 端数を切り捨てる方式でも、やはりズレは出る
わざわざマシンの性能を制限して固定化することがいい事かねぇ 結局の所、「合わせるより誤魔化す」だと思うよー
>>265 有用回答を照らし合わせると、結局無理だよね?
誤魔化すのももちろんありだよな その誤魔化し方でまともなのが全然出てこないのが問題だが
>>269 この有用回答からでは無理でしょ
何か間違った事言ってますか?
つーか他でやってよホント。 こんなロクに解決策が出てこない質問で何百レスも費やしてたら他の初心者質問の邪魔になるよ。 むしろ本スレでやれば?
>>268 判定イベントだけとっておくとかよかったじゃんっていうか
俺もリプレイやるときはその方法でやってるし
>>272 そういうのはお気に召さないらしいから仕方ない
もう好きにすれば?って感じ
>>274 もうちょっとうまく自演しろよ・・・
本当に好きにすれば?って思ってる奴がレスするわけねーだろ・・・
>>273 D3DX使えないじゃんっていうのと
できるだけ下地のライブラリが変わっても動くゲームのほうがいいかなってとこ
少なくとも判定保存派は俺ともう1人いるっぽい
>>278 えーっと・・・普段は固定小数で計算して、描画だけD3DX使えば解決するよね?
じゃあ俺はリプレイを実装しない派
>>280 だから普段の計算にD3DX使えないじゃん
>>276 そういう視野のせまいレスをつけてくるから、
もう好きにすれば?って言ってるんだよ
ま、無駄な議論をひたすら続けて下さい
このスレが終わるまでに場当たり的じゃない解決とやらが出てきたとしたら
いい子いい子してあげるよ。ありえないけどね
>>281 それもアリ
政治力もPGの実力のうち
無い奴は僻むな
正直、割りに合わないほど金と時間を使うようになってる
やらない決定をすることが会社の利益になるときもある
>>282 ボーン位置計算は固定少数で自前計算して描画はD3DXで行うってことじゃね
>>282 行列演算系なんてあっという間に作れると思うが・・・
>>286 CPUの演算ユニット固定しようとしてる馬鹿にいってやれw
>>285 282はそもそもボーンなどについてまったくふれてないぞ
アニメーション合成にD3DXを使わざるをえなかったので。とかそういう前置きがあればわかるけど、何もないなら固定小数でいいだろ
すごいスレ伸びてると思ったら またfloatのお話ですか
>>287 初心者質問スレで、初心者のアイデアや質問を馬鹿とか言うのやめてくれない?
馬鹿2人以上居るとループするからなw
>>271 読んでよホント。正直あなたがた、邪魔です。
初心者はさ、馬鹿とかクズとか言われても耐えろよ そんなん2ちゃんならどこでも飛び交ってる言葉なんだから、「愛してる」ぐらいにとっておけ
よくわかんないけど、なんか馬鹿とかクズとか人罵倒してると気持ちいいんで
なんか最初の質問者とか、それに応えてくれてた人は有意義だったのに 夕方くらいから荒らしが一匹住み着いて「無駄だ!不可能だグギャギャギャギャ」とか騒ぎ始めてからは無駄なレスばっかりだな
>>298 全然有意義じゃないじゃん
解決したのかよw
再現性無いとか知らなかった身としてはすごい有意義だったんだが
俺も方向性まずそうなのにミスリードしてしまった感のが強いな
CPUを固定化しようとしてる人たち=有意義 それ以外=無駄なレス ですね。わかります。
つーかCPU系のスレでやればよくね?話の方向的にもはやスレ違いだろこれ。
なぁ、無駄だとか間違ってるというなら、有意義なとかあっている方法書いてやれよ・・・ チェックデータ入れるとかはネット対戦じゃ有効じゃないんだろ? ならネット対戦にも対応できるいい方法書いてやればいいじゃないか
305 :
デフォルトの名無しさん :2008/12/13(土) 20:30:55
基本ゲームプログラマは 自分で書いたソース以外信用しなかったり 車輪の再発明をして俺SUGEEしたがるような人種ばっかだから
まーソースも出さないし車輪も示さない人間が言うセリフじゃないよな
>>304 ネット対戦ならなおさら判定保存法だろ(もちろん改良して)
素直に言えよ 質問が難しすぎて有意義な回答は出来ませんて
>>304 ネット対戦でも有効というかよく使われるけどチートを根拠に拒否してるだけ
そういやパンヤやっててもたまにプレイヤーによって落下位置がずれたりしてたなw
結果はサーバーで照合してるから問題はないけどね
>>308 質問内容は簡単だろ
誰でも参加できるから盛り上がったわけだし
>>307 なんで、具体的なことを言わないの?
どう改良するの?
>>309 ありゃサーバー処理型じゃねーか
そりゃ肝心のデータはすべてサーバーが管理してるんだから、ずれようがないだろ
>>311 判定結果をサーバーで照合・・・が一番かな?w
>>310 「ソースは示せないけど不可能!不可能!無駄!無駄!」
誰でも…参加…?
>>261 ところが今度ネイティブ120Hzのモニタが出る。
>>315 そんなの2倍速で動かして特殊なモニタ買ったことを後悔させてやればいいw
プログラマってミスを徹底的に否定して満足しようとする卑屈な人間しかいないのかね
>>314 解決策とは程遠いけど「できる!できる!気持ちの問題だ!」
修造といっしょだな
現時点で有意義?な回答はあっても結果がでてないんだから ごまかしの解決策を用いるしかないでしょ ごまかすのなんてヤダヤダというなら仕方ないけど
結果待ちの状態なのに、不可能だと断じてるのだから、そいつはすでに実験済みなんだろ? 実験結果はどうだったの?不可能断定君
>>318 それをいうならはじめの選択肢の間違いを認めずに
CPUの演算ユニットの固定とか馬鹿なことに挑戦しだした人間にいってやれw
チョー伸びてる ハハッ
325 :
デフォルトの名無しさん :2008/12/13(土) 20:48:56
∧ _|::::|__ /::|::::| \ / |:::| :\ / || :ヽ ┌|(⌒ヽ :|| ..:⌒: |┐ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |::|::ヽ.__:):||(___ノ ::|::| │ いつもDirectX初心者質問スレを応援してくれてありがとう。 |:|: .. :|| .. |:| │ このスレは急に終了することになった。 :|: .. || ..|| < いつまたみんなの前に姿を見せる事ができるようになるのか、 :\ [_ ̄] /::| │ 私にもわからない…… :: |\|_|_|_|_/:::| \____________ __| | / / :|___ \ _| \ /........ノ~ -r \ \....|:::\:\丿 /, /,/.../._ \ /....\.レ... /\..| / / / ̄ `\ レ.........|/..../ R‐\
これから始めるにはDirectXとOpenGLってどっちがいいですかね? DirectXって仕様変更が激しいようだし、Macでも動くからOpenGL がいいかなとか思ったりするんですが...
>>326 初心者がどっちとかいってんじゃねぇよ
両方やれ
>>312 P2PゲームだってチートやBOTは余裕っしょ
技コマンドがきたら自動回避とかできるし
お互いのマシンでの照合のさせ方次第じゃね
誤差の粋を大幅に超えた結果が返ってくれば自動で切断とかすりゃいいわけだし
x87での計算に再現性があるなら、D3DXの拡張命令の使用を切れば再現性が確保されるはずだろ? 不可能って騒いでる奴は、x87の計算に再現性がないって断じてるってことでいいの?
>>328 >技コマンドがきたら自動回避とかできるし
俺の波動拳が当たらないのはそういうことだったのか
>>328 >P2PゲームだってチートやBOTは余裕っしょ
むしろP2Pだからチートが余裕なんだろ。あほか
それにBOT余裕とか、誰がBOTの話なんてしてんだ?
馬鹿?
>>329 いまはそうかもしんないけど
次(の世代のCPU)は違うかもしれないし
とにかく微妙なもんに仕様の保障を求めたくない
>>332 あれ?不可能なんじゃなかったの?
なんで急に「将来不可能になるかもしれない」とか言い出してるの?
>>333 だって俺不可能って言った奴と違うもん
あくまで方法がまずい派
>>331 キー入力だからチート不可って言ってた人がいたからそう書いただけね
チートの危険性があるとわかってる人はそれでいいんだよ
BOTもチートの内の一つだからね
同種類のレスを勝手に特定の1人のレスだと思いはじめたら病院にいったほうがいいな
>>329 なんだか知りませんが、x87を使ってAPIHijackによって、D3DXに拡張命令を使わせないことで
問題解決ってことで合っていますか?
>>337 その文章から、お前がx87もAPIHijackも理解してないってことはよくわかったw
2ちゃんによくある思い込み 「敵は一人の自作自演」
>>338 そうですよ。理解してないから教えて欲しいんです。
私も興味がありますので。
今度は荒らしが多人数を装うようになってきたの? マジめんどくせえやつだな
解決したのか。やっとまともな質問者が質問できる。
いや危険なんじゃないのかこれ
荒らし本気でうぜーな・・・
安全だよ、安全
以上、解決しますた
この板ID表示にならないかな
>>215 が検証するまで大人しく待とうぜ
外野がいくら騒いでも仕方ない
質問です。DirectXでおっぱいをリアルに揺らすにはどうすればいいでしょうか
荒らしが、情報ださせるために釣り荒らししてたって感じだな 質問者がNyaRuRuの名前あげてるのだから、荒らさなくても自分でぐぐればすぐ出ただろうに
ていうか検証なんかしなくてもあるんじゃねぇかよw
質問者がそれを見てまともに動かせてないんだから検証はせにゃ
これで単にtimeGetTimeでワンフレの移動幅決定してたからとかいう理由だったら死ねるw
有能なかたがた
>>95 >>97 お願いしますねw
あとリプレーとか言ってる方キー入力結果保存
なんだからゲーム中も違うってことになるでしょ
たまたまリプレーで違いが認識できただけ
君は日本語がまずおかしい
>>360 別にテクスチャ貼るなんて書いてないからuvは関係ないだろ
>>362 それじゃオッパイが表現できないじゃないか
却下
>>356 あそこに載ってるサンプルはD3DXがまだ静的リンクだった時代のものだから
もし質問者がサンプルを丸々コピペしたとしてるとフックに失敗してかもね。
今だとD3DX9のモジュールハンドルを使ってフックを仕込む必要があるはず。
プログレッシブメッシュはUVもしてるよね? テクスチャが違うのもできるんだろうか
てかフックとかやる前にまずレジストリ弄って問題が解決するか確かめた方がいいな。 それで解決するならフックを頑張ればいいし、 解決しないならD3DX以外にも問題は残ってるんだろう。
ただ今戻りました なんだか話題をだいぶ長引かせてしまったようで申し訳ありません 結論から申し上げますと、APIフックしx87を強制使用させることで、完全な一致を確認しました。 SSEなどの存在意義などから考えますとちょっと邪道な方式ですが、ひと先ずは解決かと思います。 将来的にはD3DXは描画専用として切り離し、固定小数などで作りかえるのが良いかと思います。 今回教えていただいた中で「D3DXは、SSE2を使うと表示されたとしても、すべての計算でSSE2を使うわけではなくx87との混在を行う」 というアドバイスが一番助かりました。 余談ですが、x87のみ使うようにした上での パターン0 _controlfp( PC_64, MCW_PC ) パターン1 _controlfp( PC_53, MCW_PC ) パターン2 _controlfp( PC_24, MCW_PC ) ですが、どの精度であっても、相手方と精度の一致さえさせておけば結果は一致しました。 ここからは推測ですが、 x87のメモリーへの書き込みタイミングによる誤差について。 どうもこれはコンパイル段階で決まっており、実行時に決定するわけではないようです。 考えてみれば、レジストリからメモリへの退避などは機械語命令なわけですから当たり前のことでした。(たぶん) CPUに関する知識が足りなかったため 「レジストリから退避するかの判断は、CPU側がCPUの混雑具合を動的に判断し、勝手に行ったり行わなかったりするかも。そうしたら再現性無くなって嫌だなぁ…」 と怖がっていましたが、大丈夫なようです。 以上です。 間違いや勘違いなどがありましたらツッコミよろしくお願いします。
まさに場当たり的な解決だなぁ
商用アプリ作るわけじゃないならいいんじゃね
まだ続けんのかよ…いい加減にしろよカス
はい次の人〜
スレ違いならすいません。 オンラインゲームにddsファイルが使われてますが これを3Dで見たいんですが、どんなソフトを使えば良いんでしょうか?
えー最近スレ違い連発のガキです みなさんスルーしましょう
atlbase.hはどこにあるんですか?CBaseVideoRendererを使いたいんです。
すれ違いはスルーしましょう
ストレス溜まってる人多いですね^^;
スルーで
どんなソフトを使えばとかいう人はソフトウェアスレに逝ってください
そういう時はみんなでおっぱいを見に行こう
おちんちん
>>97 の同一頂点の検索は全検索なんてあほなことしないで
セル単位にわけてその中だけで検索するようにすれば高速化できる。
えーと言い換えればセル単位に分けるのが最終目標だろ 例示がないからよくわからんが 例えば横奥50*50の頂点がある実際には同一頂点があるから もっとあるとしてこれを任意の頂点数に減らすって問題だろ
386 :
デフォルトの名無しさん :2008/12/14(日) 08:59:53
ボクセルってなんですか?
キーワードが分かっているなら、 テキストボックスに文字列を入力して検索ボタンを押すだけで情報が出るのに、 それをやろうとしないのは、どれだけママンにおんぶだっこされて生きてきたの?
だまれ小僧
389 :
デフォルトの名無しさん :2008/12/14(日) 11:00:05
box + pixel = boxel
>>97 が何が言いたいのか全然わからんなぁ
とりあえずX-Y平面に射影して、凸包体作るじゃ駄目なん?
391 :
デフォルトの名無しさん :2008/12/14(日) 12:13:35
DirectSoundのストリーミング再生に関するサンプルコードがあるサイトって知りませんか? また、DirectXSDKにStream Dataサンプルがついているらしいのですが、それのついているバージョンを教えてください。 いくつかダウンロードしてみましたが、ついてなかったので。 宜しくお願いします。
DirectSoundで検索すればでてきますよ
>>390 最初の頂点が
0 1 2 3
4 5 6 7
8 9 10 11
だとポリゴンが6枚になります
これを視点から遠い場合、6枚ではなく
少ない数で表現したいのです
この場合0と3と8と11はXZで大きさそのものを変えない
ようにするため残すとして、残りの12910はYの値により
残す残さないを決めます。
決めて最終的に残ったのが頂点配列となります。
この頂点配列はY以外にも判断基準があるので
順番がばらばら(何番が残ったかわからない)なのです。
連続ですいません 12枚ですね 例えば残ったのが0356811だとすると 035をとると08を使う三角形は5を使わないと ポリゴンが重なります。したがって08には5を使う 別の58を使うのは6でも11でもいい(実際には最小にしたいので6) この様な判断をどのようにすれば効率的かが知りたいのです。
面倒なことやってんなぁ LoDで我慢しろLoDで
正直、こんなに説明が下手な人も珍しいと思ったw Progressive mesheを作りたいのか? Hoppeの昔の論文でも読めばいいんじゃない?
説明が下手で申し訳ありません。 LoDのためにこれをしてるのですが 自前でプログレッシブメッシュみたいなのを 作りたいって事です 標準だとmeshからは作れますが meshとして始めの頂点配列を持っていないのです 正確にはmeshを頂点配列にしてその一部分を 可視範囲により切り出しそれを、さらに分割して 分割したものの内、遠いのに対してこの処理がしたいのです。 Hoppeをググってみます、ありがとうございます。
>>393-394 さっぱりわからないので、
1-2-3, 4-5-6の2面の三角形を
1面に縮退する場合の例を挙げてよ。
まあ、
>>395-396 のいうとおり、
LODを知ることから
始めた方がよさそうだな。
399 :
398 :2008/12/14(日) 13:26:24
縮退という言葉使いは間違ってます。 惑わされたらすいません。
俺のLoDの認識はモデルがカメラから遠く離れたら 違うポリゴンモデル(ポリゴン数減)に切り替えるって認識なんだけど 自動で削減するのか? なんか余計時間かかんね? マリオ100体とかインスタンス全部別に削減するんでしょ?
>>398 2面の三角形を1個にはできないと思うのですが
LODの前段階がこれだと思うのですが、違うのですか?
見方としてはY軸からみてる頂点の位置だと思っていただければ
8番がX0Z0 5番がX1Z1
残す頂点が0 3 8 11は確定して他の頂点が5としたら
035は絶対必要になると思います、そうでないと5を残す意味がない
他の言い方で言えばポリの頂点として08を選ぶと5しか選んではいけない
他を選ぶと5を隠してしまうのでこの判断をしたいのです。
論文見てきます。
なるほど、
>>393-394 は閉じたメッシュのLODではなくて
いわゆるランドスケープのLODのことを言ってるのね。
ランドスケープ用なら、それ専用でググれば結構出てくると思うよ。
>>400 プログレメッシュが同じかどうかは知らないが、
ゲームプログラ〜3D数学に載ってる方法は、
動的に、隣り合う三角形の辺を削除するって奴。
1つの辺を削除するということは、2三角形・1辺・1頂点を削減出来ることになる。
これは、頂点配列は触らずに、面配列のみ操作するだけで実現出来るから
あんまり重くない。リアルタイムに十分適用可能。
404 :
デフォルトの名無しさん :2008/12/14(日) 16:04:01
[EAC] (サントラ) いちご100%オリジナルサウンドトラック MUSIC100%[CD+DVD].rar
なんかようか?w
406 :
デフォルトの名無しさん :2008/12/14(日) 18:10:20
二次元のRPGなんだけどマップのタイルはどれくらいのサイズがいい? 16*16とか32*32とか
>>406 ハードと作るものによる
っていうか見栄えや勉強を優先したいならマップチップにしないほうがいいかも
またスレ違い質問か
>>406 見た目優先なら小さいほうがいいんじゃね。
突き詰めると1ピクセルだし。
そもそもチップを配置する手間を舐めてるよね 描いたほうが速いよマジで(デザイナ談)
どの道高低差や属性指定が必要になるからチップ分けは必須 つーかDirectX関係ねーからとっとと消えろ
414 :
デフォルトの名無しさん :2008/12/14(日) 21:28:03
デザイナだからからは知らないがチップにするのは 区画分けの為だよ 見た目とダメージゾーンとか 一致させやすいから使うだけ
>>413 高低差情報とチップ情報が一致するわけない
橋の下通れないだろそれ
螺旋階段を死ぬ気で作れよデザイナ(by企画)
>>415 チップに段階毎の情報をもたせりゃいいだけの話だが?
>>417 そしたら高低差情報だけでチップ情報いらないじゃない
>>418 前のレスをちゃんと読めよ
DirectX関係ないと言ってるんだが、お前はまだこのスレ違いのレスをし続けんの?
属性なんて範囲設定すりゃいいじゃん、と思う奴もいるかもしれないけど、 地形情報が煩雑になるとチップ管理を行わなきゃ対応しきれなくなるよ まあただ歩くだけでトラップやらなんやらのない簡素なゲームならどうでもいいけど
>>419 >>413 で
>どの道高低差や属性指定が必要になるからチップ分けは必須
(内容的には高低差情報のためのチップ情報?)
っていうから別に一緒じゃなくてもいいじゃん的なレスつけたんじゃん
そしたら
>>415 (内容的にはチップに高低差情報を付ける?)
が返って来たから
アレアレ高低差情報のために必要なチップだったんじゃないの?
的な話になっちゃったんじゃん
っていうかそもそもチップと当たり、属性は別でいいじゃん
顔真っ赤にしてかっこ悪い
>>423 えー
チップと当たりなんていっしょにすると面倒なだけだぞホイ
っていいたいだけなのにー
っていうかチップなんて辞めろよw
>>421 チップに高低差ごとの処理を埋め込む事で、細かい高さの切り替えが可能になる
高低差情報というのは、地面か屋根、0か1かのような情報だけじゃないんだよ
まあ確かに、橋か地面かという単純な構造であれば好きにしろという所だが
チップを使わずにジャンプ移動なんかが絡んでくると死にたくなると思うよ
で、さっきから言ってるんだが、お前はこの話がDirectXと無関係だと思わないのか?
DirectXがチップと関係ないんだよ。アンダスタン?
チップはあくまで描画情報だろ あたりはあたりで作れよ 階層は階層で作れ これらは別でいいだろ たまたまいっしょだったらそれはそれでかまわん ただ、別は別だろ なんの関係もない チップは正方形or長方形かもしれないけど 当たりは斜め25度かもしんねーぞw
>>427 いいんだよ
おめーみたいにスレタイにこだわって自分でなんの話題も提供できない
つまらない君は黙ってろよ
>>428 一般的にマップチップというのはグラフィックと属性込みの区分けされた地形情報の事かと
絵を描くだけのグラフィッカー視点だと、チップに当てはめるグラフィックそのものをそう呼ぶこともあるけれど
チップはどれくらいのサイズがいいかとう質問者に対して チップは使うなというほどのつまらない君っていないよね
ゲーム製作スレに逝ってくれ
>>432 息するように嘘つくな
SFCだってチップと当たりと階層は乖離してんのにそんなわけねぇだろ
FCか?FCの話したいのか?
逆しか頭に浮かばないなんてイメージが貧困だね
昨日といい、どうも土日は小学生が沸くみたいだな
と中学生が申しておりますw
スレ違いに手を出すとこういう惨めな結果に終わる かわいそうな子
てめぇらおっぱいでも揉んでろ
どうでもいいけど、何も関係ないのか、乖離なのかはっきりしろよ
どうでもいいとか言っておきながらはっきりさせろとか、馬鹿なの?w
どうでもいい、ほんとどうでもいい
>>444 よく読め馬鹿
はっきりしたいのはオッパイだろ
と、面白い君が涙目で必死に反撃w
んー、面白い、かなぁ 正直どっちもつまらない君にしか見えないなぁ 本人は面白いと思ってるんだろうけど
このスレッドはつまらない君、面白い君、おっぱい君の3人で構成されてます
乖離って言葉を使ってみたかっただけだろ。許してやれよ
>>450 そこにこだわって反撃したいみたいだけど
そんなの言葉尻とって遊んでるだけじゃん
FC時代のチップとの一致を考えると乖離って表現も間違いじゃないだろ
どっちにしても上げ足取りの範囲をでないのにその方向でレスを付け続けるところは頭悪そう
顔真っ赤で誤魔化すのに必死なのはいいが、日本語勉強してから出直して来いよ
453 :
デフォルトの名無しさん :2008/12/15(月) 00:06:26
どっちでもいいよ つーかそもそもDirectXのスレだし 虹信者と惨事信者の宗教戦争がしたいならゲ作板いけよ
許してやれと庇ってやってるのに何を必死になってるんだか
FC、SFCはハードであって、その上で動作するソフトが一律に同じ方法を使っているとは限らない。 SFC用のソフトでも立体交差がないゲームはあるし、ソースを確認出来るわけでもない。 にも関わらず「してんのに」という断定が、知ったかぶり以外の何ものでもないんだが、 どれだけ恥ずかしい人生を歩んでいるんだ?
>>455 言葉の意味は通じてるのにあえて違いを主張して
自分の正当性を主張しようなんて無駄なことは止めたほうがいいぜw
> 一般的にマップチップというのはグラフィックと属性込みの区分けされた地形情報の事かと
だいたいこれなんて厳密に言わなくても嘘ばっかじゃん
マップチップはマップチップだろ
自分の言ってる事が矛盾している事を認めず、 意味は通じてるなどと思い込む。 いい加減、誰にも理解されてないという事実を認めたら?
int even(int n) int odd(int n) これの意味と 使用方法がわかりません
> 一般的にマップチップというのはグラフィックと属性込みの区分けされた地形情報の事かと だいたいこれなんて厳密に言わなくても嘘ばっかじゃん マップチップはマップチップだろ
マップチップはマップチップだし、書いてる事はその通りだな
>>460 c言語ってそんなもんなの?
ようわからんけど
用法とかはC言語初心者のサイトにあるやつの通りでいいの?
別に誰かさんが揚げ足取られた事なんて誰も気にしてないんだから 言い訳してないでそろそろ巣に帰ってくれない? ひょっとしてスレタイも読めないほど日本語に不自由してるのか?
>>464 また、つまらない君か
お前がみんなの興味をひく話題をもってくればいいんだよ
相変わらず他力本願丸出しだなゆとってんじゃねーぞ糞餓鬼
オマエモナー
自分自身がつまらない君だという自覚もないらしい
>>466 はぁ?なにいってるの?
わけわかんない
俺別にこの話題からかえなくていいし
自分がしたい話題あったら自分で提供できるし
話題変えたいのお前なんだろ?
何もねぇくせに文句だけは一丁前だな
なんか楽しそうだな
そういえばソニー潰れそうだね
int matrix[ROW][COL] = { これってどういうことですか?
そういうことです
it辞書で調べたら 液晶ディスプレイの駆動方式ってでてきた
c言語のサイトでサイト内検索してもでない いったい みんなどこで学んだのよ?
もう寝ろ
478 :
デフォルトの名無しさん :2008/12/15(月) 01:20:46
何この高レベルな質問が終わったとたんの スレ違いでのくだらない応戦W 自分の知ってる単語KITa- ってなるオタク君の合コンでの振る舞いっぽい スレ違いは放置ですよ
高レベルな質問?どこ?
わさわさぶらぶら
SSOAを解説してる日本語のサイトってありませんか? 英語わからないので困ってます
SSOAってなんぞ?
それが教えを請う態度か? ですか、だろうが 大体質問者の質問文中の単語について質問するな わからないなら黙って見とけ
>>483 タイプミスを指摘してるんじゃないの?
君の方がわかってないように見える。
>>485 空気よめってw
タイプミスぐらいわかってるよ
じゃなきゃページ出さないよ
知ったか君をつる為なんだよ
あ〜あまったく台無しだぜw
顔真っ赤
>わからないなら黙って見とけ >わからないなら黙って見とけ >わからないなら黙って見とけ >わからないなら黙って見とけ
君の眼は節穴だということがわかりました。
と本人が申しております
恥ずかしさを紛らわすために工作認定か、恥ずかしいなw
工作員必死杉www 本人より目立ってどうすんのwwww
つーか通りすがりに書いてみた第三者だけど、こうやってきめつけられると すげー気分悪い。 謝るか黙るかしてくれ。
496 :
デフォルトの名無しさん :2008/12/15(月) 14:31:18
お前が最初から黙っとけばよかったのに
497 :
デフォルトの名無しさん :2008/12/15(月) 15:05:32
と質問内容が高度すぎて内容には 一切触れない、昼間のカキコ人達でした。 22時以降がこのスレの存在意義です。 平日昼間は絶対にまともな回答はありません、 またこの事に突っ込みありますよW ないはずがありません だって凄いパターンな暮らししてるから
あなたも含めてね
481です OAじゃなくてAOでした あとありがとうございます
以上、全て俺の自演
501 :
デフォルトの名無しさん :2008/12/15(月) 15:55:43
最低限のルールとして、質問者のふりして 終わらせようとするなよ
これも俺の自演
4x4のマトリクス行列を、クォータニオンに相互変換する計算はどのようにすればいいでしょうか? D3DXを使えば一発ですが、原理的なものを知りたいのです
数学板へ
テクスチャに関しての質問なんですが。 3枚からなるドット絵のアニメーションを表現する時に 1枚ずつテクスチャとして読み込み→描画時にテクスチャ番号を指定して描画。 3枚を1つのファイルにまとめて読み込み→描画時にテクスチャUV座標を指定して描画。 速度としては前者の方が速いと思うんですがどうでしょうか?
ケースバイケースだと思うが それなら前者のが速いけど、それだけでやりたいことすべてが完結するわけじゃないんでしょ?
507 :
デフォルトの名無しさん :2008/12/15(月) 19:31:36
DirectXは全くやったことないから15歳から始める〜買おうと思うんだが地雷?
ここで書籍の話をすると荒れるからやめた方がいいよ ネットは浅いとか言うくせに、そういう子に限って あなたのお勧め本は?って聞くと逆ギレするだけで答えず逃げるから
事情によりDirectXのバージョンアップをせざるを得なくなったんですが それによりDirectInput をバージョンアップさせなくならないといけなくったんで 古いソースとDirectX 2008 を混合させたら winh.h 内でコンパイルエラーがでたんですけど どう対処すればいいでしょうか?
その内容で全てを把握できるエスパーの登場でも待てば?
エスパーとしては、インクルードの順番を適切にすればいいと思うよ
512 :
デフォルトの名無しさん :2008/12/15(月) 21:14:29
オススメ書籍は狩野さんの数学の本
タスクシステムが載ってる本を買えばいいと思うよ(^.^)
>>507 地雷。おすすめできない
インストールのしかたがのってるのに
ライブラリのリンクのしかたが載ってなかったり
不親切なところがおおいわりには中身がない
まずDirectX逆引き500を買って
理解できないところをネットやほかの書籍で補うのをお勧めする
ただしCとC++理解してるの前提
「逆引きゲームプログラミング」という書籍を参考に スプライトの表示をしようとしていますが、上手く行きません。 ----------------------------------- ■ヘッダー ID3DXSprite* g_pSp; ■ソース // テスクチャ読み込み if ( FAILED( D3DXCreateTextureFromFile( pD3DDevice, "..\\splite.bmp", &g_pTex))) { return(false); } // 座標設定 D3DXVECTOR3 pos; pos.x = 320; pos.y = 240; pos.z = 0; ■描画開始宣言した中で // 描画 g_pSp->Draw( g_pTex, NULL, NULL, &pos, 0xffffffff); ---------------------------------- 「error C2065: 'pos' : 定義されていない識別子です。」と出ます。 エラー情報では変数の型の宣言がおかしいらしいのですが・・ この場合どうすれば良いのでしょうか。C++の学習がまだ足りないのかわからず・・ どなたかよろしくお願いいたします orz
言語の話はスレ違い
518 :
デフォルトの名無しさん :2008/12/15(月) 22:19:08
519 :
デフォルトの名無しさん :2008/12/15(月) 23:25:13
10話見たけど面白いなー タクの所に来た七海はタクの妄想で本物の七海は誘拐されて本当に右手切断されてたのか 右手が小包で携帯ごとベースに送られてくるシーンはyoutubeで見たけど妄想の右手と思ったらあれ本物か・・・・エグイな あの後冷凍庫の右手がなくなるっていうのも妄想がタクの力で消滅したんじゃなくて希が回収していったのかw タクが妄想すると将軍の寿命が減っていくってのには笑ったなwセイラたん妄想するたびに本物タクミが老いていく絵を想像したらシュールww 優愛のくだりは必要なかった あとは本物のタクミが妄想タクを生み出した理由とニュージェネ事件の解説がほしいな(磔事件は妄想シンクロで実行犯がビシィさんに見えていただけかわからんし)
520 :
516 :2008/12/15(月) 23:40:33
スレ違いでしたか、すいませんでした orz
ネタバレすんな氏ね
最後の妄想で若い方の拓巳が実体になるから問題ないんだけどな。
すみません。DirectX使用のプログラムを作っているのですが、
起動時にウイルスバスターが反応して
oooo.exe(ooooはファイル名)
が自動的にdllをダウンロードしようとしている(dllインジェクション)ので
変更を遮断しましたと出ます。
一晩ググったらDirectInputが原因なのではという結論に達し、
dinput.hをインクルードしないように直したのですが
ログを見るとDirectInputがしっかり動いていました。
直し方が悪いのかDirectInput以外にも原因があるのかもしれません。
とにかくウイルスバスターが反応しなくなればよいです。
どなたかご教授お願いします。
ツールはBCC Developer ウイルスバスター2008と2009の体験版で確認。
libとhファイルはここから拝借しました。
http://homepage2.nifty.com/natupaji/DxLib/index.html
なぜバスターが検出してるのか、わかってんのか?
>>511 なおりすますたー
おるがとうございやした
527 :
523 :2008/12/16(火) 11:32:19
わからないから聞いてるのに酷い… 起動時にwindowsのシステム設定を勝手に変更してdllを ダウンロードしようとしている。と出てます。 DirectInputは関係ないかも知れません。 VisualC++5.0でやってみても同じになりました。
>>527 >oooo.exe(ooooはファイル名)
これをわからないと、返答のしようがないだろ?
自作なら、具体的にどんな処理を行うモジュールか書いてくれよ
>わからないから聞いてるのに酷い…
なら伏せずに全部書けよ。
まあ俺は以降、自己中なお前のレスはスルーするがなw
529 :
523 :2008/12/16(火) 12:41:02
ooooは自作プロジェクト名です。特に意味は無いです。 プログラム技術板に書き込むのは初めてでしたが ここまで滅茶苦茶言われるとは…もう来ません。
ウィルスバスターをアンインストールすればいい
ここ数日荒れ気味なんだ 運が悪かったな
例え荒れて無くても
>>523 見る限りじゃ、エスパーくらいしか回答でないと思うぞ
DirectXプログラムとは直接関係ないけど、複数台のUSBカメラをキャプ チャしたい場合に、同じルートハブの下に繋がっているUSBカメラを同時 に使えないのは普通なん? 具体的にはフィルタは接続できるけど、ICaptureGraphBuilder2::Render Stream()が失敗する。 おそらくUSBの帯域制限を考慮してそうなっているのだろうが、ネット検索 でそんな情報を見つけて、試しに手持ちのUSB-I/Fカード(PCI)を挿して、 片方のUSBカメラをそっちに繋いでみたら動くようになった。 ちなみに使っているUSBカメラは2台とも、バッファローコクヨの「BSW13K05」 シリーズってやつ。値段が安い割りに画質がよく、専用ドライバも不要。
全く関係ない事書くなボケ
私と同じ種類のPC(x3台)では正常に動作しているソフトがあります。 しかし、別の種類のPC(x2台)ではワールドマトリクスが無視され、 (頂点座標(ローカル座標)は原点基準ですが正常に表示されています。) また、更に別の種類のPC(x1台)ではワールドマトリクスは正常なのですが、 画像(テクスチャ)が壊れて表示されてしまいました。 このような場合どの辺の処理を調べてみるべきなのでしょうか? 手がかりになりそうなことなどはありませんか? 環境はどれも XP + DX9.0c です。 開発環境は XP + VC++2008EE + DXSDK(March 2008) です。
ビデオカードは? DevCaps一通り見てみるといいかもね。
>>523 向こうであまり暴走すんなよ
お前だけの質問掲示板じゃないんだ
538 :
535 :2008/12/16(火) 17:45:46
539 :
535 :2008/12/16(火) 19:12:28
>>536 関係ありそうな箇所を調べてみました。
ほとんどの値は正常に動いたマシンの方が
ロースペックということを表していたのですが、
以下の値が気になりました。
ただ、直接は関係なさそうな気がします。
正常表示マシンとマトリクス無視マシンの比較
DeclTypes
正常 0x000000FF
非常 0x0000030F
正常表示マシンとテクスチャ壊れマシンの比較
TextureAddressCaps
正常 D3DPTADDRESSCAPS_BORDER 有
非常 D3DPTADDRESSCAPS_BORDER 無
MaxPShaderInstructionsExecuted
正常 0
非常 0xFFFFFFFF ( -1? )
あと正常表示マシン同士の比較でも、
(グラフィックボード含めて全て同じ構成です。)
私のマシンだけ DevCaps に D3DDEVCAPS_NPATCHES が立っていました。
なぜなのでしょうか?
540 :
535 :2008/12/16(火) 19:18:29
FVF は D3DFVF_XYZW | D3DFVF_DIFFUSE | D3DFVF_TEX1 で DrawPrimitiveUP() にて描画しているのですが、 その辺が関係しているのでしょうか?
ドライバ
D3DFVF_XYZW じゃなくて D3DFVF_XYZRHW の間違いじゃないかしら
543 :
デフォルトの名無しさん :2008/12/16(火) 19:45:54
ベクトルのWとはなんですか?
行列のwならともかくベクトルのwは知らんなぁ 4次元ゲームでもつくってるの?
とりあえずD3DFVF_XYZW をD3DFVF_XYZ にしてみるといいわ
547 :
535 :2008/12/16(火) 20:16:16
>>545 ありがとうございます。
wを消したらうまくいきました。
画像が壊れるマシンでのテストは
まだできていませんが
ワールドマトリクスが無視されることは回避できました。
>>541 DevCaps の件ですか?
全てリース品なのでドライバ関係ではないと思います。
>>542 D3DFVF_XYZRHW は変換済み座標の定義だったかと思います。
>>543 正規化したときなどにスカラーが入っているものだと
単純に考えています。
実際はもっと深い意味があるのでしょうが・・・。
>>544 普段ゲームを作っているので
wがあるのがデフォルトなのです。
548 :
デフォルトの名無しさん :2008/12/16(火) 20:24:28
頂点バッファをロックして、SSEで加工したいんだけど、 SSEって128アライメント制約があるよね? ロックして得られるバッファは、アライメントはどうなってるか わかりますか?
552 :
550 :2008/12/16(火) 21:21:12
昔のBBXのログにそれっぽいことが書いてあった。 アライメントが合ってない端のみ、別ルーチンで対応するのがよさそう。
VECTOR4って 単に行列との親和性をあげるために便宜的にあるものであって ベクトルそのものをあらわしてるものじゃないんじゃね?
ベクトル演算に便利だからある
ベクトルの話でベクトル演算とか言うと分かり辛いな。 SIMD と言った方が。
お前ら高校生ぐらい?
学校でC#を習っているのですがDirectXでゲーム製作をするならC++を勉強してそちらで作ったほうがいいですか?
C#ってまだあったんだ
XNAでいいんじゃないの
561 :
デフォルトの名無しさん :2008/12/17(水) 07:37:41
ほんとここって ただの罵り合いのためだけのスレだよな
いまどきC#使わないでツール作る会社なんてねーけどな。
>>562 企業に忍び込んで、日々ソースコードを収集しているスパイか、
ただの知ったかかの二択。
つーか誰もツールのことなんか聞いてねー。 C#厨必死すぎw
まとめるとC#でもかまわないが質問は受け付けてくれない人がおおいってとこか
まあスレタイからそうだしな
今も昔もC#なんてつかわねーよ 物好きな変な人は使うかも程度
gccで正式サポするようになったら俺は使う
570 :
デフォルトの名無しさん :2008/12/17(水) 20:13:45
実機用のcのコードとツール用のc♯のコードが必要になったりして普通にウザイ 自社ライブラリも普通に使えない 実機と違う言語なんか使う奴は能無し
C++とC#とアセンブラの混合プロジェクトを開発している有能な俺に謝れ!
今時のコンシューマーはC++が主流だろ
C++主流なのは実機の話だろ。 ツールのGUIなんていまさらWin32でなんてやってらんねーよ。 まさかMFCでも使ってるのか?
MFC使ってる なにか問題でも?
.NETだろ。常識的に考えて。
>>558 C#&XNAはC++&DirectX経験者ならおすすめできるが
何も知らないやつが1から手を出すというならお勧めできない
XNAで最初から用意されてない機能を実装するのは経験がないとかなりつらいかと
海外みたいに本やら情報やらがたくさんあるわけでもないし、情報も希薄
C#自体は生産性がすごいいいので残念だと思う
そして何より問題なのはランタイムをインストールしてもらうのがすごい大変
.netフレームワーク XNAフレームワーク DirectXランタイムのインストール
これらを全部簡単にインストールできるインストーラとか提供されてないしね
かたやC++でつくればDirectXランタイムだけで済む
ぶっちゃけ配布のめんどくささ考えると
C#とXNAでゲーム作るよりC++とDirectXで作ったほうがましかとすら思える
インストールシールド使えばランタイムも全部入れてくれるけどなー
アニメーション関連ツール以外は別にDirectXなんていらんわ
流れ切って申し訳ないんですが質問させてください。 テクスチャーのαチャンネルそのものを操作する方法というのはないのでしょうか? 例えばレンダーターゲットに指定してモノクロ画像をα値として加算or減算するといった…。 やりたいことはテクスチャーの一部に(動的に?)穴を開けることです。
XNA3.0は必須コンポーネントとして選択できるようになったから setup.exe方式のインストーラを作るのはめっさ簡単になったぜ
なんだ?ブッシュに靴を投げて穴を開けるゲームでも作るのか?
>>580 3.0出てたのか 知らんかった
3バージョン目にしてようやくインストーラ作れるようになったのね
アニメーション周りが充実したのならXNAに戻ろかなとオモタ
584 :
デフォルトの名無しさん :2008/12/18(木) 03:32:48
対けんじょうしゃ法 第一条 (^p^)は、いかなる場合でも令状なしにけんじょうしゃをセックスボランティアさせることができる 第二条 (^p^)は、相手がけんじょうしゃと認めた場合、自らの判断でけんじょうしゃを処罰することができる 第三条 (^p^)は、いけぬまの生命を最優先とし、これを顧みないあらゆる命令を排除することができる 第五条 いけぬまの信じる心を利用し、悪のために操るけんじょうしゃと認めた場合、自らの判断で処罰する事ができる 第六条 てんすの夢を奪い、その心を傷つけた罪は特に重い 第九条 (^p^)は、あらゆる生命体の平和を破壊する者を、自らの判断で抹殺することができる 第二条(補足)場合によっては抹殺することも許される 、人 ' ;’, , ( ^p^) iニ二@ ´ ( ^o・)・ 、 ) ⌒〜(__) ,Y` ゝ ( ` ´ . / ィ,-─ ̄ /⌒ ) l / / / ' `/ | ( ⊂二__,/ / | i l, 、 , l l ヽ. | / _ノ, ) l | | / _./l / l | | / ,ノ ! / l i.| | / / l ) l i .| | ノ ') i ,/ .....("_)("_゙) └‐'´ .........厶).......
c♯なんかで生産がどうのこうの言ってる奴は元の生産量が低すぎる
使ったことのない人の典型的な意見ですねw
C言語全盛の時代にC++を馬鹿にする、 俺にもそんな時期がありました。
C言語全盛っていつだよ
ラインリストを描画しようとしているのですが、 色が反映されていない上に 他のポリゴンを描画すると表示されなくなります。 描画順を変えても同じ結果でした。 関連する設定などはありますか?
エスパーの召喚したいのでなければソースうp
592 :
590 :2008/12/18(木) 19:21:07
すみません。自己解決しました。
SetTexture( 0, NULL ) で表示されるようになりました。
ラインにもテクスチャが貼られるのですね。
>>591 どこのソースをアップすべきかわからなかったのです。
描画されるパターンがある以上
描画部分には問題ないと考えたので・・・
まあ、解決方法をレスしただけマシかな
d3d9でデバイスの再作成やリセットをせずにバックバッファのサイズを変更する方法はありますか?
>>595 追加SwapChainにのみ描画するようにすれば、SwapChainの再作成で済む。
もっとも今はデスクトップサイズのバックバッファを使いまわす方法が推奨されているようだが。
ちなみにフルスクリーンは無理。
>596 スワップチェーンというのを意識したことなかったのでこれから調べてみます ありがとうございました
Xファイルから読み込んだメッシュをeffectで挟んでdrawsubsetする方法で描画しようとすると消えてしまうんですが、エスパーしてもらえませんか?
1、変換行列が頂点シェーダに正しく伝わってない 2、伝わってるが頂点シェーダ内の頂点変換が間違ってる 3、頂点シェーダの計算結果が正しくピクセルシェーダに伝わってない 4、そもそもピクセルシェーダで色を出力してない 5、テクニックがおかしい、もしくは正しいテクニックを指定してない 6、Effect->BeginはしているがEffect->BeginPassしてない 7、BeginPassのあとにEffect->Set***系のメソッドを呼んでいるが Effect->CommitChangesしてないので正しく反映されない 8、つか、いくらなんでもエスパーにも限界があるぞ
ありがとうございます もう死にそうです
今やっとできました軽く3日掛けたんですが・・・;; D3DXMatrixRotationXを傲慢にも飛ばして書いてたら何故か描画されないことがわかりました どこかで自分と平行になるから見えないというのは見たことがあったのですが、2Dの板ではないので関係ないと思っていました 何故これが無いと見えないか軽く説明できればしていただきたい;;
なにも値のはいってないワールド行列で変換かけてたってオチじゃないよね?
かもしれません
604 :
579 :2008/12/19(金) 00:45:01
>>581 SrcBlendをZERO、DestBlendをSRCALPHAにしてテクスチャーに描けばいいんですね。
お騒がせしました。
605 :
デフォルトの名無しさん :2008/12/19(金) 10:14:33
本にこういう関数があったのですが 別々の扱いでいいのでしょうか? inline void InitPos(D3DXVECTOR3 &m_pos) { m_initpos = m_pos; } inline D3DXVECTOR3 *InitPos() { return &m_initpos; }
スレ違いと説明不足
>>606 ごめんなさい
もう少し質問の仕方考えてきます
DirectXと関係無い部分だから質問の仕方を考えないで言語の勉強汁
>別々の扱い ってのはInitPosとInitPosが同じ名前だって事だろうね inlineってのもたぶん、わからないだろう 関数のオーバーロードもわからないだろう
>>608 あなたは人との接し方を勉強した方がいいですよ
人との接し方を勉強した結果がそれならまるで無駄だな
それってどれ?
俺は
>>606 >>609 だけど
>>608 の内容でもいいと思うけどね
directx以外の部分って指摘してるし
質問の仕方考えるよりも言語の基礎のHPでも見たほうが
早いし、理解できて質問内容は解決できると思うしね。
ゲームプログラマと業務プログラマってどっちが強いの?
スレと全く関係ない質問を始める
>>614 は、脳に障害があるのでまずは病院へ。
そもそも「強い」の定義がわからんなぁ 給料?それとも再就職?
プログラミングスキルです
>>615 もう少しさ、言い回し方ってあるじゃん
”脳が”とか、”病院”とか誹謗する言葉使ってレスするのは止めようよ。
スレが荒れるだけじゃん
スキルはピンキリなので単純に比較しようがない ただし互換性という点では ゲーム→業務への転職はあまり問題ないが 業務→ゲームへの転職はうまくいかないことが多い これは技術的な問題ではなく 仕様書主導のコーディングから流動的でアバウトな ゲーム業界特有のなぁなぁ進行になじめないことが多いから
なんでスレ違いな質問に答えるんだよ 技術的な質問ではスレ違いとか言っといて すれ違いでも自分の知識ひけらかしたいのは答えるって それがスレ悪くなってる原因だって気づけ
不満があるならシカトすればい話だろ ほんとガキが多いなここは。
623 :
デフォルトの名無しさん :2008/12/19(金) 13:11:19
そう言ってる本人がレスしてるからな。 馬鹿の見本だw
そのガキのレス読むお前はなんだ? ガキ以下か? 以下だなw
-----------もう言い合いは終わり大人げないですよ-----------
ガキ以下か? この質問はスレ違いです!キリッ!AA
もう少し心に余裕を持とうぜ 年末進行で忙しくて苛ついてるのか?
怒らないでマジレスしてほしいんだけど なんでこんな時間に書き込みできるわけ? 普通の人なら学校や会社があるはずなんだけど このこと知った親は悲しむぞ? 現実見ようぜ ってコピペあるけどム板マ板の場合は仕事中に書き込みしてるんだよな それで昼間は荒れるんだろう
629 :
デフォルトの名無しさん :2008/12/19(金) 14:38:41
ねえねえ、なんでちゃんと答えないのにレス返すの?ストレス溜まってるの?ねえねえ?
>ちゃんと答えないのにレス返すの? どれに?
仕事中だけど リビルド中とかにお茶のみながらここみたりしてるぜ
いま、出社しましたがなにか?
ニートだろうが社会人だろうが 関係ない書き込みの時点でこのスレには不要 ハイハイ俺の書き込みもですね
>>628 >現実見ようぜ
実際現実をみれば、
DirectXを習得しようとする社会人だって当然居ると思うんだ。
すぐニートや引きこもりを連想する人こそ、現実を見なきゃいけない。
>>633 わかってるなら黙っていようよ
アニメーションの繋ぎ変えについて、何コマ目から何コマ目にジャンプして繰り返したりといったことをやりたいのですが、どういった方法があるのでしょうか?お教え下さい。
表示するモノを切り替えるだけ それ以上でもそれ以下でもない
ゲームだとでこぼこの地形とかあるいたりするけど、 あれってどういう3Dモデルなの?キャラとかならひとつのxファイルなのはわかるんだが、でかい地形はどう分けてるのか
キャラの元データがX-Fileとは限らないのに、分かるとはいったいどういう事なのか、 まずはそれを明確にしろ。
,.-' ,r'' _,,.. - 、 ` 、 ,.r'/// / ,.-' `' 、. \ / ,r' ,r' _ _ \ '、 . / ///// ,' ,' , 三シ ヾ三 ヽ ', i ,.ァ .i .._ _,,.. ',. ', . | ,.r '" |. { <でiンヽ ;'i"ィでiン ', ', | .,.r' | ! 、 ‐' / !、 ーシ' i .i  ̄| ̄UUUU ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄UUUU ̄ ̄| ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄  ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄  ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄  ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄  ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄  ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄| ̄
カオスの数式とか
>>638 2Dのマップチップに標高データつけて3Dにしただけと思って間違いないと思う
フラクタル
>>638 Xfileでもなんでもいい
頂点情報だけりようすればいい
平らな地面に山とか池とか置いてゆくのね
>>646 間違いじゃないだろ
当たりは2Dマップチップ式配置に頂点ごとに
標高データおいただけでも十分表現可能だろ
標高データを表示モデルと一致させたい場合は地面のモデルにレイ飛ばしてつくれば
ほぼ完全一致になるし判定も平面の方程式一発でできるし楽だぞ
某社のRPGの地形当たりは実際にこれで作ってる
Yを標高データとすると上からみたらXZに関しては2Dと変わらない処理でできるし
お手軽、抜ける心配も皆無
まだやってんの?
デザイナーが当たり用チップを置いてく方式ももちろんありだし、 そうじゃなくてもマス目単位で当たり判定をするのは同じだけどな 後者の場合、デザイナーが作った大きなマップモデルのポリゴンを プログラムでマス目単位に区分けする必要がある この方式だとポリゴンの切れ目なんかで問題を起こしやすいから 前者のメリットは十分あるよ
>>649 地形部分は2D式マップじゃね?
標高が自由に変えられるところでそれな希ガス
何言ってんのこの人
>>653 想像力無さ杉w
でも格子状のとは違う気がするけどね
伸ばしたときにポリゴンっぽくガクガクしないし
あーでもポリ数上げればそうでもないか
エリカ例えてあげる! エリカが夜空に輝く満天のお星様なら、あなたは味噌汁のダシに使うにぼし様 エリカが優雅な白鳥なら、貴女はゴミ箱を漁るカラス。 エリカが輝くダイヤモンドなら、貴女はそうね、道端で蹴られるただの小石。 エリカがフランス料理なら、貴女はそうね、ねこまんま。 エリカ例えてあげる!エリカがビーナスなら、あなたはただのナス。
∧ __∧ ( ´・ω・`) .ノ^ y ヽ-, ヽ,,ノ===lヽノ / l | """~"''"'"""''~"'""~"""~"'""'' ダメでござる・・・もう我慢の限界にて候・・・なんでござろうかこの糞活劇・・・・ もはや、本職を営んでいる拙者からすると馬鹿馬鹿しくて観ていられないでござる・・・ 浪人や学童の方々は楽しめるかも知れもうさねど、拙者には無理でござる・・・ かような訳で中座させていただきたく あとは浪人や学童の方々でお楽しみあれ、御免
このバージョン初めて見た。
なつかしーな おい
ウインドウモードで隠れてるのにWM_ERASEBKGNDで灰色塗ってるのな
隠れてるのにていわれても、何がかがわかんね
ここは何のスレでしょー
WndProcでWM_ERASEBKGND無視すりゃええだけだろ
666 :
デフォルトの名無しさん :2008/12/23(火) 09:36:25
オーバーレイで隠れるのにどうでもいいだろ
MOTTAINAI
>>664 DirectInputかもしれないのに、ウインドウモードで
隠れてるのにていわれても、何がかがわかんね
なんでInputやSoundでWM_ERASEBKGNDガ隠れるんだw
アニメーションの話からマップエディタの話になって、 いつから背景の話になったのか馬鹿な俺にはわからない/(^o^)\
ブラシでクライアント領域塗りつぶす時間なんかたかが知れてるだろ
たかが知れてるだろ。の積み重ねでソフトはどんどん重くなる。
>>673 これは何の為にコンデンサ繋げてタイル貼ってるんだ?
スレ違いの質問だったら申し訳ありません。
下記サイトのサンプルを動かそうとするとコンパイル時にエラーが出ます。
「ID3DXEffect」のメンバとして「Pass」が無いためのコンパイルエラーのようですが、Passは別のものに置き換わったのでしょうか?
そもそもHLSLについて使い方が大きく変わったのでしょうか。
SDKは2008/Marchを使用しています。
DirectX! Vol.57
ttp://monsho.hp.infoseek.co.jp/dx/dx57.html
まず本人に聞くべきじゃないのか・・・
id3dxeffect pass 廃止
大分前だけど 互換性のない仕様変更があった for(i=0; i<pass; i++){ g_pEffect->BeginPass(i); // 描画する g_pd3dDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, vert, sizeof(MS_SCNVERT)); g_pEffect->EndPass(); }
ありがとうございます。 サンプルとして載せているサイトがどれもPass使用で困っていたので助かりました。
質問です。DirectX 9.0cなのですが、フォントの表示で苦戦しています。 D3DXCreateFontIndirect()で作成したフォントを ID3DXFont::DrawText()を使って表示しているのですが、 サイズの違うフォントを描画するためにD3DXCreateFontIndirect()を呼び出す度に 大幅に処理時間がかかってしまい、まともなスピードで動きません。 何か別の、高速なフォントの表示方法はないでしょうか?
681 :
デフォルトの名無しさん :2008/12/24(水) 00:22:52
ググれカス
テクスチャにフォントのイメージを転送するだけ
>>681 私なりにぐぐって、テクスチャを作って貼り付ける方法というのもあったのですが、
文字入力があるゲームという性質上、文字自体が不特定ですので微妙です。
もし参考サイトなどご存知でしたらよろしくお願いします。
全部の文字を作ればいいじゃん。 それこそ全部の文字のファイルに吐き出すプログラムでも作って。
>>684 それだと文字テクスチャだけでかなりの容量が必要になると思うのですが
それしか方法はないんでしょうか?
APIを使ってフォントのイメージを拾えばいいだけ 文字を作るとか、どれだけ頭が悪いんだろう
って、マルチかい
俺はマルチに関しては許容 もう他の掲示板とか見てない
自演乙
>>686 すいません、もうちょっと詳しくお願いします。
API、拾うというのは具体的にどうすればいいのですか?
それは実行時にリアルタイムで行うという事でしょうか?
あと、
>>687 は質問者の私のレスではありません。
変な人が潜んでいるみたいですので、煽りレスは無視するようお願いします。
よくみたら
>>688 に私のレスが貼り付けられていますね…
それも私のレスではありません。どうもマルチ扱いにしたい人がいるようです…
回答はこちらだけでお願いします。
本当に参考ページ見たのかよ
>>689 ありがとうございます。そこを読んで勉強してみます。
え
>>696 すいません、マルチがどうのと見に覚えのないレスがあったので
私へのレスだと思いませんでした
どうもありがとうございます
ここまで自演
マトリクスの内の1行を取得する関数ってないですかね?
D3DXMATRIX mat ; D3DXVECTOR4* VX = (D3DXVECTOR4*)&mat._11; D3DXVECTOR4* VY = (D3DXVECTOR4*)&mat._21; D3DXVECTOR4* VZ = (D3DXVECTOR4*)&mat._31; D3DXVECTOR4* VT = (D3DXVECTOR4*)&mat._41; じゃ、だめなのか?
1要素ずつしか取り出せないの?
行列内の各行の先頭アドレスを取得してるだけなんだが まさか、ポインタの説明から始めないとだめなのか?
つか、関数ないんすか? キャストとかめんどくさいです
自分で作って呼べばええやろが
関西人死ねや
意外に基本的な関数が実装されてないんだな
自分で関数書くなり継承してマトリクスクラス書くなりすれば1分で解決するだろ ここで質問して回答待つより全然早い
1分でできるレベルだったら質問しないだろjk
DirectX側で用意されてるんだったら、わざわざ車輪の再発明する必要はないだろ 「こういう関数があるか」という質問には、あるかないかを答えればいいだけであって 自分で作れば解決するなんていうレスは的ハズレな回答なんだよ
そんな的外れな文書く前に701に回答してやったらどうだ?
お前がしてやれよ
>701-708見れば回答として成立してるのはわかる上に実装まで提案してくれてるのに>711は何が不満なの?
>>705 の時点で回答として成立してないことがわかるはずだが?
日本語読めないのかお前は?
関西人死ねやで回答成立
無いから実装を示してくれてるんだし、質問者も>708で納得してるじゃないか ただ無いって回答されるより有意義な回答なのに何が不満なの?
708は俺のレスだよ 思い込みいくない
つまり>711、>715が質問者なの? それなら納得だが
知識がなくて知らないだけってこともありえるけどな
無いならない、知らないなら知らない、あるならあると回答すべき
聞いてもいない事を回答しても、本人が望まないなら無意味でしかない
当然の事を言ってるだけなんだが、なんで
>>714 に噛み付かれるのか意味不明
\冬厨だー!/
回答者は質問者のカーチャンでもないのに無料で助けてくれる貴重な存在なんだが冬厨には理解できないらしい
無料で助けるなら最後まで助けるのが義務です あまったれてんじゃねえよ
まあ釣りでも何でもいいけど、世の中には本気で>723みたいな思考の人間もいるから困るw
余計なことしやがって。責任とって最後まで回答しろ
貧乏な国に学校を建てようってやつ、あるじゃん あれって、立てただけじゃゴミなんだよ 維持費まで面倒を見て、最後までやってやらないとゴミでしかない お前らはゴミだ
>>720 馬鹿にしたくてレスしてるだけだからアホな方向の回答になる
そんな奴らに何言っても無駄w
そういう関数があるか無いかって教えてもらうより速い方法って無いのかね
ODAの利子が入ってくるんだけどね。 円高でCDSやばめだけどw
ODAじゃねえよ池沼
周りの人間が自分の望まない行動を少しでもすると許せない いったいどれだけ甘やかされて育ったんだろうね
ここは自己紹介のスレじゃないよー
おめえじゃねえ
なに?くやしかったの?
----- ここまで俺の自演 -----
なんか頭のおかしな人が張り付いてるね 他人の回答に文句つけてるあたり 自分はここでは重要人物だけどもう3ヶ月はコネーヨって言い放った人?
>>736 その頭のおかしそうな人を呼び込みそうなレスは止めておこうよ。
あたり前の指摘をされてプッツンしちゃったのかな 回答じゃないものを回答とか
さっそく頭のおかしな人が釣り上がりました
と、頭のおかしな739が同族嫌悪しております
741 :
デフォルトの名無しさん :2008/12/24(水) 14:48:31
---- ここまでが本日2度目の俺の自演 -----
このスレって、今まで出た質問をまとめたWikiとかないんだな・・・ だから話がループすんだよ
と、ループさせてる当人が申しております
回答者からすると作るほどの質問がない 質問者からするとそんなの作ってる余裕もない
わんをわんを
D3DXVECTOR4 x = *D3DXVec4Transform( &D3DXVECTOR4(), &D3DXVECTOR4(1,0,0,0), &m ); D3DXVECTOR4 y = *D3DXVec4Transform( &D3DXVECTOR4(), &D3DXVECTOR4(0,1,0,0), &m ); D3DXVECTOR4 z = *D3DXVec4Transform( &D3DXVECTOR4(), &D3DXVECTOR4(0,0,1,0), &m ); D3DXVECTOR4 w = *D3DXVec4Transform( &D3DXVECTOR4(), &D3DXVECTOR4(0,0,0,1), &m ); これで我慢しろ
749 :
デフォルトの名無しさん :2008/12/24(水) 23:40:02
544 名前:デフォルトの名無しさん[sage] 投稿日:2008/12/16(火) 19:47:52 行列のwならともかくベクトルのwは知らんなぁ 4次元ゲームでもつくってるの?
結局、4x4の行列とかけあわせるときに数合わせで使うぐらいしかない? x/w,y/w,z/w的な使い方はしない?
別にVectorと付いてるからって ベクトルで使わないといけないわけではない ARGBでも使うしテクスチャ座標に使ったりもしていい オペレーターがオーバーロードしてあるから計算が楽だし D3DX関数とも親和性が高い どう使うかなんて状況次第
752 :
デフォルトの名無しさん :2008/12/26(金) 00:59:36
質問です。IDirectInputDevice8 の GetDeviceState キーボード入力で悩んでます。 キーステート取得部分はコードは以下のような感じです。_TRACE_()はデバッグ用メッセージ出力です。 -------------------------------------------- LPDIRECTINPUTDEVICE8 GgafDx9Input::_s_pIDirectInputDevice8_Keyboard; char GgafDx9Input::_s_caKeyboardState[256]; void GgafDx9Input::updateKeyboardState() { again: HRESULT hr = _s_pIDirectInputDevice8_Keyboard->GetDeviceState(sizeof(_s_caKeyboardState), (void*)&_s_caKeyboardState); if(FAILED(hr)){ _TRACE_("GetDeviceState is FAILED"); hr = _s_pIDirectInputDevice8_Keyboard->Acquire(); if(hr == DI_OK) { goto again; } else { //ダメならまた次回へ } } return; } ----------------------------------------- ここで、例えば"z"キーを押しっぱなしにしたとして、60FPSの頻度で updateKeyboardState()を実行し if (_s_caKeyboardState[DIK_Z] & 0x80) で押されているか調べるのですが、本当にごく稀に上記条件が真にならないことがあるのです。 しかもその現象が起こったとき、デバッグメッセージが一つも表示されていないので、どうやら GetDeviceState は成功しているようなのです。 押しっぱなしが重要なアプリでなんとか解決したいのですが、どこがまずいのかわかりません。ご教授をお願いいたします。 または、同じようなことで悩んでいる方おられませんか? 代替案などもあれば知りたいです。
>>752 hr = mpDInputDevice->Poll();
hr = mpDInputDevice->GetDeviceState(256,diKeyState);
if(hr != DI_OK){
hr = mpDInputDevice->Acquire();
while(hr == DIERR_INPUTLOST)
hr = mpDInputDevice->Acquire();
return 0;
}
俺、こんな感じになってっけど俺のもその現象起こるのかな?
ポール牧
755 :
725 :2008/12/26(金) 20:23:43
>>753 レスありがとうございます。
ひょっとしてキーボードでもポーリングが必要なのかと思い試してみましたが、結果は同じでした。
別のマシンで実験したところ、現象は長い時間起きませんでした。環境に左右されるっぽいです。
updateKeyboardState() が成功しても、キー状態は必ずしも取得でるとは限らない…、ということなのか。
押しっぱなしと押し直しで、挙動が大きく変わるアプリの設計がそもそもまずいのかなぁ。
と思ってきました。
756 :
752 :2008/12/26(金) 20:25:07
↑725でなくて752です、すみません
757 :
デフォルトの名無しさん :2008/12/26(金) 22:01:18
>>755 俺のソースコードまるまる貼っても駄目だった?
俺の記憶だとAcquireの関数にはしょっちゅう通った気がするよ
>>752 ,
>>758 俺も試してみたところ、特に60FPSで漏れることはないようだった。
ただ、コードが↓こんな感じで、Unacquire()がないことに気付いたんで
追加したところ、100%漏れるようになっちまった。取得の度にUnacquire()って駄目なん?
m_pDID->Acquire();
m_pDID->Poll();
m_pDID->GetDeviceState(...);
m_pDID->Unacquire(); // これ追加したらオワタ
自分のソースに突っ込むけどキーボードでPollはいらない気がするなぁw ジョイスティック組んでそのまま貼り付けて動いたからまあいいやって感じだろうか? それと 初期化の最後で1回だけAcquireを読んでるぜ
天誅の権利横取りされた会社ですね。
>>760 Pollはデバイスが不要とするなら、無視するらしいし
むしろ常に呼ぶ方が正しそう。
>それと
>初期化の最後で1回だけAcquireを読んでるぜ
これだとSetCooperativeLevelで排他モードにした場合など
やばい気がする。
>>762 いや、だからそういうことじゃなくて初期化処理の最後で
Acquireを呼ぶのよ
毎回の処理は
>>753 の通り
764 :
752 :2008/12/27(土) 04:04:45
>>758 753のコードを貼り付けて試しましたところ、こちらでは残念ながら取りこぼしが稀に起こります。
複数のキーを押しっぱなしにした場合にやや起こりやすいことがわかりました。
取りこぼしが起きた時、押しっぱなしにしてから約4秒〜10秒の間に2フレーム連続で1〜2回取りこぼす、というパターンが多いことがわかりました。
JOYスティックボタンでは取りこぼしが無いこともわかりました。
…うちのノートパソコンのキーボード(デバイス)のせいなのかな。
それ単にハードウェアの問題だろう。 制限無く同時押し可能なキーボードなんて、PS/2接続の リアルフォースくらいしか無いよ。 取りこぼしっていうより、キーの組み合わせの問題かと。
でもおしっぱにしてからでしょ? なんか初期化とかミスってんじゃねーの? BYTE key[256]; memset(key,0,sizeof(key)); GetKeyboardState(key); Win32のGetKeyboardStateだとどうなのよ?
767 :
752 :2008/12/27(土) 15:26:36
>>766 GetKeyboardState() も試してみました。やはり現象は同じでした。
>>765 いろいろなキーで試してみました。全てのキーを試していませんが、なんと特定のキーは取りこぼしが起きませんでした。
調べた中で一番よく取りこぼしが起きると感じたのは、'Q'+何かの組み合わせでした。なんでなのかはわかりません。
おっしゃるとおりハードウェアの問題かもしれません。
いろいろ調べたりするうちに、ハード直結の組み込みソフトでもないのに、様々な環境がある中で
確実にデバイスの状態を取得なんてことは難しい、という考になりました。(本当にそうなのかわかりませんが)
「取りこぼしが起きるかもしれない」を前提とした仕組みに、処理や設計を変更しようと思います。
今まで返事を下さった方、ありがとうございます。
もし進展があれば報告いたします。
キーボードは元からハードの都合上いくつも同時に押せないはずだが。
>>768 途中まで拾えるけどごくたまにあるって話らしいぜ
メイン関数の中はなるべくシンプルにまとめる・・・と勉強サイトに書いてあったのですが、 見易い以外に何かメリットあるんですか? ギャルゲーでセーブロードは無いけど一通り完成して問題無く動いてるんですが、 よろしくお願いします。
>>770 生活は規則正しく・・・と勉強サイトに書いてあったのですが、
三文の得以外に何かメリットあるんですか?
不規則な生活で彼女はいないけど一通り健康で問題無く生きているんですが、
よろしくお願いします。
彼女ができるのはたしかに大きなメリットだな
>>770 今はコマンドインタプリタからのエントリポイントがmain()かもしれないが、
いずれWinMain()をエントリポイントにしたくなるかもしれない。
そのとき、main()にあれこれ詰め込んでいたら面倒そうだって事くらいは想像できるだろ?
後は、ゲームオーバーで即プログラム終了する作りだったのを終了するか再開するか選択したくなったときにも
main()に詰め込んでいない方がなにかと融通が利くというもんだ。
従って、ある程度以上のボリュームのあるアプリを書くのなら、main()に詰め込んでおかない方がいいということになる。
そうでもない
2Dシューティングゲームを作ろうと思っています。 自機などのテクスチャはメインのウィンドウにそのまま貼り付けるよりサブウィンドウに貼り付けて サブウィンドウ単位で管理したほうがいいのか?と思ったんですが、 どう実装するのが一般的なんですか?
>>775 何いってんのかわかんねー
ゲームアプリの基本的な仕組みはおk?
>>775 >テクスチャはメインのウィンドウにそのまま貼り付けるよりサブウィンドウに貼り付けて
>どう実装するのが一般的なんですか?
まずは一般的な用語を話すことから始めろ。
Directxとか使わないで 例えばマージャンみたいなの作ろうとしたら牌1つ1つをウィンドウとして扱ってたりとかしてたと思うけど そういうことを言ってるのかな?
DirectX使わなくてもんなことしねーよ
言葉の意味は良くわからんが テクスチャはあくまでデータだし デバイスロスト時に全部作り直す可能性もあるから 自分で管理クラスみたいのを作って1箇所で管理するのが楽なんじゃないの? 各オブジェクトはこの管理クラスに問い合わせてテクスチャへのポインタを取得する感じ
全部作り直すってあんた^^;
>>780 質問者そんな情報必要としてないだろ
っていうかそこのラインにすらたってないのがわからないのか?
多分ゲームの仕組みが超高速のパラパラ漫画ってことすらわかってないぞ
まずはヘルプのチュートリアルを全て終わらせる。 話はそれからだ。
784 :
775 :2008/12/27(土) 23:28:53
>776-783 説明が下手ですみません。 .NETにPictureBoxクラスがあるのを見てテクスチャを画面に貼り付けるよりテクスチャが貼り付けてあるウィンドウを画面に貼り付けたほうがいいのかな? と思ったので質問してみました。
>>784 うごかねーよ
そんなもん
触ってりゃわかるだろ
786 :
775 :2008/12/28(日) 02:38:06
>785 子ウィンドウを動かすことは出来ると思うんですが、 動かないと言うのは重くて使い物にならないと言う意味ですか?
なんであなたは自分で試さないんですか?
.NET厨は生産性を重んじるのでチュートリアルとか試行錯誤とかは一切しません。
789 :
775 :2008/12/28(日) 02:54:41
>787 また説明が足りなくてすみません。 テクスチャをメインウィンドウに貼り付けて移動させることも、 テクスチャをサブウィンドウに貼り付けてメインウィンドウ上でサブウィンドウを移動させることも試したのですが、 どっちがいいのか分からなかったので質問しました。
速度を計測してください
できるよ むしろここにいるのが普通のウィンドウアプリを 作ったことないから わからないんだろうね。 2Dシューティングんら実はこれメリット多いよねw
じゃあサブウィンドウで作るということで(笑)
VBでゲーム云々の本はたいていそんな感じだったけどね。
んな馬鹿なー。ウィンドウ内にGDI(+)で文字の描画すら したことないレベルの発想だぞ、この設計。
だからグダグダ言わずにチュートリアルを終わらせろ。
自分の知らない部分、やったことない部分を最初から否定するのはお前らの悪い癖だと思う 質問者もそうだが回答者も
DirectXのDirectの意味わかってないな
で、スプライト毎にウィンドウを使うメリットは?
知らんよ、ポトペタでやりたいんかね
>>788 できたら暗記、それが高学歴の勉強方法。
なんで質問する前に、自分で一通り機能の確認や実験をしようとしないんだろうな。 聞かれたら考えさせず、ほいほい答えを教える日本の教育の問題なのか。
そういうスレってわかってたら見なきゃいいんじゃね?
>>802 それをこのスレでたたきなおす役目もになっているのだよここは
答える代わりもしくは一方的に質問者をフルボッコにしなければならない
ハートマン軍曹がいるからなこのスレは
またお前か、さっさと消えろよ
自分でやってみて答えを探すとか時間の効率悪過ぎるだろw 正解を聞いたり見たりして暗記した方が圧倒的に早い。 これが高学歴低学歴の差。
言われたとおりにやれと教育されて、大人になってからも言われたとおりにしかやれないまま育つ。 そして指示を出す人間がいないと何も出来ないどころか、 何かしようとすると不安になって、必ず誰かに聞いてからでないとことを起こせない。 そんな風に育ってしまうと、どんなに叩いたところで一生そいつはそのまま。 もう手遅れなんだよ。
>806 自国で技術者を育てるよりpakuriを選んだ結果、経済が死に掛けてるどこかの国と同じ発想ニダ
そんなに何もかも自分で試して解決したいならこんな所来るなよw
まあ自分で考えられない人には何言っても無駄だね >807の言うとおり手遅れnida
>>789 考え方がDirectX7のDirectDrawのサーフェイスのような感じと勝手に解釈しました。
.NETは詳しくありませんが、StretchImage ってのを調べてみたところ
SizeMode でストレッチ(引き伸ばし)ってのがありますよね、
この機能を使わずに等倍のイメージを動かすのなら、どっちでも殆ど同じ負荷ではないかな。(直感です、あしからず)
でも将来のことも考慮し、汎用性を高めるために、一旦サブウィンドウに出来上がりイメージを作ってからコピーは良い手法と思いますよ。
キャラによって使い分けれるよう両方のクラスを作っといたほうがいいかもしれません。
>>775 卵焼きを作ろうと思っています。
卵などの素材はそのままお湯をかけるより、電子レンジでチンして
皿ごとに管理したほうがいいのか?と思ったんですが、
どう調理するのが一般的なんですか?
サブウィンドウとは何ですか? 正式名称を教えてください
そもそも775はDirectXを使うつもりなのか? 違うなら、ここはゲーム作成スレではなくDirectXスレだからスレ違いでいいのでは?
メリットはボタンとかにしとけば クリックしたのを座標なんかで調べなくても 検出できる。 背景を2重3重に簡単に重ねられる 透過も簡単。 MFCや.NET使ったことない人なら理解するのに 時間掛かるから、できる人が利用すればいい。
機体や弾の分の大量の透過ウインドウとかスゲー重そうな気がするんだが実際どうなんだろうな 完成したらうpしてくれ
そもそもWin32API側に描画を任せるならテクスチャを用意する必要性がない。 DirectXスレに来る必要性もない。 言っていることが無茶苦茶。
RADの統合環境で標準コントロールしか使ったことがない。 Direct3Dの機能を聞きかじって、イメージの描画にはテクスチャという用語を覚える Direct3Dの機能を確認も検証もしないで、標準コントロールと同じ使い方をすると思い込む メインウインドウとかサブウインドウという、頓珍漢な発言をする 再三チュートリアルぐらい終わらせろと言われてもやらない 未だにDirect3Dの描画がなんなのかわかっていない ←今ここ
初心者と初級者または中級者の境目ってどこだ? 初心者ってあたり判定は座標で三平方とかそのレベルだと思ってたわ。
最低限チュートリアルを終わらせているのが初心者 その程度、最低限やっていなければ初心どころか始めたことにすらなっていない 車の免許をとっていない奴が、練習中に初心者マークをつけないのと同じ スタートラインにすら立っていない奴は初心者ですらない
色々言葉足らずですみません。
.NETの解説ページでウィンドウごとに1枚のテクスチャを管理していたので、
僕的にはC++での実装も同じようにウィンドウごとにテクスチャを管理させて、
メインウィンドウでそのウィンドウを移動させると
>>815 のメリットのように当たり判定管理が楽になると考えたのですが、
調べていると1つのウィンドウで全てのテクスチャを管理しているHPしか見つからなかったので、
僕の考えた方法だと使い物にならないような欠点があるのかと思ったのです。
>>791 的確なレスありがとうございます。
僕の考えでも問題なさそうなので、この構造で作っていくことにします。
>>811 汎用クラスを作るというのは考え付きませんでした。
作ってみることにします。
>>814 DirectXは使うつもりです。1度他のスレに質問したんですが、誘導されてきたのでここで質問しました。
>>816 僕の作ったのでよければアップしてみます。
>>818 >チュートリアル
今探しているんですが、ヘルプのチュートリアルがどこにあるのか今一分からないので場所を教えてくれるとありがたいです。
ヘルプという限定された空間でさえチュートリアル程度のものを自分で探せないのなら、そもそもプログラムなんて無理。
DirectX使っててその結論になるかな・・・
ほんと偉そうな低脳の巣窟だよなプログラム関係のスレって。 レベルの低い問題しか出ないセンターで8割取れないなら人生無理。
年末というのに実にくだらない流れ
>>821 ええーw
本気でそのやり方で作るつもりなの?w
ひさびさにすげぇのキタなコレw
まあバカはほうっておこうw
すぐ隣の家に遊びに行くのに、国際線の航空機を利用しようとする馬鹿がいるのはこのスレですか?
センターとか国際線とかほんとどうでもいいから つまらない喩えで他人を苛付かせるスキルだけは認めるが
チュートリアルもやる気ねぇってのがまちがってるよな
チュートリアルはコピペ→コンパイル→実行で卒業
そんな順調に進むほど甘くはない。
チュートリアルはコピペ→コンパイル→エラー→「うまくいかない」と書き込み→ゆとりはこれだからと返答
質問です DirectX9.0cで、フルスクリーン表示時にメニューバーを表示したり消したりしようと思い SetDialogBoxMode()という関数を使ってみたのですが、これを使うと メニュー表示時に画面が縦に潰れてしまいます 画面をつぶさないでメニュー表示を行うにはどのようにすればいいのでしょうか?
D3DSWAPEFFECT_COPYを使って、描画区域を自分で設定する ただし面倒なだけなのでメニューを自分で描画するのが一番楽 フルスクリーンで標準コントロールを使おうと考えるのがそもそもの間違い。
BuldActionMapはキーボードに使えない?
839 :
デフォルトの名無しさん :2008/12/29(月) 17:03:41
初めまして、DirectX初心者のものですが皆様にご質問させていただきます。 現在DirectX9のノートパソコンでVisualStdioでプログラミングを行っております。しかし使用しているパソコンがノートなので 処理が重く効率が悪いのでパソコンの購入を考えているのですが、お店で売っている商品は DirectX10ばかりです。DirectX10のパソコンでDirectX9のプログラミングを今までどおり 行う事は可能でしょうか?
残念、無理です
なんでそんな簡単に答えが帰ってきそうな質問まで マルチポストするんだ
A 「上様がこのような所に来られるはずがない」 B 「上様の名を騙る不届き者だ」 C 「上様でも構わぬ」 D 「上様、お手向かい致しますぞ」 E 「上様、お命頂戴致します」 F 「ここで死ねばただの徳田新之助」 G 「悪党らしく死に花を咲かせてくれるわ」 H 「飛んで火に入る夏の虫」 I 「我ら幕臣あっての上様ではないか」 J 「八代将軍もこれで終わりぞ」 K 「もはやこれまで」 L 「笑止千万」 M その他
844 :
デフォルトの名無しさん :2008/12/29(月) 20:20:16
>>840 ご親切にご回答いただきありがとうございました。
>>841 大変不快なご質問をしてしまい申し訳ありませんでした。
もう1つご質問なのですが、DirectX10のパソコンからDirectX9に
バージョンを落とせないなら、DirectX9にしか対応していないゲームや
プログラムを動かす事は出来ないのでしょうか、
何か方法がございましたら教えてください。
まずDirectXとは何か COMとは何かから勉強してきてください
自分がするのに「ご質問」とは大層な奴だ。
1:35 映画「バック・トゥ・ザ・フューチャー」 マイケル・J・フォックス クリストファー・ロイド リー・トンプソン トーマス・F・ウィルソン
ものすごく簡単なシューティングを作り終わって、 次に作るべきものとか読むべき本とか教えてください、勉強的な意味合いで。
自分の作りたいジャンルによる RPGしか作ったことない人なんか シューティング特有の計算とか知らんでも作ってる 技術的なものならジェーダーあたりかも
>>848 なにかことを起こすときに必ず他人の指示を仰ごうとする精神虚弱病者が増えたのは、日本の教育のせい。
おまえのせいじゃない、教育が悪かったんだよ。
何を作るべきかじゃなくて何を作りたいかだよ 作りたくないなら作らないでよろしい
852 :
デフォルトの名無しさん :2008/12/30(火) 14:50:57
自作ゲームを起動すると30fps前後出ます TENVIというネトゲを起動しながら自作ゲームを起動すると60fps前後出ます なんでですか?
タイマ絡みとか
タイマ分解能の設定やってないとかかねえ
市販のDirectX使ってないアプリで、他にDirectX使ってるアプリを立ち上げておくと高速に動くとかは見たことあるな
timeBeginPeriodとかって他のアプリにも影響出るの?
>>852 何でですかとか聞く前に、自分のプログラムをどう組んでいるのかという情報すら出さない馬鹿が作ったプログラムだから。
>>856 それは知らんがSetSystemTimeAdjustmentとかはOS全体に影響が出るよ。
また日本の教育厨が沸いてんのかよ。 低学歴がどうこう言っても小学生がどうこう言うのと同じだからね?
そんなの沸いてねょ去れ
とりあえず 質問に答える気のない人は消えればいいと思うよ
随分前からそうだけど 質問に返答できないのに文句だけ一丁前のうざ太郎が多いのはどうにかならないの? 文句とか愚痴とか回答してから好きなだけ書けよ
答えられないor答える気のない人は普通にスルーすればいいのに
864 :
デフォルトの名無しさん :2008/12/30(火) 21:12:48
スルーしろよな いちいち反応してカッカッしてる奴のがどうかしてる
>>862 君のそういうレスが一番うざいよ
質問に文句が出るのが気に入らないなら、先に君が回答して終わらせればいいだけの話
DirectX初心者というより、煽りに耐えられないような2ちゃんねる初心者は どこか別のお綺麗な技術掲示板に行けばいいのにな なんでわざわざ2ちゃんねるなんかに来るんだい?
しかしこことWin32APIスレはひどいけどな
2chだから煽って良いって理屈にはならんけどな
煽ってるのは例外なく子供 そんな彼らも、後1年ぐらいすれば 反抗期が終わっておとなしくなるだろ で、次の子供が参戦して無限ループになる訳だけど
____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ <2chだから煽って良いって理屈にはならんけどな | |r┬-| | \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // だっておwwwww | :::::::::::(⌒) | | | / ゝ :::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / | | l||l 从人 l||l l||l 从人 l||l バン!バン! ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
まともな質問ならまともな回答が返るし、 アホな質問ならアホな回答者を呼び寄せる、ただそれだけのこと。
だから住人の反応が気に入らないなら他に行けばいいじゃん。 他行った方がよっぽど親切な回答がえられるぜ? なんで他いかねーでうだうだ愚痴たれてんの?
まともな質問にはまともな回答 アホな質問はスルー、これで問題無し
>>873 まともな質問にはまともな回答
アホな質問はスルー
アホな質問に対する煽りもスルー
これで問題なし
頭悪いな
お前がな
一応初心者スレなんだけどなここ ある程度アホな質問になるのは多少止むを得ないと思うが 正直お前らは煽りすぎ
煽りを無視できないせいで不毛なレスが延々と繰り返されてる事にも気づかない 自分自身もうざい人間である事を理解しなよ
DirectX初心者はこのスレに DirectX初心者以前、プログラム初心者、PC初心者、質問初心者、2ch初心者は別の所へ
>だから住人の反応が気に入らないなら他に行けばいいじゃん。 住人だっておwww ばっかじゃね?
君ほどではないおwww
住人っていうかもはや害虫でしかない
鏡を見ながら何言ってんだろうか
884 :
デフォルトの名無しさん :2008/12/31(水) 05:13:23
BBX生きてるならBBX行った方が早いよ
もう次からスレタイの「初心者」消せよ
何様だよ
しかし頭の悪い連中が多いスレだな。 だからプログラムなんてやってるんですけどねw
ペイントソフトで、RGB値を指定してペンで書くように alpha値(0〜255)を指定してペンで描けるようなソフトってありますか? どのソフトもアルファチャンネルレイヤーには対応しているんですが 直にアルファ値をペンや塗り潰しできるものが見つからなくて・・・
アルファ値指定したら下絵と混ざるだろうが
またコイツか
いや、どう見ても煽り目的のコピペだから
書いた本人がだと思うけどな
894 :
デフォルトの名無しさん :2008/12/31(水) 16:53:19
>>888 ググれば見つかる
RGB000〜255255255の絵を用意してそれをアルファ値にしてくれるソフトがフリーである
ただ読み込むときにRGBとアルファで別に読んでも手間が似たようなもんなのでわざわざくつける意味ないかも
DirectInputでキーポードやマウス使うは禁止なの?
はぁ?
非推奨なだけ APIとXInput使えとさ
なんで非推奨なの? DirectPlayと同じ理由?
箱のせいでDirectXがgdgdになっていくなー
文字入力あたりじゃないか
ウィンドウモードの場合、通常はクライアント領域全てに描画されますが、 これを、クライアント領域の左半分だけに描画する、というように、 一部だけに描画するようにするにはどうすればよいでしょうか?
ビューポートを画面の左半分にする
描画されますがていわれても、何がかがわかんね
905 :
902 :2008/12/31(水) 21:44:46
>>903 ビューポートを半分にしても(Widthメンバを半分にした)、クライアント領域全域に描画されるため、
横に引き伸ばされて表示されてしまいました・・・
>>904 すみません、描画というのは、バックバッファの内容をフロントバッファに"描画"するという意味の描画です。
ウィンドウモードの場合、スワップはコピーで行われますよね?
そうすると、転送元と転送先をそれぞれRect構造体か何かで指定できる箇所があるのでは?と
思ったり・・・
present
907 :
902 :2008/12/31(水) 21:53:48
>>906 ちょうど気付いたところです(汗)
ありがとうございました!
子ウィンドウ作ってハンドル渡す
最近DirectXをはじめたんだけど、わかりやすいサイトとかある? 書籍も教えてもらえるとありがたいです
910 :
デフォルトの名無しさん :2009/01/01(木) 08:14:48
ナイナイアルヨ
// プリミティブを生成する D3DTVERTEX lptvert[4]; lptvert[0].pos = D3DXVECTOR3(-1.5f, 1.5f, 0.0f); lptvert[1].pos = D3DXVECTOR3(1.5f, 1.5f, 0.0f); lptvert[2].pos = D3DXVECTOR3(-1.5f, -1.5f, 0.0f); lptvert[3].pos = D3DXVECTOR3(1.5f, -1.5f, 0.0f); lptvert[0].color = lptvert[1].color = lptvert[2].color = lptvert[3].color = D3DCOLOR(1.0f, 1.0f, 1.0f); lptvert[0].specular = lptvert[1].specular = lptvert[2].specular = lptvert[3].specular = D3DCOLOR(1.0f, 1.0f, 1.0f); lptvert[0].uv = D3DXVECTOR2(0.0f, 0.0f); m_model->Create(device, D3DFVF_TVERTEX, 4, TRUE);
質問です
D3DTVERTEX *lptvert = new D3DTVERTEX[4];
lptvert[0].pos = D3DXVECTOR3(-1.5f, 1.5f, 0.0f);
lptvert[1].pos = D3DXVECTOR3(1.5f, 1.5f, 0.0f);
lptvert[2].pos = D3DXVECTOR3(-1.5f, -1.5f, 0.0f);
lptvert[3].pos = D3DXVECTOR3(1.5f, -1.5f, 0.0f);
lptvert[0].color = lptvert[1].color = lptvert[2].color = lptvert[3].color = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f);
lptvert[0].specular = lptvert[1].specular = lptvert[2].specular = lptvert[3].specular = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f);
lptvert[0].uv = D3DXVECTOR2(0.0f, 0.0f);
lptvert[1].uv = D3DXVECTOR2(1.0f, 0.0f);
lptvert[2].uv = D3DXVECTOR2(0.0f, 1.0f);
lptvert[3].uv = D3DXVECTOR2(1.0f, 1.0f);
で頂点バッファを作って、D3DPT_TRIANGLESTRIPで描画したのですが
http://appleloader.bbsnow.net/pic_loader/nomal/html/1_6.html 中央の板ポリが変な風になってしまいます。
解決方法教えていただけませんか。
>>914 DrawPrimitive の 引数 PrimitiveCount は 2 になってるの?
>>916 D3DTVERTEX と D3DFVF_TVERTEX の定義はどうなってるの?
もし rhw があるなら、1.0で初期化。
typedef struct _D3DLVERTEX { D3DXVECTOR3 pos; D3DXCOLOR color; // ディフューズ D3DXCOLOR specular; // スペキュラー D3DXVECTOR2 uv; } D3DTVERTEX, *LPD3DTVERTEX; #define D3DFVF_TVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1) です
>>919 ×
D3DXCOLOR color;
D3DXCOLOR specular;
○
D3DCOLOR color;
D3DCOLOR specular;
名前似てるけど別モノなのよね。
>>920 正常描画されました!
D3DXCOLORではだめなんですね。
ありがとうございました!
あけましておめでとうございます。 単純な、しかしながら半透明で色のある 立方体を描きたく存じます。 D3DXの関数にD3DXCreateBox()っていう のがあったのですが、単純なMeshを得る だけで、そこから後、色をつけるという事は 自分でやらなければなりません。 あるいは、立方体のXファイルをロードするのも手でしょう。 形状データを得るのは問題ないですね。 私が分からないのは色をつけるのに テクスチャを使った方が高速なのか、頂点色を使った方が 早いのか、Xファイルにマテリアルデータっとか属性とか ある?としたら、それを使った方が良いのか。どうでしょうか?
>>922 まずは質問を書き込む前に自分でベンチマークをとる習慣をつけろ
質問は結果に疑問を持ってからしろ
>>924 ごめんなさい。確かにそんな気がします。
質問を絞ります。
メタセコイヤで設定した材質(マテリアル)データはメタセコの標準的なXファイル出力機能で
出力できるのかそ?そもそもXファイルにそういうデータを含みえるのか、
含むとしたら、それをDirectXでどのようにロードしてどのように
設定すれば、画面にそのマテリアルデータを反映して、例えば
透明な立方体とかを描画できるのか?
話がメタセコとXファイルに寄るので、分かる人少ないかもしれませんが、
もしいらしたらよろしくお願いします。
普通にマテリアル情報は保存されてるし 反映させることもできる ただし読み込みまではD3DXでやってくれるが 反映は手動で行う必要がある
>>926 分かりました。ありがとうございます。確かに
Xファイルからマテリアルの読み込みと反映は
サンプルのMeshでまんま、行われてますね。
g_pd3dDevice->SetMaterial() ですね。
デバイスに設定している以上、この辺はMeshも
DrawPrimitiveも変わらないんでしょうね。
メタセコのX出力はテクスチャの位置があれなんで、 直接テキストエディタで開いて確認、修正する必要があるかも。
ちゃんとUVマッピングにしてあれば問題ないはず 平面とか筒とか球ではってあるとおかしくなるかもしれんが
D3DXCreateMeshFVF( 2500000, 10000000, D3DXMESH_MANAGED, D3DFVF_CUSTOMVERTEX, g_pD3DDevice, &g_pMesh ); これだと、D3DERR_INVALIDCALLが返ってきます。 MSDNによると引数の与え方がマズいことなんかが原因らしいです。 そこで、最初の二つのパラメータを小さくするとエラーが出なくなりました。 数値の境を探したところ2の16乗-2である65534でした。 MSDNを見ると、引数の型はDWORDとなっているのに、なぜ16ビットまでになのでしょうか??
ID3DXMeshがデフォでは16bitインデックスバッファで作成されてんじゃねーの? D3DXMESH_32BITフラグでも追加すりゃ動くんかもわからんね
932 :
930 :2009/01/01(木) 23:03:35
>>931 できました!
どうもありがとうございました!
座標+色の頂点を頂点バッファに書いて表示させました。 頂点の並びは、TRIANGLESTRIP方式でうまく表示されるようにしています。 しかしこれだと、法線情報がないので、ライティングを施せず、立体的に見えません。 そこで、Meshオブジェクトに変換して、ComputeNormalで法線を生成しようと考えました。 そしてまず、D3DXCreateMeshFVF()でメッシュを作りました。 そのメッシュから頂点バッファ、インデックスバッファのポインタを取り出して、 それぞれを埋めようとしました。 しかし、頂点数が多いこともあって、インデックスバッファをうまく埋められず困っている状況です。 この問題の解決に向けて取り組んではいるのですが、 もし、この方針以外で法線を作成する方法があるようでしたら、検討したいので 教えてくださいますよう、よろしくお願いします。
D3DXCreateMeshFVFじゃなくて もとのMeshからCloneMeshで法線情報を追加したコピーを作成して その後でComputeNormal
そもそも何でそんな苦労をしてD3DXを使おうとするのか理解できない。
936 :
933 :2009/01/02(金) 01:01:06
>>934 もとのMeshはなく、3DCGとは関係のない、あるデータ列を頂点として頂点バッファに
書き込んで表示するという用途なんです。
インデックスバッファが厄介なので、これを絡めないで表示する方法が欲しいところです・・・
>>935 ほんと、悲しくなります T_T
そもそもデータ内容を変更するなら、インデックス自体も重複頂点を集計して再構成するだけの話。 やっかいも何もない。
インデックスはべつに厄介なものじゃないし、自分で法線計算しても 大した手間じゃないだろう。 たしかD3DXの計算は、単純に同じ頂点を共有する面の法線を足して 正規化してるだけだよ。
939 :
933 :2009/01/02(金) 01:57:42
ありがとうございます。 がんばってみます。
たとえばボタンとかリストボックスを裏で作って 操作するとそれに送って処理させて 表示だけDirec3Dにうつす事は出来ますか?
>>940 何言ってんのかさっぱりわからねぇ・・・
とりあえずDirect3D上でUI機能つけたいなら
下手にWindowsの機構を流用せずに
全部自前で用意した方が苦労は少ないゾ?
>>940 PrintWindowでHBITMAPにウインドウイメージを描画させることはできるが、
リアルタイムで毎フレーム呼ぶのは厳しい速度。
GUIコントロールは自作してみると、意外と簡単だよ。
自作しなくてもDirectXのSDKにソース付きで入ってるが。
スレ違いかもしれませんが、 境界球による衝突判定を勉強してるのですが、 D3DXComputeBoundingSphereで中心と半径を計算するのと 自分で半径を勝手に決めちゃうのはどちらがいいのですか? 他にいいやり方があったら教えてください
>>943 どっちでもいい
自分のライブラリがD3DXMeshベースなら
D3DX使った方がいいだろうし、
そうじゃないのなら自分のでもOK
やり方は、特にバリエーションがある訳じゃないので
考えなくてOK
>>944 ありがとうございます!
自分のを使うことにします。
D3DXは使うなって常識じゃん?
それを突き詰めるとカーネルから作れという話になるわけだが システム弄りに熱を上げるよりゲームに精を出そうぜ
配布が楽ならなぁ
今はDXUTマンセ〜
>>943 D3DXComputeBoundingSphereが返す球は全頂点の平均を取っただけで
あまり質がよくないから、自分で計算できるなら自分でやった方がいい。
DXUTはIDがうざい
ID3DXEffectを作成するのってD3DX系の関数しか無いんですか?あと、D3DXCreateEffectFromFileなどが 提供する、コンパイルエラー一覧というのは、ID3DXBufferで受け取るようになってますが、使うときは何にキャストすればいいんですか?
>>953 ただのバイナリデータだから好きにキャストすればいいと思うんだ
それでは分かりません・・・。
普通に文字列として格納されているだけだが。 あぁちなみにUnicode版でもここに入るのはascii文字列な。
>>956 そうだったんですか。親切にありがとうございます(^ー^)
深度バッファの内容を画面に色つけて表示しようと思ってるんですが、現状
・D3DUSAGE_DEPTHSTENCIL,D3DFMT_D16,D3DPOOL_DEFAULTを組み合わせてテクスチャを作成。
・SetDepthStencilSurfaceにて、テクスチャのサーフェイスを設定
・普通に描画
・HLSLで深度テクスチャの内容を画面に反映
と考えてるんですが、D3DFMT_D16のテクスチャをHLSLで描画するときって何か特別なことする必要あるんでしょうか?
float4 pixelS(float2 tex : TEXCOORD0 , float4 src : COLOR0) : COLOR
{
return src;
}
これですら画面が真っ白になるだけでした。
>>957 射影行列は、それなりにシーンとマッチしたものじゃないと
深度バッファの値に偏りが出て、目視では差がわかりづらいケースがある。
その場合、出力色を適当に累乗してやるとわかるようになったりする。
また、本当に深度値が出力されているか疑わしい場合は、
ピクセルシェーダで自分で深度値を作って出力してみるのも手。
こんぐらい。
俺はシーンなんてメンドクサイことはしないで すべての物をオブジェクトと見なし、ゲームの中に唯一つ存在する タスク構造体配列の中にぶち込んで、ぶん回している タイトル表示オブジェクト、メニューオブジェクト、PAUSEオブジェクト ゲーム終了しますか?はいorいいえオブジェクト プレイヤーオブジェクト、マップ表示オブジェクト、戦闘オブジェクトなどのように 利点は並列が可能なことだな 欠点は排他処理がちとメンドクサイかも たとえばメニューオブジェクトとプレイヤーオブジェクトやマップ表示オブジェクトが 同一タイミングで存在する事はまずあり得ない メニューオブジェクトでゲーム開始を選択したら メニューオブジェクトを殺して、プレイヤーオブジェクトやマップ表示オブジェクトを生成する フィールド移動中にメニューを呼び出した時は、プレイヤーオブジェクトやマップ表示オブジェクトを殺して メニューオブジェクトを生成する
誰もそんな事聞いてねーよ
>>958 シェーダは色を出力できてるし、Zバッファへの書き込みも実際できているようです。
ちなみに2Dでレンダリングしていて、深度0.25出書き込んでる部分、0.75出書き込んでる部分などがあるので
わかりづらいということは無いと思います。
問題はシェーダでD3DFMT_D16のテクスチャから、画素値を読み込む方法が分からないんですが
tex2Dじゃ無いんでしょうか?
962 :
943 :2009/01/03(土) 21:21:55
質問です。 モデルの描写にD3DXMeshを使ってるなら D3DXComputeBoundingSphereで境界球が計算できますが DrawPrimitiveで描写してる場合は自分で計算させる関数などを作らなければいけなのですか?
配列から距離の最大値をとるだけなんだから、ぐだぐだ言わずにとっとと作れよ。 返事を待っている時間で作り終わる内容なんだから。
ヒントをあげよう、itaertorで配列を一個ずつ取り出してD3DXVECTOR3の値が 一番大きいやつをD3DXVec3Lengthで距離にする。 これだけいえば分るよな・・・・ ソートのアルゴリズムが分からないとかないよな?
ただの配列にイテレータなんかいらねーしスペルはiteratorだし
>>964 そのやり方じゃできないだろ・・・
嘘教えるなよ
int polygon; D3DXVECTOR3 pos: for(int i = 0; i < polygon; i++) { if(polygon_mesh[i+1] > polygon_mesh[i]) { pos = polygon_mesh; } } D3DXVec3Length(&pos): でいけるだろ。
せめてpolygonじゃなくてnpolygonにしろよ
PolygonCountかiPolygon派
変数の名前の前方に型を付けるコーディングは、広めたMS自体が採用をやめたスタイルなんだが。 .NETを広めておいて自分では使わないのと同じ。 MSというだけで盲目的に踊らされ、座ろうとした途端に椅子を引かれる馬鹿が 後を絶たないのは哀れとしか言いようがない。
971 :
デフォルトの名無しさん :2009/01/03(土) 23:54:18
型よりもメンバか引数かローカルかグローバルかを書いてくれたほうが俺は好き
初期のスタイルで書かれているWin32API関連のヘッダと、 新スタイルで書かれているGDI+関連のヘッダを見比べると、 凄まじいほどの方針転換が見てとれる。
>>970 たった一文字のプレフィクスを見つけただけで
思わずそこまで書いてしまうお前が怖い
んで、今スレの流れはどこに向かってんのかしら
>>967 全体的におかしいよそれ
>>961 nVidiaのサイトから、HWShadowmapの資料でも探してみたら?
俺のGPUはATIなもんで、その確認が出来ないのは残念だが
っていうか、いつのまにかレンダリングターゲットが D3DFMT_A1なんてフォーマットが追加されてるし スゲーな俺のRadion9600は
976 :
943 :2009/01/04(日) 09:52:41
>> 974 大まかな流れ教えていただけませんか
D3DXComputeNormalsがエラーを返すので困っています。
流れとしては
D3DXCreateMeshFVF()でメッシュを作成
(FVF形式はD3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_NORMAL)
↓
・頂点バッファ(座標、拡散色)
・インデックスバッファ
をそれぞれ埋める
↓
D3DXComputeNormals()
です。
メッシュの構造を調べると、
ttp://www.lameije.co.jp/material/demo_mnv_01.png この図のように隣接性データというのがありますが、
これを作成しないといけないのでしょうか?
だとすれば、どのようにして作成すればよいでしょうか?
なお、バッファを埋める頂点数は毎フレーム変化するので、余裕を持って
確保しているため、バッファの最後のほうは無意味なデータが入ることになります。
このマージンを多くとりすぎると、
D3DX: D3DXValidIndices: A point(0) was found more than once in triangle (オーバーしたデータ分の三角形番号)
というデバッグメッセージが出てきたので、これが出ないところまで面数、頂点数を減らしました。
このようなバッファの使い方も影響しているかも?
だからD3DXに頼らず普通に計算して結果を格納した方がどれだけ楽だと。 なんでしなくていい無駄な苦労をしてまでD3DXを使い続けるんだろう?
質問させてもらっても良いでしょうか。 DirectXでエフェクトファイルを扱おうと、読み込み関数を実行したのですが、読み込みに失敗します。 パスの指定ミスかと思い色々試してみたのですが・・・。 実行環境 VisualStudio2005 Microsoft DirectX 9 SDK (February 2007) ソースの読み込み部分 BOOL C0Effect :: LoadFxFile( string h_FileName ) { HRESULT hr; if( FAILED( hr = D3DXCreateEffectFromFile( m_pD3DDevice, h_FileName.c_str(), NULL, NULL, 0, NULL, &m_pEffect, NULL ) ) ) { CHAR str[ 256 ]; sprintf_s( str, "ファイルロードエラー\n%s", h_FileName.c_str() ); MessageBox( NULL, str, "Error C0Effect :: LoadFxFile", MB_OK ); return ( FALSE ); } return( TRUE ); } m_pEffect のアドレスが NULL で帰ってきます・・・。 なにか悪いところがあるのでしょうか。
質問する前に最低限、エラーの値のチェックぐらいしたんだろうな?
単にHLSLにコンパイルエラーがあるだけじゃね とりあえずSDKのサンプル付属のfxファイルで読み込みまでを試してみれば? それでもダメならそれこそパスの指定ミスだろ DXUTFindDXSDKMediaFileCchで一度ファイルの検索して合ってるかチェック
982 :
977 :2009/01/04(日) 19:53:43
>>978 計算して格納できました。
ありがとうございました。
射影行列の算出には一般的に D3DXMatrixPerspectiveFovLH()関数を使いますが、 このようなパースが付くものではなくて、近くのものと遠くのものが同じ大きさになる 平行投影の射影行列はどのようにして作成するのでしょうか?
D3DXMatrixOrthoXX
985 :
983 :2009/01/05(月) 00:02:01
なんでヘルプを確認しないんだろう?
>>986 自動ヘルプ参照さんがいるからだろ
俺みたいな
答えている方は、答える前に必ずヘルプで確認を取っているはず
そう考えると滑稽な話だな
氏ねばいいのに
空気を読まずに質問させてください。 今作っているゲームをちょっと古いグラボ(Geforce FX5600)が乗ったPC でテストしたところ、処理落ちが激しすぎて困っています。 具体的に、通常のテストで2D(32×32頂点4つ)板ポリゴン40枚表示で処理落ちし、 シェーダ(HLSL使用)を通さない時は80枚、DrawPrimitiveをしない時800枚(?)で 処理落ちし始めます。市販のゲームでは、CPU使用率が100%にならない限り、目に見えて 処理落ちしないのですが、このプログラムでは、CPU使用率は関係無く処理落ちする ようです。この違いは何なのでしょうか・・・?ちなみにDXUTを使用しています。
DXUTもバージョンによって動作が変わるからなぁ 特にDirectX9とDirectX10が統合されてからのバージョンは どうも古いVGAだとなんか微妙に重くなったりすることもある 9と10が別々で提供されてた頃のUT使ってみるとか 後はPresentationインターバルを D3DPRESENT_INTERVAL_DEFAULTから D3DPRESENT_INTERVAL_ONEに変更したら改善したとかもあったな
GPUのほうのメーターとかないんかね
PIXでもPerfKITでも好きなの使え
993 :
989 :2009/01/05(月) 06:50:24
回答ありがとうございます。肝心なことを書き忘れておりました。
開発はDirectX9でSDK2007Aprilで行っています。重いのはDXUTの影響なんでしょうか?
どう考えてもDrawPrimitiveが重過ぎるので…。グラボ乗っててファミコンレベルのものも
動かせないってのはちょっと。
>>990 D3DPRESENT_INTERVAL_ONEには設定してあるんですがダメです。。
>>992 何故かPerfKITの導入中にエラーが起きるので今のところすぐにGPUを調べる手段はありませんが、
おそらくGPUの方はいっぱいいっぱいなんだと思います。ですがCPUの方は余っています。
PIXというのはどこを探せばよいでしょうか?見つかりませんでした、申し訳ありません。
995 :
984 :2009/01/05(月) 08:42:25
>>994 ありがとうございます。
PIX for Windows普段から使ってました…恥ずかしい。
GPUメーターの見方は良くわからないのでもう少しいじってみます。
てか、そろそろ1000行きそうですね。
DXUTは結構挙動が変わるな めんどくさくて放置してたDXUT部分を最新版に更新したら 開発マシンでは速度上がってすげーって思ってたら 別マシンでデバックしたときに速度ガタ落ちで結局元に戻したぜ
997 :
デフォルトの名無しさん :2009/01/05(月) 18:11:40
997 !!!!!!!!!!!!!!!!!!!!
998 :
デフォルトの名無しさん :2009/01/05(月) 18:55:10
そういえばDirectXを使うプログラミングをするときの開発環境で
999 :
デフォルトの名無しさん :2009/01/05(月) 20:12:30
バナナはおやつに入るんですか?
入るのはおっぱいだけです。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。