- 1 名前:デフォルトの名無しさん [2007/06/21(木) 00:03:46 ]
- ※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。
- 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 されてねぇんかな?
|

|