學習目標
- GPU 歷史和渲染流水線
- GPU 編程API(Cg,HLSL,*GLSL)
- 學會Vertex Shaders, Geometry Shader and Fragment Shaders
- 基于GPU渲染技術(shù)和應(yīng)用
- 通用GPU基礎(chǔ)、工具和應(yīng)用
參考書
- OpenGL Shading Language
- Unity shader 入門精要
考察方式
- 50%(課堂表現(xiàn)和平時作業(yè))
- 50%大作業(yè)(給定系統(tǒng),為系統(tǒng)寫shader,陰影?材質(zhì)?)
作業(yè)
發(fā)送email
附加:
推薦課程
基于GPU的計算
自查資料
Cg
Cg語言(C for Graphics)是為GPU編程設(shè)計的高級著色器語言,由NVIDIA公司開發(fā)。Cg極力保留C語言的大部分語義,并讓開發(fā)者從硬件細節(jié)中解脫出來,Cg同時也有一個高級語言的其他好處,如代碼的易重用性,可讀性得到提高,編譯器代碼優(yōu)化。最新版本為3.1,當前已不再被積極開發(fā)與支持.HLSL
高階著色器語言(High Level Shader Language,簡稱HLSL),由微軟擁有及開發(fā)的一種語言,HLSL 獨立的工作在 Windows 平臺上,只能供微軟的Direct3D使用。 HLSL是微軟抗衡GLSL的產(chǎn)品,同時不能與OpenGL標準兼容。他跟Nvidia的Cg非常相似。 HLSL的主要作用為將一些復(fù)雜的圖像處理,快速而又有效率地在顯示卡上完成,與組合式或低階Shader Language相比,能降低在編寫復(fù)雜特殊效果時所發(fā)生編程錯誤的機會。 HLSL已經(jīng)整合到了 DirectX 9中。GLSL
OpenGL著色語言(OpenGL Shading Language)是用來在OpenGL中著色編程的語言,也即開發(fā)人員寫的短小的自定義程序,他們是在圖形卡的GPU (Graphic Processor Unit圖形處理單元)上執(zhí)行的,代替了固定的渲染管線的一部分,使渲染管線中不同層次具有可編程性。比如:視圖轉(zhuǎn)換、投影轉(zhuǎn)換等。GLSL(GL Shading Language)的著色器代碼分成2個部分:Vertex Shader(頂點著色器)和Fragment(片斷著色器),有時還會有Geometry Shader(幾何著色器)。負責運行頂點著色的是頂點著色器。它可以得到當前OpenGL 中的狀態(tài),GLSL內(nèi)置變量進行傳遞。GLSL其使用C語言作為基礎(chǔ)高階著色語言,避免了使用匯編語言或硬件規(guī)格語言的復(fù)雜性。