日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DirectX Shader 入门学习

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

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

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

1.編寫著色器代碼
? ? ?寫在txt文本中,主程序調用讀取文本,在編譯時使用相關代碼。

2.編譯HLSL著色器

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

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

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

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

使用頂點著色器的步驟:

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

2.創建一個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每一次運行只能處理一個頂點的數據,并且每次只能輸出一個頂點的結果。

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。