注:文章譯自http://wgld.org/,原做者杉本雅広(doxas),文章中假設有個人額外說明,我會加上[lufy:],另外,鄙人webgl研究還不夠深刻,一些專業詞語,假設翻譯有誤,歡迎你們指正。javascript
矩陣的計算方法,也不是什麼特別奇怪複雜的東西,假設數學好好學習的話,沒有基礎也可以進行主要的矩陣計算。但是,假設不知道矩陣的加法和乘法運算的話,要進行略微複雜一些的矩陣計算是很是難的。
DirectX也好,OpenGL也好,其實,假設你不能掌握矩陣的使用的話,編程會變得很是難的。但是,也不是說,必須把矩陣的每一個角落都掌握。
重要的是,矩陣的用法,並不是具體的計算方法。特別是在3D開發中,矩陣可以作什麼,經過什麼運算能獲得什麼樣的結果,主要是掌握矩陣的用法,這一點很是重要。
假設在必定程度上理解了矩陣的用法,在實際開發中遇到了什麼問題,就可以知道怎樣去查找緣由了。而後,就可以進一步提升了。因此,不用一會兒全部理解,首先掌握矩陣的處理流程和用途就可以了。java
DirectX和OpenGL中,內置了不少矩陣相關的處理,即便不使用外部庫也可以進行矩陣計算。
但是,WebGL中這些矩陣相關的計算是沒有的,可能爲了簡化吧,固然,不是說沒有辦法了,而是,矩陣相關的一切計算,都需要本身來處理。
話雖如此,但是WebGL中的矩陣計算仍是一個很是大的問題。數學好的人固然是沒有問題了,但是對於其它人數學不太好的人就太困難了。
但是,不用怕,有很是多使用javascript寫的矩陣計算的外部庫,使用這些外部庫的話,就算本身不會矩陣計算,也可以進行矩陣相關的處理,如下是當中的幾個。
web
glMatrix
編程
http://code.google.com/p/glmatrix/
學習
mjs
webgl
http://code.google.com/p/webgl-mjs/
google
Sylvester
spa
http://sylvester.jcoglan.com/
.net
closure
翻譯
http://code.google.com/p/closure-library/
TDL
http://code.google.com/p/threedlibrary/
使用矩陣計算的外部庫的時候,僅僅需要掌握了這些庫的用法,就可以進行矩陣計算了,但是要掌握這些庫的用法可能也是件不easy的事吧。
在本站點,使用的是本身開發的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