2012-12-30 63 views
0

我正在爲2D場景中的每個精靈調用glDrawElements。我想改變這一點。2D雪碧分批

該場景由到屏幕外呈現緩衝區中(FBO),並且在當前正在用來組成整個場景只有一個精靈片的質感。

如果我將所有glDrawElements排隊到一個單獨的大緩衝區中,我認爲這樣會工作,但是......將來(當我有多個sprite-sheet紋理時),我必須提交當前緩衝區每次需要撥打glBindTexture

我問的原因(對於這個通常很明顯的問題)是,FBO有一個深度緩衝區,這讓我想知道我繪製精靈的順序可能是微不足道的(這意味着我可以繪製所有的精靈爲一個紋理,然後繪製所有的精靈爲其他質地,而忽略其中我畫他們(使用Z軸對它們進行排序)的順序。

回答

2

如果沒有混合涉及的順序事實上確實沒有關係。但是,有一個更好的方法:使用textue圖集

這意味着使用一個繪製調用來繪製所有的精靈,幷包括紋理座標選擇哪個精靈使用(單)質地只包含人。我並肩作戰。

+0

除非紋理圖譜被允許超過OpenGL實現的最大紋理尺寸限制,否則在我的情況下是沒用的。我的精靈表是使用我的工具構建的,對於給定的最大紋理尺寸儘可能最佳。 –