国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

法線變換的推算

2023-02-15 15:17 作者:海豹_Chili  | 我要投稿

之前一直不是很理解《unity shader入門精要》中的法線變化,網(wǎng)上查也不是很明白這里做一個(gè)所以自己就之前照著書中的公式做了一個(gè)推導(dǎo)過程。

Unity的空間轉(zhuǎn)換都是對(duì)坐標(biāo)/方向做3種和變換矩陣的矩陣乘法操作分別是位置偏移,旋轉(zhuǎn)和縮小 。法線是一個(gè)方向所以位置偏移對(duì)它沒有作用。

接下來我會(huì)二維坐標(biāo)系中演示一個(gè)坐標(biāo)為(0,0),(0,1),(1,0)的三角形并且在(0.5,0.5)上面畫法線來測(cè)試旋轉(zhuǎn)和縮小是否會(huì)對(duì)法線進(jìn)行影響

如圖所示在這個(gè)二維坐標(biāo)系當(dāng)中藍(lán)色代表圖形,紅色代表法線而綠色代表切線
(0,0)為圓心乘以了一個(gè)旋轉(zhuǎn)矩陣法線法線是不變的
當(dāng)放大一倍后法線的方向上還是正確的
而當(dāng)只有y軸放大(縮放)2倍時(shí)法線不再垂直平面,而切線由于是頂點(diǎn)之前差值計(jì)算得到所以可以直接依賴變換矩陣所以是正確的

參考《Unity Shader入門精要》的方法,先假設(shè)一個(gè)變換矩陣(G)來變化空間A的法線(NA)到b空間,而空間B的切線(TB)等于用于空間變換的矩陣(MA->B)乘以TA(空間A的切線),由于法線和切線不同空間下都垂直得出公式可得:

進(jìn)一步推導(dǎo)后可得

接下來我們來逐步分析這些公式:

第一步:

點(diǎn)積操作能變成轉(zhuǎn)置矩陣相乘是因?yàn)橐粋€(gè)1*n的矩陣乘以n*1的矩陣的矩陣和點(diǎn)積的計(jì)算方法都是相同的

第二步

這里依賴轉(zhuǎn)置矩陣的性質(zhì)

書中轉(zhuǎn)置矩陣篇章截圖

第三步

依賴矩陣的性質(zhì)滿足結(jié)合律不滿足交換律

書中矩陣相乘篇章

最后

TA的倒置矩陣乘以NA等于TA和NA的點(diǎn)積(和第一步性質(zhì)相同)等于0.

而只有單位矩陣不影響這個(gè)公式

MTA->BG=I(單位矩陣)

因此

G等于M的逆轉(zhuǎn)置矩陣


法線變換的推算的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
嵊泗县| 达州市| 桐柏县| 南漳县| 施秉县| 阿拉善右旗| 武功县| 万全县| 通州市| 高安市| 盐源县| 上饶县| 芦山县| 胶南市| 乐昌市| 开江县| 兴化市| 平原县| 红原县| 蛟河市| 嘉鱼县| 东至县| 靖西县| 辽阳市| 思南县| 绥宁县| 定远县| 吴桥县| 子洲县| 马龙县| 长治县| 永德县| 商城县| 宁德市| 开江县| 白银市| 隆化县| 大丰市| 泗阳县| 洞头县| 蕲春县|