日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

DirectX Shader 入门学习

發(fā)布時間:2025/4/14 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DirectX Shader 入门学习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? shader,英文意思是,著色器、著色程序。
? ? Shader就是一段可以改變像素和頂點的小程序,這個Shader小程序可以為場景添加一些基本的幾何學(xué)特效。例如湖水的漣漪,它會讓特定的藍(lán)色材質(zhì)發(fā)生移動、扭曲和倒映,這樣就會給人波光粼粼的感覺了。若是要將一個物體渲染成玻璃的風(fēng)格,它就會讓一些材質(zhì)發(fā)生透明和扭曲。

DirectX9 著色器學(xué)習(xí)1
? ? 高級著色器語言(High-level shading Language, HLSL)。

1.編寫著色器代碼
? ? ?寫在txt文本中,主程序調(diào)用讀取文本,在編譯時使用相關(guān)代碼。

2.編譯HLSL著色器

3. 調(diào)用D3DCompileShaderFromFile
? ? ? hr ?= D3DXCompileShaderFromFile(......);

HLSL語言的基本屬性:
(1)函數(shù)使用類似C++語法
(2)參數(shù)總是按值傳遞
(3)遞歸不被支持
(4)函數(shù)總是inline的

DirectX9 中的著色器包括:Vertex shader 和 Pixel shader。

首先學(xué)習(xí)頂點著色器VS,它替換了固定功能管線中的變換(Transformation)和光照(Lighting)階段。

使用頂點著色器的步驟:

1.編寫并編譯頂點著色器;
? ? ? ?(D3DXCompileShaderFromFile()返回已編譯著色器代碼的指針,作為step2的輸入)

2.創(chuàng)建一個IDirect3DVertexShader9接口以引用已編譯的著色器代碼上的頂點著色器;
? ? ? (CreateVertexShader((DWORD*)shader->GetBufferPoint(),&ToonShader),返回一個接口指針,作為step3的輸入)

3.用IDirect3Device9::SetVertexShader方法使用這個頂點著色器。
? ? ?(Device->SetVertexShader(ToonShader);)

4.銷毀頂點著色器
? ? ? ?(d3d::Release<IDirect3DVertexShader9 *>(ToonShader);)


DirectX 10的Geometry Shader

  除了專門處理像素的Pixel Shader和專門處理多邊形頂點的Vertex Shader之外,DX10中還加入了一個Geometry shader,專門用來處理場景中的幾何圖形。Vertex Shader每一次運行只能處理一個頂點的數(shù)據(jù),并且每次只能輸出一個頂點的結(jié)果。

  Geometry shader幾何著色器工作在頂點與像素著色單元之間,當(dāng)顯卡中的頂點著色單元生成頂點信息之后,就會將這些結(jié)果交給幾何著色器來構(gòu)成更為復(fù)雜的幾何圖形,最后交由像素著色器來為這些幾何圖形添加各種材質(zhì)。

總結(jié)

以上是生活随笔為你收集整理的DirectX Shader 入门学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。