class0

學習目標

  • 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ù)雜性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容