自動(dòng)Shader優(yōu)化器glsl_optimizer的編譯與使用-創(chuàng)新互聯(lián)

glsl_optimizer是一個(gè)免費(fèi)開(kāi)源的glsl優(yōu)化器??梢陨蒅PU無(wú)關(guān)的shader優(yōu)化代碼??梢赃M(jìn)行非常多的優(yōu)化項(xiàng)目,比如函數(shù)內(nèi)連,死代碼刪除,常量折疊,常量傳遞,數(shù)學(xué)優(yōu)化等等。

GitHub地址為:
https://github.com/aras-p/glsl-optimizer

我們首先需要編譯命令行工具。該工具同時(shí)支持VS和XCode工程。但是打開(kāi)工程我們發(fā)現(xiàn)

成都創(chuàng)新互聯(lián)公司憑借專業(yè)的設(shè)計(jì)團(tuán)隊(duì)扎實(shí)的技術(shù)支持、優(yōu)質(zhì)高效的服務(wù)意識(shí)和豐厚的資源優(yōu)勢(shì),提供專業(yè)的網(wǎng)站策劃、成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)站優(yōu)化、軟件開(kāi)發(fā)、網(wǎng)站改版等服務(wù),在成都十余年的網(wǎng)站建設(shè)設(shè)計(jì)經(jīng)驗(yàn),為成都上千多家中小型企業(yè)策劃設(shè)計(jì)了網(wǎng)站。

自動(dòng)Shader優(yōu)化器glsl_optimizer的編譯與使用

工具作者只提供了一個(gè)測(cè)試用例和lib的編譯target,沒(méi)有提供命令行工具的target。

好在SIO2作者提供了一套命令行工具代碼。我從SDK中扒出來(lái),放到項(xiàng)目里即可。這樣我們就能用上最新版本的glsl_optimizer了。

首先復(fù)制名為glsl_optimizer_tests的target,并重命名為glsl_optimizer_bin。

自動(dòng)Shader優(yōu)化器glsl_optimizer的編譯與使用

然后在當(dāng)前target中,打入代碼文件main.cpp(文件已上傳到附件),并移除代碼文件glsl_optimizer_tests.cpp的引用。

然后我們要在main.cpp中設(shè)置一下要優(yōu)化的glsl版本。

//TODO 請(qǐng)?zhí)顚懩阋獌?yōu)化的glsl版本
ctx = glslopt_initialize( kGlslTargetOpenGLES20 );

支持如下參數(shù):

// Optimizer target language
enum glslopt_target {
    kGlslTargetOpenGL = 0,
    kGlslTargetOpenGLES20 = 1,
    kGlslTargetOpenGLES30 = 2
};

然后我們就可以編譯了。

編譯完成后,我們找到生成的二進(jìn)制程序。將其和待優(yōu)化的glsl腳本復(fù)制到合適位置。

然后使用命令行:

./glsl_optimizer_bin -in vertex.glsl -out vertex.glsl -profile GL_VERTEX_SHADER
 
./glsl_optimizer_bin -in fragment.glsl -out fragment.glsl -profile GL_FRAGMENT_SHADER

來(lái)調(diào)用工具優(yōu)化shader,該命令非常好懂,不再贅述。

優(yōu)化之后的控制臺(tái)顯示為:

自動(dòng)Shader優(yōu)化器glsl_optimizer的編譯與使用

然后將優(yōu)化后的腳本復(fù)制回項(xiàng)目。編譯運(yùn)行即可看到FPS有一定程度的提升。項(xiàng)目越大shader腳本越多,越復(fù)雜,優(yōu)化效果越明顯。

我簡(jiǎn)單測(cè)試一下繪制200個(gè)四千多面模型,在iPad mini2上

優(yōu)化前的效果:

自動(dòng)Shader優(yōu)化器glsl_optimizer的編譯與使用

優(yōu)化后的效果:

自動(dòng)Shader優(yōu)化器glsl_optimizer的編譯與使用

附件:http://down.51cto.com/data/2364780

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章標(biāo)題:自動(dòng)Shader優(yōu)化器glsl_optimizer的編譯與使用-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://www.bm7419.com/article36/dpcgsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)