OpenGL Shading 程式設計

2021-06-22 21:19:45 字數 873 閱讀 6407

回憶opengl的渲染管線,裡面的頂點處理管線,和片原管線都是可以通過程式設計實現的。現在一般的顯示卡都是支援gpu程式設計的。gpu與cpu的區別:gpu是並行的,多管線的,所以速度一般都很快,而且gpu是向量處理器,所以gpu程式設計中的變數可以有float1, float2, float3, float4等。但是cpu都是標量處理器。   

shader程式設計主要有兩種:頂點處理器程式設計(vertex shader);片原處理器程式設計(fragment shader),雖然現在d3d10.0裡面有增加了geometry shader.但是主要還是前兩種。

shader程式設計主要有幾種:cg(c for graphics), d3d中的hlsl(high level shading language), 以及opengl中的glsl(gl shading language)。

cg 簡稱 c for graphics 是一種gpu程式語言,是nvidia公司推出的一種能100%發揮硬體效能的圖形程式語言,其效能遠遠優於opengl和direct3d,用它只需要幾行**就可以輕鬆的構造乙個美麗而又複雜的三維世界,是未來圖形程式設計的主流。詳情可以訪問:

這裡主要介紹一下opengl中的glsl程式設計,版本要求必須是opengl2.0以上,所以必須先安裝glew庫,然後測試一下:     

#include #include void main(int argc, char **argv)                             

glutmainloop();

}

shader程式設計中,主要是有兩個檔案:.vert檔案, .frag檔案,乙個是頂點,乙個是片原檔案。在glsl程式設計中將這兩個檔案以字串的形式讀取到主程式中。這裡也不帖步驟了,具體詳解可見: 

程式設計,還是程式設計

喜歡程式設計,雖然水平一般,但還是執著地學習與程式設計有關的知識。中間因為工作關係與程式設計遠離了一段時間,現在又重拾起來,細想起來還是因為喜歡吧。喜歡程式軟體的思想和原理,喜歡程式 的魅力和成就感。程式設計軟體的思想是最值得學習的,一直認為思想決定行動,思想改變世界。每種軟體的流行和受人追捧,無不...

少兒程式設計程式設計

機械人比賽,聽上去讓人有一種高大上的科技感,沒錯,在大多數人眼裡,玩機械人那是科學家做的事情,不過隨著機械人教育的普及,越來越多的孩子也能夠駕馭這高大上的機械人。格物斯坦小坦克告訴你原因,這是歸結於孩子對於程式設計課程的學習,學會對機械人進行程式設計了,自然就能玩轉機械人啦。參加機械人比賽的意義遠遠...

LINUX程式設計 socket程式設計

什麼是套接字 套接字是一種通訊過程,它使客戶 伺服器系統的開發工作既可以在本地單機上進行,也可以跨網路進行。套接字建立過程 1,建立乙個套接字,這是分配給該伺服器程序的乙個作業系統資源,套接字由伺服器通過系統呼叫socket建立出來的,所以其它程序將不能對它進行訪問。2,給套接字起個名字,用系統呼叫...