作者:星隕
來源:
音視訊開發進階關于學習方式
在分享資源之前,簡單地聊聊學習的方式。
有句名言說的好:
書籍的人類進步的階梯
在需要解決一些未知領域的問題、完成一些未知領域的需求時,是必須要去學習一些新東西的。
而在學習這些新東西時,不要太依賴于搜尋引擎了,不然隻是當下解決了某些問題、完成了某些需求。
通過看一些部落格文章、看一些文章分析,在某些時刻确實是很有幫助的,但總是會存在一些碎片化知識,沒有系統地形成知識網絡,此時掌握的僅僅是技巧。還是要通過系統地去學習某些知識内容,在腦海裡面有個完整的知識體系。
這個簡單的道理大家都懂,就不多說了~
簡單上手
作為程式員學習一項内容,最重要的就是 Hello World 了。
《OpenGL ES 應用開發實踐指南》

這本書比較通俗易懂,直接上手使用 OpenGL ES,可以說是手把手教學了。
作為初學者,最重要的是啥?環境配置、Demo 運作呀~~~
在 《OpenGL ES 應用開發實踐指南》裡面,跟着書中的章節順序走,每一章都會有代碼示例,也算是一步步引導了。
你可以暫時不求甚解,先把示例工程運作起來,等熟練了再去深究原理。
美中不足的是,這本書針對的 OpenGL ES 版本是 2.0 的,在 OpenGL ES 3.x 中的一些特性無法體驗到了,而且現在的手機大多支援 OpenGL ES 3.x 版本了,不過要是考慮到相容低版本的情況,還是可以使用 OpenGL ES 2.0 版本的。
這本書是翻譯過來的,它的英文原版封面如下:
簡單上手了 OpenGL ES 2.0 之後,該了解一下 OpenGL Shading Language (GLSL)了。
GLSL 就是着色器腳本語言,這個語言是用來給 GPU 運作的,靈活地使用它才能更好地掌握 OpenGL ES,要知道現在手機相機上的一些濾鏡效果都是通過 GLSL 來實作的哦。
《OpenGL® Shading Language, Second Edition》
這本書是英文版的,講解了 GLSL 的一些文法,基于的版本是 OpenGL ES 2.0 的,正好和前面的書籍配套學習了,而且英文難度不大,易懂。
該書中同樣有很多例子可以實踐,比如光照、陰影、噪音等。
通過這兩本書的配套練習,可以掌握 OpenGL ES 2.x 版本的基本内容了。
當然了,除此之外,你還需要更多的練習。
可以參考這本書,獲得更多打怪晉級的經驗:
《Android 3D 遊戲開發技術寶典》
《Android 3D 遊戲開發技術寶典》一書中有很多可以在實踐中用到的内容,具體内容就等大家自行探索了~~~
高階版本
當然了,學會了 OpenGL ES 2.0 再去看 OpenGL ES 3.x 就容易多了。
這兩者在 GLSL 上是有一些變化的,另外 OpenGL ES 3.x 支援的渲染效果更好,而且支援的特性更多。
關于 OpenGL ES 3.x 版本的學習,有如下書籍推薦:
OpenGL ES 3.x 遊戲開發
OpenGL ES 3.0 程式設計指南
在 Android 後續系統版本中,都開始使用 Vulkan 來替代 OpenGL 了。
等掌握了 OpenGL ES 之後,下一個就是 Vulkan 了~~~
另外關于書籍推薦,其實大家可以到京東或者當當上搜尋一下關鍵字就知道了,目前市面上關于 OpenGL ES 的書籍也不多,搜來搜去也就是那幾本書啦~~~對于其他領域的書籍情況類似…
深入了解
當你已經掌握了 OpenGL ES 的大部分内容,并且可以簡單的運用他們了,這時候再想去深入了解它們,那就必須要說到 OpenGL ES 學習中的紅寶書和藍寶書了。
紅寶書指的是 《OpenGL 程式設計指南》,目前已經出到了第九版了,藍寶書指的是《OpenGL 超級寶典》目前已經出到了第五版了。
紅寶書與藍寶書
這兩本書就沒有前面那麼多代碼示例了,更多的是講解一些原理相關的内容,而且也不是特别針對 Android 開發環境來講的。這兩本書更多是還是當做工具書來使用,當某些知識點不清晰時,看看書查漏補缺~~~(反正我是當工具書用了)
聽說,下雨天,代碼和書籍更配哦~
顯然,光是看書是不夠的,紙上得來終覺淺,絕知此事要躬行。
在 OpenGL ES 開發中,有一些項目是必看的:
https://github.com/CyberAgent/android-gpuimage https://github.com/BradLarson/GPUImage2 https://github.com/google/grafika這些項目中可以看到 OpenGL ES 在相機濾鏡和視訊錄制方面的運用~
最後
俗話說:
獨學而無友,則孤陋而寡聞
光是掌握了這些書上的内容還是不夠的,更多的是需要交流和讨論,讓這些知識在每一次的探讨中變得更加生動靈活,不再是枯燥的代碼和理論。
本文中提到的書籍資源,皆可在我的 Github 位址上下載下傳得到:
https://github.com/glumes/AndroidOpenGLTutorial OpenGL 系列文章「視訊雲技術」你最值得關注的音視訊技術公衆号,每周推送來自阿裡雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。