如果獲得一幀的繪製總頂點數?

時間 2021-05-12 01:45:59

1樓:取經路上

底層圖形工具直接有提供,工具一般做法也是直接在drawcall函式中統計計算,因為傳入進去的都需要進行vertex shader。

2樓:神秘的什錦飯

我覺得這裡有幾個不同的可以統計的東西:一是從程式這頭看到的,提交的draw call(繪圖呼叫)中的面數和頂點數,另一是經過GPU的管線時每一步時所處理了的面數和頂點數,譬如經過曲面細分之後,在GPU一側的頂點數就會比在CPU一側看到的多,或是用了geometry shader生成了更多的三角形;這樣的話,這個問題其實也可以問得很細,因為角度的不同答案也不同,也就沒有「最正確」的解答了吧。所以姑且可以用大家都用的query(查詢)?

發現DX中也叫Query:D3D11_QUERY_DATA_PIPELINE_STATISTICS

在測量時間時可能有個因素會有些影響,就是GPU有可能會同時並行處理多個繪圖呼叫,多個呼叫重疊時,所花時間可能就不同於時間相加之和。不過如果把統計的範圍擴大一點,比如擴大到每乙個渲染步驟(譬如深度緩衝、G-buffer、環境遮蔽、後處理、UI等),因為每一步之間都是有依賴的,所以每個步驟之間仍然是順序進行的,那就可以粗略地統計一下每一步所用時間了吧。

3樓:Milo Yip

提交的 primitive、vertex 數量可自行在 drawcall 的時候統計得到。

通常不會考慮面(以及相關頂點)是否被剔除,因為無論剔除與否,頂點都要進行 vertex shader 等工作。

更重要的統計是填充率及每個 drawcall 的時長,一些 API 提供相關的查詢功能,如 Query Object - OpenGL Wiki。

怎麼定位乙太網MAC層的一幀資料的開始和結尾?

馬蒂奧 王一一同學說的很好,我再補充一點,就是關於乙太網傳輸的位元組序和位元序問題。通常我們的資料是採用大端位元組序,即高位位元組的資料放在位址的起始。但是每個位元組裡面的位元序呢?乙太網規定先傳輸低位位元,如果是快速乙太網,它的接線有四位,那麼2個位元組資料a 15 0 就要這麼傳輸 a 11 8...

剛剛開始玩狙的萌新問一下各位大神一幀拉半個螢幕時是什麼體驗

噴我你就對 這邊建議沒必要練,原因很簡單,作為新手,你拿狙的機會不多。乙個狙最最重要的是別死,對面知道這條路有狙架和有步槍微衝架是不一樣的應對處理,打掉對面一把狙和打掉對面一把步槍也是不一樣的心態。如果乙個狙擊手經常死,那麼他就是隊內經濟黑洞可以試試步槍的拉槍定位,乙個優秀的狙擊手首先是乙個優秀的步...

如果你可以獲得乙個假面騎士的力量你想獲得那個騎士的力量

Joker 還用說嗎?至強至善的逢魔時王呀 大金錶腰上戴,甚至一揮手就變身,全騎士力量,時空之力,直接乙個掛B,隨隨便便毀滅世界,嗯哼? 南斗水鳥拳 雷伊 V3或者新一號,新二號假面騎士,體術強得不行,都是踢力過百噸,拳力幾十噸的牛人,一號48種必殺想想就覺得帥的不行啊,二號一拳打死好幾個戰鬥員,這...