亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Normal Transformation(法線變換)

2019-11-10 17:56:01
字體:
來源:轉載
供稿:網友

轉載自:http://blog.csdn.net/bugrunner/article/details/7285356

法向量只有方向沒有大小,平移變換不會改變法向量,旋轉變換M^-1^T逆的轉置還是本身,均勻縮放變換也不會改變法向量,所以一般游戲中應用的變換可以直接作用于法向量變換,如果存在不均等的縮放變換,那么對法向量進行MV變換會得到不正確的結果,這個時候就要對法向量進行M^-1^T逆變換,推導見如下,或者在變換后重新計算法向量。

計算光照前需要對法向量進行單位化。

1).如果一開始就是單位向量,后面只是進行平移和旋轉,那么法向量不需要重新計算,也不需要重新規范化,固定管線會對頂點法向量進行變換。

2).glEnable(GL_RESCALE_NORMAL) 對于開始有規范化的法向量,其中進行了均勻縮放的,那么需用GL_RESCALE_NORMAL重新規范化法向量,會比GL_NORMALIZE更快。如果是單位化了的法線向量(例如3ds max中導出的法線貼圖),那么模型均勻縮放后,可以用GL_RESCALE_NORMAL重新規范化法向量。

3).glEnable(GL_NORMALIZE) 對于開始沒有規范化的法向量,或者網格進行了非均勻縮放,那么需要重新程序員手動計算法向量的值(不要輕易非均勻縮放),且要進行GL_NORMALIZE規范化法向量。

自己編寫的Shader中,需要注意法向量的變換處理。

關于三維空間法線變換的問題,之前就有看到過,但是一直也木有注意,普通的三維空間中的法線變換還是直接使用模型的變換矩陣來進行。但是,近來又看到了一些這方面相關的東西,因而總結一下。

已經知道不能直接用模型變換矩陣來變換Normal,比如使用某含有非一致性縮放(在x,y,z方向上進行不程度的拉伸)的變換矩陣來變換一球體,則可能得到如下列圖示的結果:

  

左圖為原始球體及其表面上的法向分布(2D投影后);中間為直接使用變換矩陣操作后的法向分布,但注意其明顯與表面不垂直;右圖為正確變換后的法向分布。為什么直接變換不正確呢?網上有多種說明版本,但是對比了一下感覺還是PBRT上的解釋比較好一些。這里假設某一點處的法向量為n,切向量為t,由兩者在曲面上的垂直關系可知:

如果對于模型進行空間變換的矩陣為M,變換后在該點得到的新的切向量為,那么可得(這里假設切向量并不是由變換矩陣計算得到的,而是直接通過對模型表面進行幾何分析計算得到的);變換后在該點得到新的法向量為,若是得到的正確法向量,則其必定仍然與切向量垂直。假設正確變換得到的法向量是在變換矩陣S下進行的,那么有,由法、切的垂直關系得:

在上式的最后階段中可以看出,如果要滿足成立條件則有,直接變換即可得,所以也就有:

這里就得到了通常我們所說的采用逆的轉置矩陣來代替原始變換矩陣來對法向量進行操作。上述推導中使用的一個依據是切向量與法向量之間的垂直關系,其實這是建立在另外一個基礎上,那就是:切向量的計算一般是直接使用頂點與UV來進行,這樣的話它就是直接與頂點相關,因而只要直接使用變換矩陣得到的頂點正確那么在此基礎上計算而來的切向量也就正確,但是法向量卻不是直接通過頂點計算、而是通過變換得到的(當然,如果Normal 也在網格頂點變換之后直接計算,而不是對原始的法向量用變換矩陣作空間變換的話就不會存在這一問題了)

另外,在實際操作中對于變換矩陣(一般為4x4的)并不一定可逆(比如一個由3D到2D的投影矩陣),因而上述S就沒法計算,這種情況下更安全的一種方法是只使用原始4x4變換矩陣的左上角3x3矩陣,即不考慮平移部分,其實這也理所當然,平移操作本就不影響法向量。這一部分在Realtime Rendering中也有稍詳細的說明。

當然,使用逆的轉置來進行Normal變換只是正確方法的一種,不過也有其它的方法,比如從一個變換矩陣中只抽取出Rotation的部分來施加到Normal上,這樣就免去了Translation和Scale的影響。矩陣的R, T, S分解也有很多經典的方法,可以參考一個這個帖子:http://www.gamedev.net/topic/441695-transform-matrix-decomposition/(雖然這種方法的效率與復雜度需要另外討論,但畢竟也是一個途徑)

不過一般情況下,我們對于場景中三維模型的變換基本上都是進行三向一致的縮放操作,這樣的話M就是一個正交的矩陣,如此一來就有S等于M,因而直接使用M對法向量作變換也不會有什么問題出現(或者有差別也被忽略了^_*)。不過任意的縮放變換是建模工具的一個基本需求,因而在做工具時需要重視這一問題。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97国产真实伦对白精彩视频8| 国产精品xxx视频| 欧美激情精品久久久久久大尺度| 91美女片黄在线观看游戏| 欧美性视频网站| 亚洲精品98久久久久久中文字幕| 欧美一区二区视频97| 色一情一乱一区二区| 色偷偷9999www| 97久久伊人激情网| 最近2019年日本中文免费字幕| 欧美电影在线播放| 国产欧美日韩精品在线观看| 欧美午夜久久久| 国产精品久久二区| 久久视频在线观看免费| 国产精品露脸av在线| 成人欧美在线视频| 亚洲电影免费观看| 欧美成人激情在线| 日韩精品视频在线观看网址| 黑人巨大精品欧美一区二区免费| 国产精品h在线观看| 欧美影院在线播放| www.美女亚洲精品| 亚洲视频电影图片偷拍一区| 国产精品r级在线| 久久精品国产96久久久香蕉| 中文字幕日韩精品在线| 影音先锋欧美精品| 三级精品视频久久久久| 久久全球大尺度高清视频| 亚洲tv在线观看| 国产精自产拍久久久久久蜜| 久久久中精品2020中文| 久久91精品国产| 欧美日韩另类字幕中文| 日韩在线视频观看| 亚洲精品久久久久国产| 日本亚洲精品在线观看| 在线日韩第一页| 97人洗澡人人免费公开视频碰碰碰| 亚洲欧美日韩中文在线制服| 97视频免费在线观看| 欧美亚洲一区在线| 综合136福利视频在线| 亚洲美女自拍视频| 激情懂色av一区av二区av| 亚洲国产91精品在线观看| 亚洲热线99精品视频| 伊人伊成久久人综合网站| 九九久久久久99精品| 国产视频精品久久久| 国产精品福利久久久| 日韩视频第一页| 操人视频在线观看欧美| 色综合视频网站| www.日韩免费| 亚洲精品一二区| 国产日韩综合一区二区性色av| 精品中文字幕久久久久久| 精品日本美女福利在线观看| 欧美极品少妇xxxxⅹ喷水| 亚洲肉体裸体xxxx137| 亚洲成人av在线| 欧美在线激情视频| 中文欧美在线视频| 26uuu另类亚洲欧美日本一| 国产欧美在线看| 中文字幕日韩欧美在线视频| 亚洲天堂成人在线| 亚洲男人天堂2019| 国产国产精品人在线视| 国产精品久久婷婷六月丁香| 国产精品吹潮在线观看| 成人激情在线播放| 国产一区二区三区在线视频| 亚洲欧美制服综合另类| 日韩中文字幕久久| 欧美精品一区二区三区国产精品| 综合激情国产一区| 欧美老少配视频| 中文字幕亚洲一区二区三区五十路| 91精品久久久久久久久久久| 精品爽片免费看久久| 亚洲欧美制服丝袜| 欧美多人乱p欧美4p久久| 欧美精品videosex性欧美| 欧美精品videos另类日本| 欧美黑人性猛交| 日韩一区二区三区国产| 国内精品久久久久伊人av| 久久免费视频观看| 欧美色图在线视频| 中文字幕一区日韩电影| 精品女同一区二区三区在线播放| 成人激情在线观看| 国产美女精品视频免费观看| 日本精品中文字幕| 久久久久www| 欧美视频二区36p| 久久亚洲国产精品| 欧美电影免费观看电视剧大全| 91日本视频在线| www.日韩不卡电影av| 国产精品九九九| 亚洲午夜精品视频| 97视频在线观看视频免费视频| 久久全国免费视频| 国产亚洲一区二区在线| 国产精品网红直播| 亚洲国产免费av| 亚洲一区二区在线| 国产在线播放91| 在线视频亚洲欧美| 国产精品免费视频久久久| 欧美亚洲另类制服自拍| 国产成人小视频在线观看| 国产成人精品久久亚洲高清不卡| 成人激情av在线| 91福利视频在线观看| 久久人人爽人人爽人人片av高清| 国产精品视频在线播放| 国产午夜精品美女视频明星a级| 91成人在线视频| 日韩在线资源网| 欧美美最猛性xxxxxx| 国产精品久久久久久搜索| 亚洲福利精品在线| 亚洲欧美视频在线| 久久电影一区二区| 另类色图亚洲色图| 欧美视频免费在线观看| 欧美另类第一页| 久久久久成人网| 欧美视频中文在线看| 欧美性猛交xxxx黑人猛交| 免费99精品国产自在在线| 91久久久久久久| 亚洲欧美福利视频| 亚洲精品日韩久久久| 亚洲视频第一页| 日韩精品在线视频美女| 福利视频导航一区| 国内精品国产三级国产在线专| 精品偷拍一区二区三区在线看| 日本中文字幕久久看| 在线观看免费高清视频97| 亚洲精品国产成人| 亚洲一二三在线| 精品丝袜一区二区三区| 国产999精品久久久影片官网| 亚洲福利在线播放| 亚洲国产成人久久综合一区| 亚洲福利影片在线| 最近2019年日本中文免费字幕| 日韩精品日韩在线观看| 亚洲а∨天堂久久精品9966| 久久久久久国产| 国产亚洲视频在线| 亚洲精品一区二三区不卡| 日韩av在线播放资源| 国产色综合天天综合网| 91麻豆国产精品|