1 名前:デフォルトの名無しさん [2007/06/21(木) 00:03:46 ] ※回答する人も、質問する人も必ず読んでください これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。
620 名前:デフォルトの名無しさん [2007/08/05(日) 03:28:44 ] 質問です ゲームのエフェクトとしてパーティクルとビルボードをしようしようかとおもうのですが その際の処理速度を上げる方法としていい方法は何かないでしょうか? 同じテクスチャのパーティクルはまとめてD3DLOCK_DISCARDで頂点バッファを 作成し描画する程度は思いつくのですが・・・
621 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 03:34:07 ] >>620 普通のモデルとやることかわらんけど? やってみて重かったら最適化しろよ 無駄だぞ 初心者のくせに組む前から失敗したくねーとか甘いこといってんじゃねぇよ
622 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 07:20:47 ] なんでこう喧嘩腰になるのかねぇ… 嫌なことあった?
623 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 08:13:43 ] 2chでストレス発散するタイプ? 八つ当たりされた方はたまらんな。
624 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 08:39:54 ] 〜をやってみた→処理が重い→どうすれば軽くなる? ならわかるけど 〜をやるつもり→速い処理教えて ↑こんな奴相手にしなくていいと思う やんわり言っても同じことだと思うけど? ただの煽りと区別つかないのはちょっと困る
625 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 09:13:17 ] 俺には>>621 は煽りにしか見えん。 つか>>621 は相手にしてんじゃん。相手にした上で煽ってる。 >やんわり言っても同じことだと思うけど? 同じじゃねーよタコ。 って言われたらカチンって来るだろ? 顔が見えないネットじゃ文面に気を使うのは大事だと思うよ。
626 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 09:13:47 ] ゆとりにイライラしても始まらないのは確か。
627 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 09:17:19 ] >>625 >同じじゃねーよタコ。 どう同じじゃねーんだよタコ って返すだけだけどな
628 名前:デフォルトの名無しさん [2007/08/05(日) 09:20:19 ] age
629 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 09:20:53 ] 正直、現実で>>620 のような奴が増えては困る その場その場の方法なんて教えるだけ無駄だと俺は思う 初心者スレは技術より技術者の有り方を叩きこんでやるのが俺のおせっかい それが嫌(初心者扱いがうっとおしいと思う)なら通常の質問スレにいけ
630 名前:デフォルトの名無しさん [2007/08/05(日) 11:01:38 ] CComPtr<IDirect3DTexture9>をCreateTexture等の引数に直接指定した場合 Attachを使わずに代入したのと同じく参照カウントは2になってしまうんでしょうか?
631 名前:デフォルトの名無しさん [2007/08/05(日) 11:15:32 ] すみません教えてください DirectX BusterというのでDirectXをアンインストールした後 再インストールしようとしたのですが 「インストールの完了」と表示されても DirectXの診断ではヴァージョンが更新されていません どうすればインストール出来るのでしょうか;
632 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 11:24:06 ] >>629 ここはDirectXについてのスレです。 技術者の有り方については別の場所でやってください。 まずあなた自身が勉強して日本語と空気を読めるようにならないと、 誰にも教えることなんて出来ないでしょうけどね。
633 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 11:50:47 ] >>632 同意。そんなのはリアル世界で会社の糞後輩相手に右往左往してやって欲しい。 ここでは逆に純粋に技術話を端的にして欲しいな。
634 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:11:15 ] >>632 そう?だれでも同じレスつけると思うけど? だって無駄じゃん こいつは自分でやってもみねぇで何をもって速くなったと判断するのか? いま、その技術がそこでできるかどうかなんて問題じゃねぇじゃん 直接的に Q1→A1 Q2→A2 ・ ・ ・ ってやることに全く意味を感じない どうせヘルプ見れば載ってるようなのばっかだろ? また、次にとるべき行動が誰の目から見ても明らかなもんとかよ 調べるの面倒だから聞いたとかそんなもんだろ? 現実、会社で一発でもやってしまうとそこで終了な職場もあるから俺はそういうのを技術を通して教えて生きたいと思う 質問する側も勝手にすればいいと思うけど回答つける側だって勝手じゃん? 俺は俺のやり方でやらせてもらうよ
635 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:20:25 ] そういうレスが要らない
636 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:26:10 ] >>635 が次のレスで技術的なことをいいます! ではドゾー↓
637 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:26:43 ] 僕らは卒業までの期間が決まってるんです。 趣味でやってる暇な社会人とは使える時間が違うんです
638 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:32:55 ] そういうレスが要らない
639 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:38:23 ] 会社で技術者のあり方を教えるのに >>621 の口調で教えるんだなお前は
640 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 12:56:38 ] >>639 多少ですます調に変更はあるものの言うね、まちがいなく それでシカトして困るの俺じゃねぇし やる気ないの明らかに相手だし
641 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:15:09 ] 俺は別に心構えとかここで言ってもいいと思ってるけどね 多少ですます調に変わるって言うところが不愉快だ
642 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:36:55 ] まあ落ち着け 突っ込まれてるのは口調だ 内容については誰も突っ込んでない そこがまず食い違ってるぞ
643 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 13:44:47 ] 心構えなら技術のないリタイア組でも口出せるから必死なんだろ。
644 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 15:04:06 ] ああ、なるほど。 技術が無いからこの初心者スレにいるが、教えられないけど偉そうには 言いたいって感じか。
645 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 15:05:00 ] とりあえずおまえらプールにでも行ってこい
646 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 17:00:43 ] むしろ初心者を挫折させたくて仕方がないんだw
647 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:40:49 ] >>645 市民プールなんて排水口にまきこまれそうで怖くていけねーよ
648 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:42:57 ] 幼女発見
649 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:56:38 ] 排水口の中で
650 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 19:42:31 ] 市民プールは若い娘はいない。ロリとババアだけだ
651 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 20:56:49 ] DirectX SDK を October 2003 から、 June 2007に バージョンアップしたところ、 プログラム内で、DirectXで文字を表示する箇所、 DrawText( NULL,str, -1,pRect, DT_LEFT | DT_EXPANDTABS, color); において、 Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. というメッセージが表示されて停止してしまいます。 これは何が問題なのでしょうか? ちなみにDrawTextの行をコメントにするとプログラムは正常に動きます。
652 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 21:37:13 ] >>651 DrawTextの仕様が変わってんだろ?多分 引数に変更があるはずだから探し出せ
653 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 21:54:40 ] DrawTextってGDIか?
654 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:09:09 ] いいえ。DirectXの方です。 LPD3DXFONT pFont; pFont->DrawText として使っています。 >DrawText関数を使う前の、 D3DXCreateFont関数では、S_OKを返していました。 仕様変更をしらべてみます。
655 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:17:06 ] 調べ方わかるか? SDKのサンプルでDrawTextを使ってるもんを調べるんだ
656 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:26:29 ] ある呼び出し規約で宣言された関数を 別の呼び出し規約の関数ポインタで呼び出しちゃったと言ってるんで インクルードフォルダとライブラリフォルダが正しいかとか調べてみては。 昔のインクルードを読んでるのにライブラリが最新のをリンクしてて、矛盾が生じてるとかあるかも
657 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 22:38:03 ] >> 655 656 皆さんありがとうございました。解決しました。 古いSDKのフォルダ(DX90SDK)が残っていたので、削除しました。 (新しいSDKは、Program Filesの中にインストールされていました) そしてリビルドかけたところ、 D3DXCreateFont等がリンクできないというメッセージがでたので、 リンクするライブラリを、d3dx9dt.lib から d3dx9.lib にしたところ、 うまくビルドできました。
658 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 23:05:54 ] 旧SDK全部アンインストールしてもう1回入れなおしたほうがいいな
659 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 07:28:23 ] lib選択してリンクしてるってのがもう怪しいな
660 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 18:07:06 ] 物体の反射を作ろうとしてるんですが xファイルから面の法線ベクトルを取得する方法ってありますでしょうか?
661 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 18:14:00 ] 中のデータを取得するだけ。
662 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 19:48:10 ] >>661 xファイルから取得できるのは点の法線ベクトルだと思います なんとかして面にしたいのですが方法ありますでしょうか?
663 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 19:52:23 ] じゃあ各面について辺の外積を求めれば?
664 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 20:52:01 ] >>663 そういう計算じゃ駄目なんです CGツールでは面の法線ベクトルで指定できるわけですから それを頂点や辺から求めたのでは結果が異なりませんか?
665 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 21:22:23 ] エクスポートされたデータが面の法線を出しているのなら、 面を構成している頂点が面の法線になっているだろう。 頭が弱いのか?
666 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 21:42:25 ] つまり、単なる平均じゃなくて重み付けの計算がやりたいが、具体的に教えろということだ。
667 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 21:57:53 ] 意味不明
668 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:04:33 ] Xファイルには面の法線データは入っていないので、計算じゃだめってんなら、無理です。
669 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:12:14 ] DirectXの方で面法線なんて設定できたっけ?
670 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:13:18 ] あ、1頂点につき面の頂点分持てば可能か・・・
671 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:17:18 ] 意味不明
672 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:20:35 ] モデリングソフト側で面法線を利用してエクスポートしているのなら、 面を構成している頂点の法線が全て共通になるだけの話。 計算も糞もない。 なぜこんな単純なことが分からないのか、それがさっぱり分からない。
673 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:37:56 ] モルダーにでも聞け
674 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:50:40 ] >面を構成している頂点の法線が全て共通になるだけの話。 うそーん? じゃあ点ABCDから、三角形ABC、BCDのポリゴンがあるとしたら BとCの法線ベクトルはABCと同値なの?BCDと同値なの?
675 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 00:24:32 ] ジオメトリシェーダを使えば 面法線も余裕のよっちゃんかしらね。
676 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 00:26:26 ] そういや法線の求め方に「正解」ってのは見たことねぇな。 たいがいは頂点の属する面の法線を足し合わせるだけだろうけど、 (足し合わせる前に法線正規化するorしない派がある) 面の向きに依存しないように頂点の角度を考慮に入れたりする場合もある。 この時点でツールによって実装バラバラなのに、ここから面をスムースにする 角度指定なんか入るとさぁ大変。 ぶっちゃけxファイルからツールの法線を完全に再現したいんなら(質問読み違えてる?) ツールのSDK等でソースが公開されていることを祈るしかねぇんじゃないの?
677 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 00:40:18 ] 自分はツールにはあまり詳しくないんだが「頂点の角度」ってなんじゃらほい?? それはさておき、ツールで指定した面法線の値に依存するような 反射を作りたいんなら、そもそもX形式でやることがアレかも? そのツールからX形式にするときに、求める情報が失われているかどうか 電卓とかで調べて、ダメなら結局自前でエクスポーターとか書くしかないんじゃね?
678 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 06:23:20 ] >>674 その場合ってBとCの頂点は法線を2つもつためにBとCの頂点がそれぞれ2つになるんじゃね? ΔABCと△BCDのBCは別の頂点になるんじゃね?っつこと
679 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 08:27:09 ] Xファイルのフォーマットの仕様では法線のベクトル配列とインデックス配列は頂点座標のそれらとは独立しているので、 頂点4つに対して法線を6つ用意して法線を共有しない三角形を2つ作るといったことも記述できるよ。 msdn2.microsoft.com/en-us/library/bb147193.aspx ただ、そのような変則的な書き方を利用するかどうかはCGツールのエクスポータ次第だけどね。
680 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 09:16:48 ] Xファイルで面法線を記述する例 (頂点座標4個、法線ベクトル2個、三角形2個) ------------------------------ xof 0302txt 0032 Mesh { 4; -1.0;0.0;0.0;, 1.0;0.0;0.0;; 0.0;-1.0;1.0;, 0.0;1.0;1.0;, 2; 3;0,1,2;, 3;1,0,3;; MeshNormals { 2; 0.0;-0.7071;-0.7071;, 0.0;0.7071;-0.7071;, 2; 3;0,0,0;, 3;1,1,1;; } } ------------------------------ DirectX Viewerではこれで期待通りに動作した。
681 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 10:00:42 ] だからモデリング時に面法線を使用した場合、エクスポートした時点でデータが入っているんだから、 これ以上グダグダ言っても始まらないだろ。 入っている物をそのまま使えばいいだけ。 逆に頂点ごとに法線が異なる場合は、モデリング時の指定かエクスポートの仕方が悪い。 結局データを読み込む段階に対処すべき話ではない。
682 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 00:19:30 ] 面法線を設定したって表示は頂点法線なんだべ? なんか勝手に反映されてるような気がしないでもないけどねw されてねぇんかな?