v3dModifier試驗成功!

2021-04-12 13:25:03 字數 1424 閱讀 2164

今天,新試驗的modifier思想測試終於基本過了,現在v3dmodelobject已經類似max

裡面的inode,自身refobject了一些資料,也就是position,normal,binormal,uv,

skinblend等,每個v3dmodelobject都有乙個modifierstack,可以容納多個v3dmodifier

來修改它的資料,這些modifier處理資料後,能夠產生乙個引擎需要的v3dmesh資料,

最終,無論是渲染還是別的資料訪問,都通過v3dmesh來完成。目前,我實現了幾個

常用的modifier,比如v3dskinmodifier,v3ddefaultmodifier,v3dtex0slerpmodifier,

v3dmorphermodifier。這些modifier都可以根據需要,addmodifier到v3dmodelobject

裡面去,影響資料修改。在任何時候,使用者都可以通過modifier介面,暫停,啟動特定

modifier,甚至可以根據需要,將某個modifier設定成為cpu或者gpu處理。

比如如下應用:

某個角色模型,他有表情動畫,他同時是乙個骨骼動畫,而且他身上diffuse紋理有

紋理插值動畫,在v3dmodelobject中,我們按順序可以新增如下modifier:

v3dmorphermodifier

v3dskinmodifier

v3dtex0slerpmodifier

系統就會先處理好表情動畫,然後處理骨骼動畫,最後把紋理做乙個關鍵楨插值。使用者

不用關心任何細節,當然,如果使用者發現這個modelobject距離攝像機很遠,他不做

表情動畫並不會影響最終質量,於是他可以querymodifier( viid_v3dmorphermodifier )

取得表情動畫控制介面,然後setused(false);這時候,系統自然就會停止表情動畫

的處理了。在某些情況下,cpu處理能力剩餘,或者需要骨骼動畫接過了,我們可以

querymodifier( viid_v3dskinmodifier ),獲得skin控制,然後setsoftmode( true );

這時候,系統會把骨骼動畫用cpu處理好,存放在v3dmesh中交給使用者,然後繼續後面的

tex0slerp的gpu處理。當然,由於目前gpu的vb回寫還不行,要改變中間的modifier為

soft,恐怕還是不行,等d10硬體普及了這個也許就不是問題了,此外,因為constant buffer

這個激動人心的特性的引入,也不會因為modifier占用太多const register而讓shader

無法執行了。

在考慮新增別的modifier,比如處理披風的布料modifier一類的,有時間可以再好好

試驗試驗。

好了,就這麼多了,畢竟公司的事情多,明天後兩天估計要忙得暈頭轉向了。

華為機試3

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 1000 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 去重 與 排序...

目標檢測 YOLO系列v1 v2 v3

人類對於物體只需要看一眼就能知道該物體是什麼,在什麼位置,人類的視覺系統是非常快速而準確的,因此如果能夠加速演算法使得計算機系統也能夠快速而準確的話,就能夠代替人而實現無人駕駛。而目前的一些方法,rcnn系列的都是一套複雜的流程,首先生成一些可能的邊框區域,再對邊框進行分類,之後再修正邊框的位置,然...

3V轉2 8V穩壓晶元

3v轉2.8v可根據電流來選用1,ldo線性晶元,2,dc dc降壓晶元 ldo線性晶元 一般我們都追求極簡的外圍電路和元器件的晶元,對於電流小的,不追求效率的,ldo晶元就是第乙個選擇了。ldo產品 輸入電壓 輸出電壓 輸出電流 靜態功耗 封裝 pw6566 1.8v 5.5v 1.2v 5v多 ...