多邊形精靈
多邊形精靈(Polygon Sprite) 也是一個精靈,同樣是爲了展示一個可以被控制的圖像,但是和普通精靈的區別是,普通精靈在繪圖處理中被分爲了兩個三角形,多邊形精靈則是被分爲了一系列三角形。
爲什麼要使用多邊形精靈
提高性能!
要深入分析這個是如何提高性能的,會需要很多和像素填充率有關的技術術語。幸好本節是入門性質的文檔,能讓大家理解多邊形精靈比普通精靈性能好就可以了,不用討論特定寬高矩形繪製時的性能問題。
注意左右兩種情況的不同。
左側,是一個典型的精靈繪製時的處理,精靈被處理成一個有兩個三角形組成的矩形。
右側,是一個多邊形精靈繪製時的處理,精靈被處理成一系列小的三角形。
顯然可以看到,右側多邊形精靈需要繪製的像素數量比左側精靈需要的像素數量更小,但是由於劃分了多個三角形出現了更多的頂點,由於在現代的圖形處理中,一般繪製定點比繪製像素消耗的性能少。所以多邊形精靈的性能更好,實際的測試結果也驗證了這一點。
AutoPolygon
AutoPolygon
是一個工具類,它可以在程序運行時,通過跟蹤關鍵點和三角測量,將一個矩形圖像劃分成一系列小三角形塊。
首先將圖像資源傳入 AutoPolygon
進行處理,然後我們使用它生成的對象進行精靈的創建就能得到多邊形精靈。
// Generate polygon info automatically.
auto pinfo = AutoPolygon::generatePolygon("filename.png");
// Create a sprite with polygon info.
auto sprite = Sprite::create(pinfo);