2009-10-25 28 views
1

在大街上的字是glDrawElements比glDrawArrays快得多。glDrawElements和多個圖像

所以我想顯示所有使用glDrawElements。我遇到的問題是我有一堆想要彈出到屏幕上的圖像。每個圖像都有不同的紋理。

是否可以使用glDrawElements來做到這一點?

我該如何切換紋理

回答

0

如果您經常在多個圖元之間共享頂點,則頂點索引(即glDrawElements)可以大大減少頂點緩衝區的大小。

例如,如果您使用GL_TRIANGLES繪製網格,則一定要使用索引。如果你只是畫一堆不相交的三角形,那麼沒有太多理由使用索引。

不管你是否使用glDrawElementsglDrawArrays,它總是希望減少繪製調用的次數。使用紋理地圖集可讓您合併多個平局調用,否則將與調用glBindTexture分開。

0

您不能,直接。

你可以做的是製作一個紋理圖集,通過製作一個包含所有小紋理的大紋理,然後相應地調整紋理座標。

另外,您從哪裏聽說過glDrawArraysglDrawElements之間的比較?我從來沒有見過一個令人信服的,全部包括在內的比較。

+0

我從一個名爲71平方的網站上的視頻教程中得到它。無論如何,我想對iphone而言......使用3 gldrawarrays調用vs 1 gldrawelement調用的速度非常慢,原因是使用了cpu並且iphone cpu無法跟上。使一個呼叫使用圖形硬件加速來做同樣的事情。 – Mel 2009-11-01 15:57:03