以及我不使用紋理座標礦TBN矩陣計算
你的名字混淆了,所以讓我重寫三角3D點p0,p1,p2
。您需要TBN矩陣T,B,N
(切線,副法線,正常)
正常
法線垂直於三角面,所以你在三角形頂點的叉積得到它:
N=(p1-p0)x(p2-p0)
方向取決於你的需求,所以你也可以使用這個 N =(p2-p0)x(p1-p0) 這是第Ë僅載體,其是直線前進
切線,副法線
都位於三角形表面平面和應與網的其餘部分相容。這很棘手,取決於網格幾何。如果您已生成幾何圖形(如球體,...),則可以將初始方向矢量設置爲某個軸。從這很容易只使用交叉產品。例如,圍繞Z軸的旋轉幾何: T =(0.0,0.0,1。0)×N個 乙= N×T的 也在這裏是方向依賴於你的需要,所以你可以使用反向橫操作數命令
如果不計算TBN爲整個幾何兼容,那麼你將得到照明工件
有時整個網狀使用扭曲單整個矩形紋理像例如在該橢球頭:
只有在這種情況下,紋理座標才表示正切和副法線空間座標,只有這樣您纔可以使用它們來獲取T,B
。我不使用這種方法,所以我會用你的方程。
讓t0,t1,t2
成爲你三角形的2D紋理座標(相對於點p0,p1,p2
):
(p1-p0) = (t1-t0).s * T + (t1-t0).t * B
(p2-p0) = (t2-t0).s * T + (t2-t0).t * B
這是線性方程的系統(6個未知數6個方程),以便解決它,並計算T,B
(切線,副法線)。看這裏How to calculate Tangent and Binormal?。解決方案也在那裏(使用與你使用的相同的字母)
這個問題似乎是脫離主題,因爲它不是關於編程。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[數學堆棧交換](http://math.stackexchange.com/)會是一個更好的地方。 – jww 2014-09-06 12:02:29
我的歉意。我認爲這個問題是關於編程的,因爲它涉及到3D圖形和照明。 – 2014-09-06 18:25:18
請問爲什麼這個作爲一個副本被擱置。我實際上是在使用另一個問題作爲參考,但需要澄清它的細節。 (困惑於如何解決T和U,這是在另一個涵蓋但不是我理解的方式)。 – 2014-09-06 18:28:44