天天看點

OpenGL ES 學習資源分享簡單上手《OpenGL® Shading Language, Second Edition》高階版本深入了解

作者:星隕

來源:

音視訊開發進階

關于學習方式

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

有句名言說的好:

書籍的人類進步的階梯

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

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

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

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

簡單上手

作為程式員學習一項内容,最重要的就是 Hello World 了。

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

OpenGL ES 學習資源分享簡單上手《OpenGL® Shading Language, Second Edition》高階版本深入了解

這本書比較通俗易懂,直接上手使用 OpenGL ES,可以說是手把手教學了。

作為初學者,最重要的是啥?環境配置、Demo 運作呀~~~

在 《OpenGL ES 應用開發實踐指南》裡面,跟着書中的章節順序走,每一章都會有代碼示例,也算是一步步引導了。

你可以暫時不求甚解,先把示例工程運作起來,等熟練了再去深究原理。

美中不足的是,這本書針對的 OpenGL ES 版本是 2.0 的,在 OpenGL ES 3.x 中的一些特性無法體驗到了,而且現在的手機大多支援 OpenGL ES 3.x 版本了,不過要是考慮到相容低版本的情況,還是可以使用 OpenGL ES 2.0 版本的。

這本書是翻譯過來的,它的英文原版封面如下:

OpenGL ES 學習資源分享簡單上手《OpenGL® Shading Language, Second Edition》高階版本深入了解

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

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

《OpenGL® Shading Language, Second Edition》

OpenGL ES 學習資源分享簡單上手《OpenGL® Shading Language, Second Edition》高階版本深入了解

這本書是英文版的,講解了 GLSL 的一些文法,基于的版本是 OpenGL ES 2.0 的,正好和前面的書籍配套學習了,而且英文難度不大,易懂。

該書中同樣有很多例子可以實踐,比如光照、陰影、噪音等。

通過這兩本書的配套練習,可以掌握 OpenGL ES 2.x 版本的基本内容了。

當然了,除此之外,你還需要更多的練習。

可以參考這本書,獲得更多打怪晉級的經驗:

《Android 3D 遊戲開發技術寶典》

OpenGL ES 學習資源分享簡單上手《OpenGL® Shading Language, Second Edition》高階版本深入了解

《Android 3D 遊戲開發技術寶典》一書中有很多可以在實踐中用到的内容,具體内容就等大家自行探索了~~~

高階版本

當然了,學會了 OpenGL ES 2.0 再去看 OpenGL ES 3.x 就容易多了。

這兩者在 GLSL 上是有一些變化的,另外 OpenGL ES 3.x 支援的渲染效果更好,而且支援的特性更多。

關于 OpenGL ES 3.x 版本的學習,有如下書籍推薦:

OpenGL ES 學習資源分享簡單上手《OpenGL® Shading Language, Second Edition》高階版本深入了解

OpenGL ES 3.x 遊戲開發

OpenGL ES 學習資源分享簡單上手《OpenGL® Shading Language, Second Edition》高階版本深入了解

OpenGL ES 3.0 程式設計指南

在 Android 後續系統版本中,都開始使用 Vulkan 來替代 OpenGL 了。

等掌握了 OpenGL ES 之後,下一個就是 Vulkan 了~~~

另外關于書籍推薦,其實大家可以到京東或者當當上搜尋一下關鍵字就知道了,目前市面上關于 OpenGL ES 的書籍也不多,搜來搜去也就是那幾本書啦~~~對于其他領域的書籍情況類似…

深入了解

當你已經掌握了 OpenGL ES 的大部分内容,并且可以簡單的運用他們了,這時候再想去深入了解它們,那就必須要說到 OpenGL ES 學習中的紅寶書和藍寶書了。

紅寶書指的是 《OpenGL 程式設計指南》,目前已經出到了第九版了,藍寶書指的是《OpenGL 超級寶典》目前已經出到了第五版了。

OpenGL ES 學習資源分享簡單上手《OpenGL® Shading Language, Second Edition》高階版本深入了解

紅寶書與藍寶書

這兩本書就沒有前面那麼多代碼示例了,更多的是講解一些原理相關的内容,而且也不是特别針對 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 系列文章
「視訊雲技術」你最值得關注的音視訊技術公衆号,每周推送來自阿裡雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。
OpenGL ES 學習資源分享簡單上手《OpenGL® Shading Language, Second Edition》高階版本深入了解

繼續閱讀