glDrawArrays 和 glDrawElements繪制的區(qū)別
比如畫一個(gè)由2個(gè)3角形組成的正方形陋率,左上角坐標(biāo)是l,t,右下角坐標(biāo)是r,b
使用glDrawArrays繪制時(shí)咧党,畫2個(gè)三角形玄妈,需要這樣傳如下形式的數(shù)組:
[ (l,t),(r,t),(l,b)(r,t),(r,b),(l,b)]
而用glDrawElements渲染場(chǎng)景的話可以這樣float coord[4][2]=[{l,t},{r,t},{r,b},{l,b}];
繪制時(shí)的索引數(shù)組:[0,1,31,2,3]
glDrawArrays 和 glDrawElements的性能區(qū)別
glDrawArrays傳輸或指定的數(shù)據(jù)是最終的真實(shí)數(shù)據(jù),在繪制時(shí)效能更好
而glDrawElements指定的是真實(shí)數(shù)據(jù)的調(diào)用索引,在內(nèi)存/顯存占用上更節(jié)省
glDrawArrays 和 glDrawElements的損耗說(shuō)明及其使用場(chǎng)景
glDrawArrays主要講數(shù)據(jù)空間損耗在頂點(diǎn)的定義處;
glDrawElements主要講數(shù)據(jù)空間損耗在頂點(diǎn)索引的定義處;
如果在你的工程中凝颇,畫的圖形較少或者婶芭,圖形雖多但很多相同的纤勒,則可采用glDrawArrays更節(jié)省數(shù)據(jù)占用的空間;相反逢防,如果圖形多叶沛,而且形狀大不相同的時(shí)候,可以優(yōu)先考慮采用glDrawElements函數(shù)忘朝。