OpenGL ES 學習資源分享

glumes發表於2018-07-11

學習了一段時間的 OpenGL ES,並在公司的專案中得到了運用,也算是有了一些積累,現在分享一些當初學習的資源,大家一起來學習,共同交流進步。

關於學習方式

在分享資源之前,簡單地聊聊學習的方式。

有句名言說的好:

書籍是人類進步的階梯

在需要解決一些未知領域的問題、完成一些未知領域的需求時,是必須要去學習一些新東西的。

而在學習這些新東西時,不要太依賴於搜尋引擎了,不然只是當下解決了某些問題、完成了某些需求。

通過看一些部落格文章、看一些文章分析,在某些時刻確實是很有幫助的,但總是會存在一些碎片化知識,沒有系統地形成知識網路,此時掌握的僅僅是技巧。還是要通過系統地去學習某些知識內容,在腦海裡面有個完整的知識體系。

這個簡單的道理大家都懂,就不多說了~

簡單上手

作為程式設計師學習一項內容,最重要的就是 Hello World 了。

《OpenGL ES 應用開發實踐指南》

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 應用開發實踐指南》

簡單上手了 OpenGL ES 2.0 之後,該瞭解一下 OpenGL Shading Language (GLSL)了。

GLSL 就是著色器指令碼語言,這個語言是用來給 GPU 執行的,靈活地使用它才能更好地掌握 OpenGL ES,要知道現在手機相機上的一些濾鏡效果都是通過 GLSL 來實現的哦。

《OpenGL® Shading Language, Second Edition》

《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 在相機濾鏡和視訊錄製方面的運用~

最後

俗話說:

獨學而無友,則孤陋而寡聞

光是掌握了這些書上的內容還是不夠的,更多的是需要交流和討論,讓這些知識在每一次的探討中變得更加生動靈活,不再是枯燥的程式碼和理論。

那就趕緊掃碼加入我們吧~~

OpenGL ES 學習資源分享

要是二維碼過期了,加微信 ezglumes 好友,備註 OpenGL ,拉你入群~

本文中提到的書籍資源,皆可在我的 Github 地址上下載得到:

github.com/glumes/Andr…

一些 OpenGL ES 學習的程式碼也會在這裡,求 Star 一波 。

最後的最後,歡迎關注微信公眾號,獲得最新的內容推送~~

掃碼關注

相關文章