2013-05-09 54 views
1

通常建議不要使用矢量圖形的手機遊戲,或預光柵化操作 - 對性能。這是爲什麼?我雖然那OpenGL是至少擅長畫線/三角形渲染屏幕上的圖像...OpenGL的矢量圖形在移動設備上渲染性能

+0

柵格化他們緩存他們,所以開銷較少發生VS計算每一個座標矢量和繪圖(更多抽獎週期和更多的CPU使用率) – 2013-05-09 18:49:46

回答

3

柵格化他們緩存它們爲圖像,以便減少開銷發生VS計算每一個座標矢量和繪圖(更多抽獎週期和更多的CPU使用)。繪製一個矢量就是這樣,你在每次調用時都是從一個點到另一個點繪製弧,而在一個帶有緩存的圖像文件的特定座標上顯示一個圖像。

+0

有很多的在App Store的3D遊戲。它們的渲染難度比平均2D矢量遊戲要高10倍,但通常沒有性能問題!我錯了嗎? – cubuspl42 2013-05-09 18:53:54

+1

生成3D模型的3D程序就是這樣,是的。但是,比較3D遊戲與任何2D遊戲的表現,你會看到不同之處。 3D遊戲使用光柵圖形作爲物體的圖像,因此它們是2的混合體。它歸結爲預先渲染的圖像和動態創建的圖像。 – 2013-05-09 18:57:27

+3

我認爲如果您認爲3D遊戲中沒有任何性能問題,您會被誤導。與任何3D遊戲開發者交談,他們會告訴你優化是一切,不應該被當成自動魔法。很難讓3D遊戲在移動設備上表現良好,直到過去一年,甚至在大多數情況下限制質量與數量(幀速率)以實現可播放性。關鍵要記住的是,一切都只是一個工具,使用正確的工具來完成工作。如果您需要可縮放圖形,請使用SVG,如果不是,則利用柵格的性能優勢。 – 2013-05-09 19:00:04

1

雖然使用冒名頂替者是一個偉大的優化技巧,這取決於騙子形狀,多少透支參與,只要你需要在這個過程中融合了技巧可以讓你將填充率約束。同樣在形狀可能改變的一些場景中,將圖形緩存到冒名頂替者可能不可行,或者可能在其他開銷中產生。是在平衡你的渲染管道。

+1

對不起,但我沒有太多。還是謝謝你的回答。 – cubuspl42 2013-05-09 19:27:28

+0

:)不客氣 – Trax 2013-05-09 19:28:34

1

答案取決於硬件。你使用GPU還是非?今天,帶有Android和IOS的現代移動設備在芯片組中嵌入了GPU單元。 這款GPU非常適合使用矢量圖形。爲了探究這一點,大多數GPU除了有一個或多個像素處理器之外,還有一個專用的幾何處理器。 (例如Mali-400 GPU)。 舉例來說,讓我們假設你想繪製一個200個不同顏色的透明圓圈。 如果你用現代的OpenGL來做,你只需要一組幾何圖形(形成一個圓的三角形列表)和每個圓的參數列表,比如說位置和顏色。如果您將這些信息提供給GPU,它將很快並行繪製。

如果您在使用不同的紋理爲每個顏色做到這一點,你的程序將是非常沉重的(在存儲大小),可能會更慢,由於內存帶寬問題。

這取決於你想做的事,和硬件。如果你的硬件沒有GPU,你可能應該預渲染你的圖形。