《Unity3D 實戰核心技術詳解》書中關於矩陣的錯誤

最近一直在學習實時渲染,難免要接觸線性代數。而渲染中,必定會用到矩陣,當我再次去複習我以前看的書時,發現《Unity3D 實戰核心技術詳解》關於矩陣就有幾處錯誤 ,特標註出來。html

 

書的第一章《3D數學與Unity》,1.3.2講矩陣縮放、1.3.3講矩陣的旋轉。縮放是一個矩陣,後面旋轉針對繞三個不一樣的軸的旋轉矩陣(x、y、z),總共4個矩陣,其中3個是錯誤的,只有一個繞y軸旋轉是正確的。我不肯定是印刷問題,仍是做者自己對矩陣瞭解和掌握的就不深刻,但出現這樣的低級錯誤實屬不應。程序員

我直接上圖片,否則口說無憑。算法

如第一張圖所示,若是縮放的矩陣如書中所注,那麼x’= x·Sx + y 而不是指望的 x.Sx,同理繞x軸旋轉,那麼x軸的座標應當是不動的,也就是除了第一列的第一個爲1外,其他應該爲0,而第二行竟然出現了1,那x’= x + y了,這根本就不是旋轉了啊 悲傷,繞z軸旋轉的就更離譜了…架構

 

好了,矩陣確實麻煩,但它倒是理解和學習3D必不可少的知識。若是判斷一個矩陣是否正確呢?這裏我推薦《程序員的數學3 —— 線性代數》這本書中的一個方法,以下圖所示。ide

456204068710673664

注意看畫線的部分,我正是掌握了書中這個簡單的方法,再去看有「錯誤」的那本書的矩陣時,一眼就發現矩陣是錯的。但願這個小技巧和方法能幫助到你:工具

將輸入的列向量放倒,而後將對應的元素分別相乘。學習

 

再額外補充一句,我以前也看孟巖在CSDN上寫的那三篇《理解矩陣》,裏面說起的書有:動畫

《數學:它的內容、方法和意義》 視頻

《線性代數五講》 htm

《數學概觀》

《數學拾遺》

《重溫微積分》

《計算機圖形學 —— 幾何工具算法詳解》

 

由於做者非數學系的專業人士,因此它的描述可能存在不許確的地方,但那是他本身的理解,能幫助到不理解矩陣的人,我以爲也是頗有價值的。畢竟大部分人只是須要瞭解矩陣究竟是什麼東東,好奇爲何要用矩陣呢,至於矩陣更深層次的研究可能就不是那麼在乎了。科普有科普的做用,專業有專業的必要。

 

其實我以爲關於矩陣,看維基百科上的定義已經寫的很清晰、明瞭了,仔細研究透,也就有個大概的瞭解了。連接地址  https://zh.wikipedia.org/wiki/矩陣 

那矩陣究竟是什麼,以我目前的理解和認知,矩陣就是映射,矩陣就是映射,矩陣就是映射(重要的事情說三遍!)

 

這裏推薦幾個我以爲很是好的視頻給你們,更直觀,進一步下降學習門檻。

【官方雙語/合集】線性代數的本質 - 系列合集(用直觀的動畫、簡潔的語言來說述線性代碼,你值得觀看!)

https://www.bilibili.com/video/av6731067/index_1.html

 

麻省理工公開課:線性代數
http://open.163.com/special/opencourse/daishu.html

 

Introduction to Linear Algebra, Fifth Edition(2016) —— 線性代數教程評價最高的書,沒有之一
http://math.mit.edu/~gs/linearalgebra/

 

Linear Algebra Done Wrong (Sergei Treil)
https://www.math.brown.edu/~treil/papers/LADW/LADW.html

 

陶哲軒在UCLA的linear algebra講義 (經過阮一峯的博客瞭解到,他是40歲如下最聰明的美國科學家,24歲便被聘爲正教授)
http://www.math.ucla.edu/~tao/resource/general/115a.3.02f/

 

最後扯點題外話,買書儘可能買豆瓣上評價高的或者官方出品的(有口碑和品質保障),否則反而被誤導了,讀書有風險,吸取需謹慎(也能夠說盡信書不如無書)。

這裏我推薦一本書:《遊戲引擎架構》,寫書的做者自己的品質有保障,譯者的水平也是槓槓的。

 

雖然我指出書中關於矩陣部分的三個錯誤(點積那部分不知道是印刷錯誤仍是什麼緣由,存在錯誤),但本書其它章節依舊值得去閱讀,給出的代碼也並不算複雜,畢竟做者長期奮戰在一線,網上也有不少他錄製的視頻。更可能是吸取他實戰的經驗,理論部分我建議泛泛看一看,再找本更專業(評價更高)的書去查閱,這本書的理論寫的並很差。

相關文章
相關標籤/搜索