跳轉至內容

GLSL 程式設計/GLUT

來自華夏公益教科書,開放的書籍,開放的世界

在本節中,我們將介紹如何使用 C/C++ 實現 GLSL 概念,並以 GLUT 作為基本的 OpenGL 包裝器。

我們將依賴於 OpenGL 程式設計華夏公益教科書 中逐步構建的基礎程式碼模板,用於載入紋理、模型,以及將頂點和制服傳遞給著色器。幾乎所有的編碼都將在著色器中進行。

注意:Android 使用者可能需要檢視 GLUT 包裝器

當使用著色器重新實現過時的 OpenGL 1.x 功能(如光照)時,我們將嘗試使用類似的變數名稱,以便熟悉先前版本的人可以輕鬆地升級他們的知識。

請注意,這些教程假設您按照此處顯示的順序閱讀它們,即每個教程都假定您熟悉先前教程中介紹的概念和技術。如果您不熟悉 GLSL,至少應該通讀“基礎”部分中的教程。

其中許多教程已可用於 BlenderUnity - 如果你可以移植它們,歡迎貢獻!

透明表面

[編輯 | 編輯原始碼]

基礎光照

[編輯 | 編輯原始碼]

基礎紋理

[編輯 | 編輯原始碼]

3D 紋理

[編輯 | 編輯原始碼]

環境對映

[編輯 | 編輯原始碼]

光照的變體

[編輯 | 編輯原始碼]

非標準頂點變換

[編輯 | 編輯原始碼]
  • 螢幕疊加(關於從物件空間到螢幕空間的直接變換)
  • 公告板(關於檢視對齊的物體投影)
  • 非線性變形(關於頂點混合)
  • 平面陰影(關於將陰影投影到平面上)
  • 鏡子(關於映象物體和使用 alpha 緩衝區進行模板化)


< GLSL 程式設計

除非另有說明,本頁面上的所有示例原始碼均歸屬公有領域。
華夏公益教科書