明白了部分頂點處理過程

2021-03-31 12:36:01 字數 1146 閱讀 9917

頂點處理過程:

1。world transform.這是第一步,把物體放進3d座標空間裡來,才能進行下一步的

轉換和處理。

2。vertex blending. 這一步必須在view transform 之前完成,在view transform 之後完成的話依照我現在的理解可能會加深複雜度。頂點混合主要處理動畫過程中**的現象(目前理解)。

發現頂點混合是在fixed pipeline中執行的,可見若使用vertex shader programmable pipeline不能使用頂點混合。?

3。view transofrm。進行視空間座標轉換。

4。vertex fog。頂點霧化。因為霧化是根據頂點距離視點的距離決定霧化的量化值的。因此必須在projection transform之前完成,因為在這之後,頂點已經全部變換到觀察平面上了,不再有相互之間的距離(z值了)。

5。lighting and materials。光照和材質處理。這裡形成顏色值。可能fog和光照材質處理順序可以互換吧我想。這裡也必須在projection transform之前完成。這有賴於空間位置。

6。projection transform. 轉換頂點座標到視口座標。應該已經是二維座標。z值應該為0。只是不知道z緩衝值怎麼、何時寫入。

這說明若要進行vertex blending。那麼必須把世界變換矩陣和veiw transform矩陣分開傳輸進vertex shader.若無vertex blending,則可以把二個矩陣合併之後傳輸進vertex shader。

但是一般光照和材質是需要的。因此projection transform 可能單獨傳遞。

(p:錯誤。剛才看例子:傳遞了兩個矩陣,乙個是world view 合併後的矩陣。

乙個是world view projection三個矩陣合併後的矩陣。也是進行兩次計算。)。

vertex position 的結果是用原始頂點值直接乘以world view projection合併後的矩陣直接輸出。(

霧化和光照材質用的中間值用原始值乘以world view 合併後的矩陣。因為霧化和光照材質只影響顏色值。

所以中間值以後直接丟棄。懷疑這樣可能有利於縮小誤差?但這樣多做了一次矩陣乘法(生成三個矩陣合併矩陣的乘法運算)。)

USB host處理過程

在usbh core.c中有乙個函式usbh process 這個函式很重要,main 函式每迴圈一次,它就執行一次,它處理所有usb核心狀態的變化,typedef enum host state 根據這個當前狀態 phost gstate 處於以上哪個狀態的不同,做出不同的處理過程。其中最重要的要...

Hadoop map reduce處理過程

1 在hadoop中,每個mapreduce任務都被初始化為乙個job。每個job又可以分成兩個階段 map階段和reduce階段 map函式接受乙個形式的輸入,然後同樣產生乙個形式的中間輸出,hadoop會負責將所有具有相同結果中間key值的value集合到一起傳給reduce函式,reduce函...

Openstack nova api 處理過程

乙個python函式示例 乙個python類的示例 所有的web請求引數都被封裝在environ這個dictionary中,start response函式讓人難以理解,其主要作用是設定reponse的http返回碼和http header.返回的list的乙個item對應於http respons...