OpenGL 4.0 Shading Language Cookbook 讀書筆記(二)
----- 随書代碼第二章運作工程
這本書隻有英文版,是以隻有硬着頭皮看,但是看的很慢,終于看到第二章了,裡面第二章的代碼也照抄了一遍。發現裡面的代碼品質很高,因為用到了很多作者寫的工具類,非常豐富,而且基本都是封裝成了類,使用起來很友善。下面是書中常用的類和函數
- GLUtils 負責列印openGL版本資訊
- gl_core_4_4 各種openGL API 回調函數,比如:_ptrc_glBlendFunc _ptrc_glClearDepth _ptrc_glDepthFunc等等
- VBOTorus 繪制花環
- VBOTeapot 繪制茶壺
- VBOMesh 繪制網格
- VBOPlane 繪制地闆
- GLSLProgram 複制shader着色器的加載、編譯、連結
本章主要内容
1. shader實作單個光源的光照模型
(1)ADS(ambient, diffuse, specular)環境光,漫反射,鏡面高光
(2)在shader中實作自定義函數調用
(3)實作雙面(前面front、背面back)着色
(4)實作平面着色(flat shading)
(5)使用Subroutines選擇着色器功能
(6)Discarding fragments to create a perforated look 丢棄碎片,已實作穿孔效果
2. 效果如下:
(1)環境光
(2)ADS (環境光,漫反射,鏡面高光 )也稱作Phong shading model,三種光混合效果
(3)實作雙面着色
(4)實作平面着色
(5)使用Subroutines選擇着色器功能
(6)Discarding fragments to create a perforated look 丢棄碎片,已實作穿孔效果
代碼
最關鍵的代碼部分
這個工程使用上面的所有工程
注意紅色線框部分,
要實作這6中功能,需要在“調試“ 指令參數中加入:ads diffuse discard flat subroutine twoside