1. 程式人生 > >Vulkan Tutorial 10 圖形管線

Vulkan Tutorial 10 圖形管線

mage alt mesh 著色 assemble 緩沖區 寫入 顏色 三角形

操作系統:Windows8.1

顯卡:Nivida GTX965M

開發工具:Visual Studio 2017


Introduction

通過接下來的章節,我們將會開啟有關圖形管線的話題,通過對圖形渲染管線的配置完成最後的三角形繪畫。所謂圖形管線就是將mesh使用到的vertices定點數據和貼圖數據,轉化為渲染targets像素的操作序列。簡要的概述如下圖所示:

技術分享

Input assembler收集最原始的頂點數據,並且還可以使用索引緩沖區復用這些數據元素,而不必復制冗余的頂點數據副本。

vertex shader會應用在每一個頂點數據,通常應用變換操作,從而將頂點的位置坐標數據從模型空間轉換為屏幕空間。在處理完畢之後會將數據繼續在管線傳遞下去。

tessellation shader曲面著色器允許基於某些規則進一步細分幾何數據增加網格的質量。經常應用與墻面和樓梯表面,使附近看起來不是那麽平坦。

geometry shader集合著色器應用在每一個圖元上,可用於增減圖元,它也曲面著色器類似,但更加靈活。然而,它在今天的應用中並沒有太多的應用情景,因為除了Intel的集成顯卡外,大多數顯卡性能支持都不理想。

光柵化階段將圖元分解為片元。這些是填充在幀含沖去上的像素元素。屏幕外區域的片元會被丟棄,頂點著色器輸出的數據在傳遞到片元著色器的過程中會進行內插值,如圖所示。除此之外,根據深度測試的結果也會對片元進行丟棄。

fragment shader應用於每個片元,確定每個幀緩沖區中寫入的片元數據的顏色和深度值。片元著色器可以使用頂點著色器的插值數據,貼圖的UV坐標和光源法線數據。

Vulkan Tutorial 10 圖形管線