頂點著色引擎

頂點著色引擎

頂點著色引擎(Vertex Shader),也稱為頂點遮蔽器,根據官方規格,頂點著色引擎是一種增加各式特效在3D場影中的處理單元,頂點著色引擎的可程式化特性允許開發者靠載入新的軟體指令來調整各式的特效,每一個頂點將被各種的數據變素清楚地定義,至少包括每一頂點的x、y、z坐標,每一點頂點可能包函的數據有顏色、最初的徑路、材質、光線特徵等。

基本介紹

  • 中文名:頂點著色引擎
  • 外文名:Vertex Shader
  • 也稱為:頂點遮蔽器
  • 作用:增加各式特效在3D場影
  • 浮點數:128
細節,背景,

細節

在頂點著色引擎內部,數據都是以“項”為單位來作運算的。 我們剛剛知道,每一項都是4個128位的浮點數。當你正套用一條指令和影響一套4個變數時,這讓頂點著色引擎單元實際上就是一個“單指令多數據”(single instruction multiple data, SIMD) 處理器。 這種安排很有道理,因為大部分的轉換與光影操作都是4x4或3x3的矩陣運算。 每一個數據都當作浮點數,所以全部的運算都是浮點運算。 基本上,頂點著色引擎是個很強大的SIMD浮點處理器, Pentium 4 裡面的SSE2單元勉強趕得上。 另一個重要的部分是12個SIMD暫存器,每一個也都可以存放4個128位浮點數。這12個暫存器就是頂點著色引擎變戲法的地方。除了這12個可以自由存取的暫存器,頂點著色引擎提供了96個4x128位的SIMD常數,可以作為程式設計師在程式開始執行之前設定的參數載入。這些常數可以用在程式里,甚至可以間接定址,但每條指令只能調用一個常數,這有點不方便。如果某個指令需要一個以上的常數,必須先用載入指令把常數讀入一個暫存器。典型的這種大量常數套用就是多邊形轉換的矩陣數據(一般4x4矩陣)、光影特性、特殊動畫特效的程式數據、向量內插數據(例如變臉特效或者關鍵幀插入),時間(關鍵幀插入或粒子系統)等等。有一種特殊的稱為“頂點狀態程式”的程式可以向參數塊寫入數據。而普通的頂點程式只能讀取。

背景

這些運算指令本身都很簡單,因此也很容易理解。 頂點著色引擎不允許循環,跳躍或條件分支,就是每條指令按照次序線性執行程式。每個頂點著色引擎的最大程式長度是128條指令。 頂點按照設計師的意願改變之後,就完成轉換和照明。 若是還需要更多指令處理,頂點可以再次進入頂點著色引擎。
頂點經過運算後仍然是頂點,轉換到為均一的裁剪空間(homogenous clip space),並且完成照明運算。 有一點很重要的是,頂點著色引擎不能生成或者消除頂點。一個進,一個出。

相關詞條

熱門詞條

聯絡我們