2012-03-18 13 views
1

imaはブレンダーから.objファイルにエクスポートされたノーマルとちょっと混乱しています 私は、objファイルを2つのファイルに分割するために1つの頂点ともう1つのインデックスを使用しています。する。 私は顔で見るように、同じ顔を見つけることができますが、普通の普通とは異なります たとえば顔24/24/20、再び24/24/19そして多分 これは正しいですか? はブレンダープロジェクトでのみ1光源がある おかげ頂点当たり1つ以上のノーマル

答えて

3

私はいくつかのテストを行い、ここで私はこれらを参照してください方法は次のとおりです。

OBJエクスポートスクリプトが頂点法線を無視し、代わりに顔の法線を使用しています。

enter image description here

およびOBJにエクスポート:

は、私は、この画像のように2つの三角形からなる単純な形状を作っテストします。 4つのベクトルがあるので、4つのベクトル法線(vn)が必要です。中央の2つのベクトルが同じであるため、opimizedの場合は3つです。しかし、その代わりに、それは唯一の2 VN-Sをouputs:1 // 4 // fを

:あなたは顔の定義を見れば

vn -0.000000 1.000000 0.000000 
vn -1.000000 -0.000000 -0.000000 

いただきましたより、あなたはもっと面白いものを見つけることができます 3 //

F 4 // 2 // 3 //

//の後の数字を1行で調べます。彼らは同じです。これは、ある面内のすべての頂点が同じ法線を使用することを意味します。つまり、これらは頂点の法線ではなく、面の法線です。だから、同じ頂点に異なる法線を割り当てるのはこのためです。頂点番号。 4は第1の面が第1の面の法線を受け取るように定義され、第2の面を定義するために使用されるときは第2の面の法線が使用される。

EDIT あなたはこのように、これらの頂点法線を計算することができます。

  • は、頂点のすべての出現を検索し、
  • は、それぞれの座標を追加セットにそれの法線のすべてを取得法線ベクトル: vn =(x1 + x2 + ... + xn、y1 + y2 + ... + yn、z1 + z2 + ... + zn)
  • ベクトル長さを計算する:h = sqrt + vny^2 + vnz^2)
  • ノーマル

私の前の例(画像上に見つかったもの)を使用すると、上および下のベクトルは一度だけ発生するため、何もする必要はありません(頂点の法線は顔の法線と同じです)。中央の頂点では、頂点が頂点の三角形の頂点の2倍になり、法線が(0,1,0)で底辺が(-1,0,0)であるため、これらの頂点の垂線のセットは{ (0,1,0)、(-1,0,0)}である。これらを追加すると、(0 - 1,1 + 0,0 + 0)=(-1,1,0)となります。長さの計算:h = sqrt(( - 1)^ 2 + 1^2)= sqrt(2)。ベクトルをそれに分割すると、norm(vn)= vn/h =(-1/sqrt(2)、1/sqrt(2)、0)が得られます。正面正方形(左上)の中間の法線上の画像を見ると、ベクトルの長さが1であるのに対し、-xとa + yの等しい成分があることがわかります。結果に長さがあることがわかります1/2 + 1/2 + 0 = 1です。長さ1を得るために正規化しなければならなかった理由です。

+0

ありがとうございます返信SinistraD。それはミキサーからの法線を輸出して使用するのに役に立たず、私たちは自分のものを作る必要があるということですか? – DavinCode

+0

面の法線を使って頂点の法線を計算できます。更新された答え:追加された手順と例。 – SinistraD

+0

ご意見ありがとうございます。彼らは本当に非常に便利です。 – DavinCode

1

@SinistraDご意見ありがとうございます。彼らは本当に非常に便利です。ブレンダーから頂点法線をエクスポートする方法を見つけようとしたところ、オブジェクトツール>シェーディング>スムージングまたはフラットにオプションがあることがわかりました。スムーズを選択してオブジェクトをobjファイルとしてエクスポートすると、法線は頂点ごとになりますが、まだ私のプロジェクト(私は今シェーダを構築しています)で試してみます。この方法でエクスポートされたキューブの例を参照してください。

ブレンダーv2.61(サブ0)OBJファイル: ''

www.blender.org

V 11.209502 -11.209502 -11.209501
V 11.209502 11.209502 -11.209502
V -11.209503 -11.209502 11.209500
V -11.209498 -11.209502 -11.209506
V 11.209508 11.209502 -11.209496
V 11.209495 11.209502 11.209509
V -11.209506 11.2095 02 11.209498
V -11.209501 11.209502 -11.209502
VT 0.652335 0.642748
VT 0.653298 0.956858
VT 0.339188 0.957821
VT 0.338225 0.643711
VT 0.968372 0.643711
VT 0.967408 0.957821
VT 0.654262 0.642748
VT 0.967408 0.327674
vt 0.968372 0.641784
vt 0.653298 0.328638
vt 0.339188 0.642748
VT 0.338225 0.328638
VT 0.652335 0.327674
VT 0.653298 0.641784
VT 0.337261 0.642748

0.643711 0.023151 VT
0.957821 0.024115 VT
0.956858 0.338225 VT VT 0.337261 0.327674
VT 0.338225 0.641784
VT 0.024115 0.642748
vt 0.023151 0.328638
vn 0.577349 -0.577349 -0.57 7349
0.577349 -0.577349 0.577349
VN VN -0.577349 -0.577349 0.577349
VN -0.577349 -0.577349 -0.577349
VN 0.577349 0.577349 -0.577349
VN -0.577349 0.577349 -0.577349
VN -0.577349 0.577349 0.577349
VN 0.577349 0.577349 0。577349
s1
f 1/1/1 2/2/2 3/3/3 4/4/4
f5/5/5/8/6/8
f 1/8/1 5/9/5 6/7/8 2/10/2
f2/11/2 6/12/8 7/13/7 3/14/3
f 3/15/3 7/16/7 8/17/6 4/18/4
f 5/19/5 1/20/1 4/21/4 8/22/6

+0

知って良いこと、これを見つける良い仕事 – SinistraD

関連する問題