OpenGL ES 學習資源分享

學習了一段時間的 OpenGL ES,並在公司的項目中獲得了運用,也算是有了一些積累,如今分享一些當初學習的資源,你們一塊兒來學習,共同交流進步。android

關於學習方式

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

有句名言說的好:程序員

書籍是人類進步的階梯github

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

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

經過看一些博客文章、看一些文章分析,在某些時刻確實是頗有幫助的,但老是會存在一些碎片化知識,沒有系統地造成知識網絡,此時掌握的僅僅是技巧。仍是要經過系統地去學習某些知識內容,在腦海裏面有個完整的知識體系。網絡

這個簡單的道理你們都懂,就很少說了~工具

簡單上手

做爲程序員學習一項內容,最重要的就是 Hello World 了。學習

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

這本書比較通俗易懂,直接上手使用 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 在相機濾鏡和視頻錄製方面的運用~

最後

俗話說:

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

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

那就趕忙掃碼加入咱們吧~~

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

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

github.com/glumes/Andr…

一些 OpenGL ES 學習的代碼也會在這裏,求 Star 一波 。

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

掃碼關注
相關文章
相關標籤/搜索