天天看點

shader 開發實戰

1.網址 ** The Book of Shaders Editor ** 可以實時預覽shader 渲染内容

2.網址 WebGLFundamentals WebGL State Diagram 可以檢視着色器每一步做了什麼工作

第一章 網格是什麼

網格包含三個資訊:頂點,邊,面

其中頂點是三維空間的點,邊是連接配接頂點的線段,而面試由3條或更多條邊組成的二維形狀。

在代碼定義中,隻有頂點存儲在記憶體中,邊和面試由頂點的順序隐式定義的。在索引緩沖區中的資料結構定義。頂點的順序大部分是多邊形的中心以逆時針順序定義,這個面稱為正面,反之,稱為反面。

渲染管線

渲染流程:頂點資料->頂點着色器->形狀裝配->光栅化->片段着色器->片段處理

頂點資料就是将3D模型檔案中的網格資料讀取到記憶體中

頂點着色器就是确定網格資料中的頂點在螢幕上的顯示位置

形狀裝配就是按照網格資料繪制邊組成多邊形

光栅化就是計算網格可能占據的螢幕上的像素,為這些潛在像素中的每個像素建立一個片元,可以認為一個片元相當于一個像素,但不是所有的片元最終都會變成螢幕上的像素,因為重複的片元隻顯示最前面的,後面被擋住的像素,會在片段處理的時候給丢棄。

片段着色器就是給每個像素确定顔色

片段處理就是做最後的測試和混合操作,測試就是确定哪些片元顯示,哪些片元丢棄。

着色器是什麼?

主要關注頂點着色器和片段着色器,就是在GPU上執行的代碼。

第二章 第一個着色器

編寫GPU代碼,怎麼友善的調試和檢視效果,很多開源軟體都可以,這裡推薦一個迷你架構,足夠小,足以滿足測試需求,是開源的叫openFrameworks,網址是:http://openframeworks.cc/download

書籍:Shader 開發實戰

線上書籍翻譯:The Book of Shaders: Hello world!

繼續閱讀