Unity Geometry Shader實現

來源:互聯網
上載者:User

標籤:轉移   通過   board   官方   沒有   完全   研究   編寫   boa   

unity官方文檔關於geometry shader的內容等同於沒有,這也是因為unity的開發人員基本面向的是移動平台開發,所以這種SM4.0的特性基本都不會被開發人員考慮。但是本著與時俱進的精神(雖然現在已經不早了)還是研究一下以備不時之需。

在開始unity geometry shader之前,通過DX10的龍書,簡單的瞭解了一下geometry shader的原理。然後看了一個GS的billboard例子,覺得大同小異。

首先要知道,GS和VS以及FS的區別。

在dx9的渲染管線中,可程式化的shader只有頂點著色器和片段著色器兩種,在我們進行shader編寫的時候,可以知道頂點著色器的輸出就是片段著色器的輸入。但是在dx10的渲染管線開始,增加了一個幾何著色器。幾何著色器在渲染管線中位於頂點著色器和片段著色器之間,準確的是緊挨著頂點著色器,所以在某些方面,幾何著色器的操作和頂點著色器有相似性,一些原來在頂點著色器中的計算完全可以轉移到幾何著色器中進行,但並不建議那麼做。

其次,幾何著色器是可選的,和頂點片段著色器不同。我們在shader編寫的時候必須要有兩個shader,頂點著色器用於座標變換,片段著色器返回顏色。但是幾何著色器呢?它的輸入頂點著色器的輸出,輸出不是片段著色器的輸入。輸入是圖元,輸出也是圖元。

但是有人會疑惑,在之前的vs和fs編寫時,頂點著色器的輸出即片段著色器的輸入是一個頂點資訊的數組啊。

圖元是渲染對象在頂點著色器之後,光柵化之前的一種狀態。簡單的來說,就是點或者線段或者三角形。

經過這些簡單的瞭解,很多人就大概能猜到幾何著色器可以用來做什麼了,比如曲面細分,比如lowpoly。上面說到的billboard也可以,不過billboard可以在指令碼和頂點shader中同樣可以實現,暫時還沒有比較過三者之間的效率以及適用範圍。

 

Unity Geometry Shader實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.