【風宇沖】Unity3D教程寶典之Shader篇:基礎講 基礎知識

來源:互聯網
上載者:User

基礎講:基本知識



以下內容不需要入門的時候立刻閱讀和理解,建議逐漸深入學習後,不時回來看看即可。

什麼是GPU?GPU:Graphic Processing Unit,中文翻譯為“圖形處理器”。顯卡包括(GPU,顯存,顯卡BIOS,顯卡PCB板)。什麼是Shader?Shader程式:GPU執行的,針對3D對象進行操作的程式。
Shader有哪幾種?CG:與DirectX 9.0以上以及OpenGL 完全相容。運行時或事先編譯成GPU彙編代碼。HLSL: 主要用於Direct3D。平台:windows。GLSL: 主要用於OpenGL。  平台:移動平台(iOS,安卓),mac(only use when you target Mac OS X or OpenGL ES 2.0)
為什麼Shader中選擇CG?因為CG/HLSL 比GLSL支援更多的平台。
Unity3d裡CG輸出什嗎?windows平台:Direct3D, GPU彙編代碼mac:OpenGL GPU彙編代碼flash:flash GPU彙編代碼ios/android:unity會將CG轉換成GLSL代碼。總結:也就是除了移動平台會把CG轉換成GLSL代碼,其餘平台都是轉換成彙編代碼。
什麼是緩衝?一個像素有如下緩衝顏色緩衝color buffer/pixel buffer:儲存該點即將顯示的顏色,RGBA值深度緩衝depth buffer/z buffer:儲存該點的深度,z模板緩衝stencil buffer:通常用作限制渲染地區。更進階用法需結合深度緩衝,例如某像素的模板緩衝值會隨著其是否通過深度緩衝測試而改變。累積緩衝Accumulation Buffer: 與顏色緩衝類似,同樣儲存一個RGBA值。累積緩衝是為合成多幅映像而設計的,累積緩衝提供了一種在保持好的顏色解析度下實現在情境中“多重曝光(multiple
exposures)”的方法。使用累積緩衝可以產生許多映像效果來提高映像的真實性,其中包括:反走樣、移動模糊、軟陰影、深度域(景深)和卷積。要產生這些效果,必須將映像渲染多次,對情境位置(或所選的物體)進行微小的、漸增的改變,然後累積結果。
什麼是圖元裝配(Primitive Assembly)經過變換的頂點 被裝配成幾何圖元
什麼是光柵化(又譯作柵格化,Rasterization)柵格化這個術語可以用於任何將向量圖形轉換成柵格映像的過程。在3D渲染中主要是指,三角形等圖元(向量)轉換成像素片段的過程。或者說決定哪些像素幾何圖元覆蓋的過程。光柵化的結果是像素位置的集合和片段的集合
什麼是光柵操作(Raster Operation)指在片段fragment處理後,在更新幀緩衝前最後執行的一系列操作。通過包括裁剪,深度測試,alpha測試,alpha混合等。
片段Fragment等於像素嗎?像素點:(螢幕上能顯示)的最小映像單元像素:幀緩衝中某個像素點的內容,通常即指顏色。片段:更新像素潛在需要的一個狀態。片段輸出的是當前的fragment函數在這個像素點的顏色,並不代表這像素點的最終顏色。最後顯示的顏色是這個點的所有片段經過疊加等運算形成的最終結果。
針對3D對象進行操作、並被GPU所執行的程式
什麼是地形著色器(Geometry Shader):幾何著色器可以從多邊形網格中增刪頂點。它能夠執行對CPU來說過於繁重的產生幾何結構和增加模型細節的工作。Direct3D版本10增加了支援幾何著色器的API,
成為Shader Model 4.0的組成部分。OpenGL只可通過它的一個外掛程式來使用幾何著色器,但極有可能在3.1版本中該功能將會歸併。幾何著色器的輸出串連光柵化器的輸入。但是並不實用。
什麼是Tessellation?
針對DX11. 該技術需要消耗大量硬體資源,因此開發人員不會在情境中的每個地方都使用它,一般只考慮玩家視角近景和輪廓邊緣。利用GPU硬體加速,將現有3D模型的三角形拆分得更細小、更細緻,也就是大大增加三角形數量,使得渲染對象的表面和邊緣更平滑、更精細。


                                 座標系

電腦3D中,3D座標系採用的主要是,笛卡兒座標系(Cartesian座標系),也稱直角座標系。
當x軸朝右,y朝上,z朝螢幕裡的時候,為左手座標系。
當x軸朝右,y朝上,z朝螢幕外即面朝你的時候,為右手座標系。
所以,Unity使用的是左手座標系。
D3D左手 即 裁剪空間裡(x,y,z,w) z= z/w   即[0,1]
OpenGL使用右手 ,即 裁剪空間裡(x,y,z,w) z= (z/w + 1)/2 即[-1,1]

#pragma target 3.0    :定義Shader模型為Shader Model 3.0,
2.0, Direct3D 9 (預設預設值)。支援32張貼圖 + 64個計算
3.0,
Direct3D 9。支援512張貼圖 + 512個計算
4.0,
只支援DirectX 11。
5.0,
只支援DirectX
11。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.