計(jì)算機(jī)圖形學(xué)shader入門_第1頁(yè)
計(jì)算機(jī)圖形學(xué)shader入門_第2頁(yè)
計(jì)算機(jī)圖形學(xué)shader入門_第3頁(yè)
計(jì)算機(jī)圖形學(xué)shader入門_第4頁(yè)
計(jì)算機(jī)圖形學(xué)shader入門_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、可編程圖形渲染流水線(shader)簡(jiǎn)介可編程渲染流水線 頂點(diǎn)著色器(vertex shader) 片段著色器(fragment shader)固定渲染流水線介紹近幾年在實(shí)時(shí)圖形學(xué)方面的主要進(jìn)展是可編程流水線(programmable pipeline) 由 NVIDIA GeForce 3首先引入 高端商業(yè)顯卡支持 NVIDIA, ATI, 3D Labs 軟件支持 Direct X 9, 10, 11(HLSL) OpenGL Shading Language (GLSL) Cg背景知識(shí)由兩個(gè)成分組成 頂點(diǎn)程序 (著色器 ) 片元程序 (著色器 )需要對(duì)3D圖形程序處理流程深入理解 Ope

2、nGL流水線 圖形硬件幾何計(jì)算幾何數(shù)據(jù): 頂點(diǎn)集合類型 可以來自于程序、求值器或者顯示列表 類型:點(diǎn)、線段、多邊形 頂點(diǎn)數(shù)據(jù)可以是 頂點(diǎn)的(x,y,z,w)坐標(biāo) (glVertex) 法向量 、材質(zhì)、紋理坐標(biāo) RGBA 顏色 其它數(shù)據(jù): 顏色索引、邊標(biāo)志 其它在shader中用戶定義的數(shù)據(jù)逐頂點(diǎn)操作頂點(diǎn)位置由模型視圖矩陣變換到視坐標(biāo)法向量相應(yīng)處理 可能需要重新單位化如果激活了紋理自動(dòng)生成功能,紋理坐標(biāo)被生成,并且應(yīng)用可能的紋理矩陣光照計(jì)算進(jìn)行如下的逐頂點(diǎn)基礎(chǔ)上的 Phong光照模型I =kd Id N L + ks Is (N H ) + ka Ia P463 Phong模型需要在每個(gè)頂點(diǎn)處計(jì)

3、算 N和HOpenGL的光照對(duì) Phong模型進(jìn)行了部分修改 采用中分( Halfway)向量 全局環(huán)境光細(xì)節(jié)的標(biāo)準(zhǔn)有詳細(xì)定義硬件支持基本單位的集成頂點(diǎn)接下來被集成為對(duì)象 多邊形 線段 點(diǎn)用投影矩陣用來變換裁剪 相對(duì)于用戶定義的平面 視景體x= w, y= w, z= w 裁剪會(huì)產(chǎn)生新的頂點(diǎn)窗口映射光柵化幾何對(duì)象被光柵化成片段(fragment)每個(gè)片段對(duì)應(yīng)整數(shù)格點(diǎn)的一點(diǎn):顯示出來的像素因此每個(gè)片段就是一個(gè)潛在的像素每個(gè)片段具有 顏色 可能的深度值 紋理坐標(biāo)片段操作紋理生成霧化反走樣Alpha測(cè)試Alpha融合邏輯操作頂點(diǎn)處理器取頂點(diǎn)處的下述信息: 位置屬性(x,y,z) 可能的顏色(光照)

4、OpenGL狀態(tài)輸出 在裁剪坐標(biāo)中的位置 頂點(diǎn)屬性(顏色,光照)片段處理器從光柵化操作的輸出(片段)中得到輸入 已由光柵程序把頂點(diǎn)處的值插值得到像素上的值輸入一個(gè)片段的 顏色 紋理片段還要經(jīng)過片段測(cè)試 隱藏面消除、Alpha測(cè)試、等等輸出:屏幕上的像素(幀緩存)可編程著色器把頂點(diǎn)和片段處理中那些固定的功能用可編程處理器代替可能取代兩者之一或者同時(shí)取代如果采用了可編程程著色器,那么就必須做固定功能處理器的所有事情,或者對(duì)其某部分進(jìn)行了相應(yīng)的修改著色器應(yīng)用程序 頂點(diǎn)著色器 片段著色器著色器編程語(yǔ)言 Cg GLSL HLSL頂點(diǎn)著色器應(yīng)用頂點(diǎn)的移動(dòng) 變形 (morphing) 波動(dòng) 分形光照 更真實(shí)

5、的光照模型 卡通著色器片段著色器應(yīng)用逐片段進(jìn)行光照計(jì)算逐頂點(diǎn)光照計(jì)算逐片段光照計(jì)算片段著色器應(yīng)用紋理映射環(huán)境映射凹凸映射GLSLOpenGL Shading Language的縮寫OpenGL 2.0的一部分高級(jí)類C語(yǔ)言引進(jìn)新的數(shù)據(jù)類型 矩陣 向量 取樣器(Samplers)OpenGL的狀態(tài)通過內(nèi)置變量傳遞執(zhí)行模式一個(gè)簡(jiǎn)單的頂點(diǎn)著色器const vec4 red = vec4(1.0, 0.0, 0.0, 1.0);void main(void)gl_Position = gl_ProjectionMatrix*gl_ModelViewMartrix*gl_Vertex;gl_FrontColor = red;運(yùn)行模式一個(gè)簡(jiǎn)單的片段著色器void main(void)gl_FragColor = gl_FrontColor;GPU的硬件發(fā)展CUDACompute Unified Device Archit

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論