日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NGUI减少Drawcall

發布時間:2024/9/30 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NGUI减少Drawcall 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、NGUI圖集的使用。

?

圖集,直接關系到了drawcall的數量。最好就是自始至終都只使用同一個圖集中的元素,在界面制作上drawcall的消耗就只會受到Panel的劃分以及字體與圖集的混合使用這兩部分的影響。

?

在制作圖集時,可以分為兩個制作方向。一是以NGUI自帶的某一圖集為基礎,將自己需要使用的元素添加到該圖集中。這樣做的好處是可以在界面制作時使用NGUI提供的一些元素。

再一個方向就是制作一個全新的圖集。這適合于對界面進行整體設計的情況,全部的界面元素都進行重新設計,然后制作成圖集來使用。

?

另外,在使用NGUI自帶的圖集時,要注意在該圖集的副本上進行新元素的添加、刪除操作,避免對NGUI自身造成不必要的影響。

?

2、界面元素深度的設置與drawcall的控制。

?

在使用NGUI制作界面時,如果我們自始至終都使用唯一的圖集,界面上的文字使用動態字體制作,

?

那么drawcall的消耗數量就只與Panel的劃分以及同一個Panel下圖集元素與字體元素的深度設置排列有關了。

?

我們知道,在NGUI中,它消耗的drawcall是以每個Panel為獨立計算單位進行計算的。所以我們只要把一個Panel下的drawcall計算方式搞明白,然后再對Panel的劃分加以控制,就能都達到有效控制drawcall的目的了。

?

在同一個Panel之下,如果所有的界面元素都使用同一個圖集來制作,而且沒有動態字體的“干擾”,那么該Panel消耗的drawcall數量就是1。這可以通過鼠標選中UIPanel的游戲對象來查看drawcall的使用情況

?

?

還是在同一個Panel之下,如果在圖集使用過程中,還配合使用了動態字體,或是使用了不同的圖集,那么該Panel下drawcall的計算就和其下元素的深度設置密切相關了。

?

一句話總結就是:為同一圖集的元素設置一段獨立的深度值區間,不同的圖集元素或動態字體使用不同的深度值區間,盡量不要穿插。舉例說明:

?

在同一個Panel之下,假設

?

深度值區間(-200, -100),圖集1元素使用;

?

深度值區間(-100, 0),圖集2元素使用;

?

深度值區間(0, 100),圖集3元素使用;

?

深度值區間(100, 200),圖集4元素使用;

?

按照上述情況計算,該Panel的drawcall值為4。但是,如果我們在使用時,不同的圖集或動態字體的深度值出現了穿插,那么drawcall會出現猛增的情況,因為這里的drawcall計算方式是在使用的整個深度區間上,每遇到一個不同的圖集,drawcall就會加1,不論該圖集之前是否使用過,與此沒有關系,都會加1。這就要求我們,在不影響功能實現的前提之下,對界面元素的深度值進行合理的排布設置。

?

?

3、動態字體的使用。

?

就是把字體也融入到圖集之中,就像NGUI使用的方式那樣。那么drawcall的消耗數量就又能降低不少了,相當于從使用兩個圖集變成只使用一個圖集。

?

總結

以上是生活随笔為你收集整理的NGUI减少Drawcall的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。