[WebGL入門]十,矩陣計算和外部庫

lufy發表於2014-08-04

注:文章譯自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的額外說明,我會加上[lufy:],另外,鄙人webgl研究還不夠深入,一些專業詞語,如果翻譯有誤,歡迎大家指正。


重要的使用方法

矩陣的計算方法,也不是什麼特別奇怪複雜的東西,如果數學好好學習的話,沒有基礎也可以進行基本的矩陣計算。但是,如果不知道矩陣的加法和乘法運算的話,要進行稍微複雜一些的矩陣計算是非常難的。
DirectX也好,OpenGL也好,事實上,如果你不能掌握矩陣的使用的話,程式設計會變得非常難的。但是,也不是說,必須把矩陣的每一個角落都掌握。
重要的是,矩陣的使用方法,並不是詳細的計算方法。特別是在3D開發中,矩陣能夠做什麼,通過什麼運算能得到什麼樣的結果,主要是掌握矩陣的使用方法,這一點很重要。
如果在一定程度上理解了矩陣的使用方法,在實際開發中遇到了什麼問題,就可以知道如何去查詢原因了。然後,就可以進一步提高了。所以,不用一下子全部理解,首先掌握矩陣的處理流程和用途就可以了。


熟練使用外部庫

DirectX和OpenGL中,內建了許多矩陣相關的處理,即使不使用外部庫也可以進行矩陣計算。
但是,WebGL中這些矩陣相關的計算是沒有的,可能為了簡化吧,當然,不是說沒有辦法了,而是,矩陣相關的一切計算,都需要自己來處理。
話雖如此,但是WebGL中的矩陣計算還是一個很大的問題。數學好的人當然是沒有問題了,但是對於其他人數學不太好的人就太困難了。
但是,不用怕,有很多使用javascript寫的矩陣計算的外部庫,使用這些外部庫的話,就算自己不會矩陣計算,也可以進行矩陣相關的處理,下面是其中的幾個。

glMatrix

http://code.google.com/p/glmatrix/

mjs

http://code.google.com/p/webgl-mjs/

Sylvester

http://sylvester.jcoglan.com/

closure

http://code.google.com/p/closure-library/

TDL

http://code.google.com/p/threedlibrary/

使用矩陣計算的外部庫的時候,只需要掌握了這些庫的使用方法,就可以進行矩陣計算了,但是要掌握這些庫的使用方法可能也是件不容易的事吧。
在本網站,使用的是自己開發的minMatrix.js庫,這個js檔案裡,只包含了矩陣的基本計算,並不是特別完善,所以大家可以完全免費使用,商用也可以,沒有什麼特別的限制要求。
以後,本網站中的程式碼和案例等,都是使用這個minMatrix.js庫為前提的來解說的。這個庫的連線會在本篇文章的最下面給出,大家可以自由下載使用。
另外,這個minMatrix.js檔案中關於矩陣的計算,參考了其他的網頁和glMatrix的內容,非常感謝各個網頁作者和glMatrix的作者Brandon Jones(Brandon Jones的部落格 ->TojiCode


總結

從長遠來看,真正進行非常複雜的處理時,矩陣的知識還是不能缺少的。但是,要提前把這些都理解是很苦難的。所以,先熟練使用外部庫,等能夠熟練進行3D開發之後,再逐步瞭解這些知識是比較理想的。
使用外部庫的時候,也可能存在平臺問題,必須邊理解外部庫的特徵邊使用,並不是說完全沒有問題。本網站使用的庫是管理人(lufy:這裡說的管理人就是作者本人)自己的庫,會盡可能減低使用的門檻。


下次開始,使用minMatrix.js來表示一個多邊形。另外minMatrix.js的下載連線如下。

wgld.org開發的矩陣計算的庫minMatrix.js

http://wgld.org/j/minMatrix.js


轉載請註明:轉自lufy_legend的部落格http://blog.csdn.net/lufy_legend

相關文章