opengl是3d圖形介面工業標準,使用上非常簡單,所有api不過上百個函式,但理解opengl就沒那麼簡單,本文總結opengl的學習資源,包括官方資料、網上教程、示例程式等。
wikipedia:
opengl,介紹了opengl的歷史及版本;
graphics processing unit,介紹了gpu,由於opengl更像個底層驅動,了解gpu對理解opengl很重要。
書籍:
紅寶書(the red book),opengl programming guide,目前最新版第8版(2013),中文譯本最新第7版,第8版較第7版幾乎徹底改版(第8版英文版網上有pdf);
藍寶書(the blue book),opengl superbible: comprehensive tutorial and reference,目前最新第6版(2013),中文譯本最新第5版;
更多書籍請見opengl官網書籍列表。
官網:
及所列的**資源和相關工具(getting started頁列了更多鏈結)、論壇等;
khronos group,opengl標準由該小組維護,該組織還掌管著opengl的嵌入式版(移動版)opengl es和網頁版webgl,以及異構平行計算語言opencl;
兩大顯示卡巨頭的opengl資源:nvidia opengl、amd opengl,上面有很多酷炫的samples。
下圖是從quick reference card 4.4中摘的「opengl pipeline」(specification 4.4中有詳細解釋):
頂級課程:
圖形學頂級會議siggraph和eurographics幾乎每年都會有關於opengl的課程:
siggraph 2014 introduction to modern opengl programming, 2013 an introduction to opengl programming, efficient real-time shadows, opengl and directx, 往年的還有很多,請自行到dl.acm.org搜尋「acm siggraph 20xx courses」並點「table of contents」選項卡。
eurographics 2014 star state of the art report on real-time rendering with hardware tessellation, 2014 tutorial efficient sorting and searching in rendering algorithms, 更多技術報告和課程請見 eurographics 檔案。
網上教程:
同樣介紹了現代opengl程式設計;
nehe的教程,關鍵是有中文翻譯版,但是比較老了,可以用來學習經典管線功能;
乙個非常詳盡的教程;
比較全面,除了opengl,還有計算機動畫相關的;
另外,opengl官網上也有一些教程的鏈結(getting started頁後面有更多),和**資源;
遇到程式設計問題,可以到stack overflow(乙個程式設計領域的問答**)看看是不是有人問過這個問題。
下圖是ogldev.atspace.co.uk的截圖:
計算機圖形學:
請參考我另一篇部落格:計算機圖形學的學習資源。
gpu硬體:
了解gpu架構對理解opengl有極大幫助,可以學一學gpu程式設計:opencl、cuda、openacc、c++ amp,裡面都會說gpu架構;
國內有個gpu論壇:hpc論壇,裡面也有gpu的資料;
ozone3d.net和geeks3d.com上有gpu檢測
或效能測試的小工具,也有示例**和教程;
pennsylvania大學課程cis 565:gpu programming and architecture
下面三幅圖分別描述了cpu和gpu連線關係、gpu架構(圖中mp在cuda書中叫做sm)、cpu架構:
(該圖取自wikipedia,這裡,該圖可能過時了,見這裡)
(該圖取自aurélien plyer主頁,這裡)
(該圖取自這裡)
OpenGL深度學習資源收藏
opengl 版本發展歷史 頁尾的q a部分非常精彩,其中 1 推薦的較好的比較新的 tutorials 2 有關opengl 除錯工具 q opengl 如何進行 debug directx 的pix 真的很好用呢。a 現在支援 glsl 和opengl 跟步除錯的只有 nvidia 的nsigh...
OpenGL學習筆記 OpenGL的變換和矩陣
opengl的變換和矩陣 1 指定矩陣型別 opengl中使用glmatrixmode指定當前要設定的矩陣型別,常用的引數是gl projection和gl modelview,還有gl texture。opengl將視點變換 即攝像機變換 和模型變換 即物體變換和世界變換 合二為一了。glmatr...
OpenGL學習筆記 OpenGL的變換和矩陣
opengl的變換和矩陣 1 指定矩陣型別 opengl中使用glmatrixmode指定當前要設定的矩陣型別,常用的引數是gl projection和gl modelview,還有gl texture。opengl將視點變換 即攝像機變換 和模型變換 即物體變換和世界變換 合二為一了。glmatr...