天天看點

OpenGL_4.0_Shading_Language_Cookbook 讀書筆記(2)

OpenGL 4.0 Shading Language Cookbook 讀書筆記(二)

                                                        ----- 随書代碼第二章運作工程

                   這本書隻有英文版,是以隻有硬着頭皮看,但是看的很慢,終于看到第二章了,裡面第二章的代碼也照抄了一遍。發現裡面的代碼品質很高,因為用到了很多作者寫的工具類,非常豐富,而且基本都是封裝成了類,使用起來很友善。下面是書中常用的類和函數

  1. GLUtils             負責列印openGL版本資訊
  2. gl_core_4_4    各種openGL API 回調函數,比如:_ptrc_glBlendFunc  _ptrc_glClearDepth _ptrc_glDepthFunc等等
  3. VBOTorus        繪制花環
  4. VBOTeapot      繪制茶壺
  5. VBOMesh       繪制網格
  6. VBOPlane      繪制地闆
  7. 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)環境光

OpenGL_4.0_Shading_Language_Cookbook 讀書筆記(2)

       (2)ADS (環境光,漫反射,鏡面高光 )也稱作Phong shading model,三種光混合效果

OpenGL_4.0_Shading_Language_Cookbook 讀書筆記(2)

             (3)實作雙面着色

OpenGL_4.0_Shading_Language_Cookbook 讀書筆記(2)

              (4)實作平面着色

OpenGL_4.0_Shading_Language_Cookbook 讀書筆記(2)

             (5)使用Subroutines選擇着色器功能

OpenGL_4.0_Shading_Language_Cookbook 讀書筆記(2)

             (6)Discarding fragments to create a perforated look 丢棄碎片,已實作穿孔效果

OpenGL_4.0_Shading_Language_Cookbook 讀書筆記(2)

  代碼

      最關鍵的代碼部分

這個工程使用上面的所有工程      

注意紅色線框部分,

OpenGL_4.0_Shading_Language_Cookbook 讀書筆記(2)

要實作這6中功能,需要在“調試“   指令參數中加入:ads diffuse discard flat subroutine twoside

繼續閱讀