(安利)我讀過的最棒的openGL書籍

最近游戲荒+書荒,所以去packtpub的官網(wǎng)淘一波書。事實(shí)證明,packt也從未讓我失望過,在搞到blender 2.8的一本教程和 UE4 的進(jìn)階書之外,還發(fā)現(xiàn)了一本令人驚喜又意外的書,就是本文的主要安利對象,OpenGL 4 Shading Language Cookbook Third Edition。

這本書的前兩版也是相當(dāng)相當(dāng)不錯的書。我個人也是前兩版所有的Demo都跟著敲了一遍的。第一版是2011年出的,基于OpenGL 4.0,以Qt為窗口系統(tǒng)。第二版2013年出,基于OpenGL 4.2(mac上demo為4.1),以更通用的GLFW為窗口系統(tǒng),比第一版多了TexStorage,OIT,幾何著色器shadow volumes等內(nèi)容。按這個節(jié)奏2015年應(yīng)該第三版就發(fā)布了,是的,本應(yīng)如此的,基于openGL 4.3+,包含計(jì)算著色器,如果有DSA就更好了。
不過,2015年的圖形學(xué)圈子可是出了一件大事的,GDC2015上,Khronos正式確認(rèn),glNext的名字是vulkan,從那時開始,各種openGL將死和openGL長久存在的無休止口水戰(zhàn)開始了,但是,openGL相關(guān)的書基本上不出了倒是真的。
2017年,在vulkan發(fā)布兩年之后,在openGL不光標(biāo)準(zhǔn),擴(kuò)展也沒怎么動過兩年后,Khronos居然不聲不響的低調(diào)發(fā)布了openGL 4.6,這個發(fā)布讓人很意外,但是考慮到當(dāng)天NVIDIA就發(fā)布了openGL 4.6驅(qū)動,GLEW也當(dāng)日就完成了openGL 4.6的支持,可以說Khronos背地里準(zhǔn)備應(yīng)該還是很充分的。個人猜測這次發(fā)布給了Wolff先生很多靈感,讓他最終完成了第三版的編寫,基于openGL 4.6,以及C++17?。這應(yīng)該是市面上唯一的openGL 4.6書籍了吧(紅寶書第9版基于openGL 4.5) 。

第三版相比第二版,除了預(yù)料之中的保留項(xiàng)目計(jì)算著色章節(jié)之外,還有很多新內(nèi)容,比如
在Getting Start章節(jié)加入Shader binary和SPIR-V相關(guān)內(nèi)容
在光照模型章節(jié)加入PBR相關(guān)內(nèi)容
貼圖章節(jié)加入視差貼圖和IBL相關(guān)內(nèi)容
圖像處理和屏幕空間技術(shù)章節(jié)重構(gòu),比如新版的HDR tonemapping,延遲渲染使用Static uniform branch不使用subroutine
etc.
全目錄:


這本書可以說基本上包含了現(xiàn)在游戲開發(fā)中常用的各種知識了,雖然有講解不是很深入,點(diǎn)到為止的情況(比如延遲渲染沒有光照估算,粒子和布料模擬講解太粗略),而且部分未重構(gòu)老章節(jié)代碼還是使用openGL 4.2而非4.6等小問題,但是跟著完全實(shí)現(xiàn)一遍,還是非常有用的。有了代碼基礎(chǔ)之后再看RTR,GPU Pro之類的書心中犯虛的可能性也是會支線下降的。
推薦有想法的各位同學(xué)都去試試,畢竟這也可能是openGL最后的絕唱了。