亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

WebGL2系列之不可變紋理

xinhaip / 710人閱讀

摘要:除此之外,還可以通過(guò)函數(shù)獨(dú)立指定紋理的每個(gè)的級(jí)別。這種繪圖時(shí)檢查可能代價(jià)很高,而使用不可變紋理可以避免這種情形。不可變紋理使用不可變紋理,可以減少上文中提到的因檢查而導(dǎo)致的性能開(kāi)銷(xiāo)。不可變紋理指的是紋理的一種分配方式,而不是值紋理的內(nèi)容。

紋理背景知識(shí)

在WebGL1中,紋理包括2D紋理和立方體紋理,在實(shí)際的使用中,如果紋理的圖片是寬和高是2的冪,可以自動(dòng)生成紋理的mipmap。
除此之外,還可以通過(guò)gl.texImage2D函數(shù)獨(dú)立指定紋理的每個(gè)mipmap的級(jí)別。
因此,這會(huì)導(dǎo)致一個(gè)一般的編程人員不易覺(jué)察的問(wèn)題,這涉及到顯卡底層驅(qū)動(dòng)。
簡(jiǎn)單來(lái)說(shuō),就是會(huì)導(dǎo)致驅(qū)動(dòng)程序無(wú)法在繪圖之前確定紋理是否完全指定,因此它必須檢查每一個(gè)mip貼圖級(jí)別或者子圖像的格式是否相符、每一個(gè)級(jí)別的大小是否正確以及是否有足夠的內(nèi)存。這種繪圖時(shí)檢查可能代價(jià)很高,而使用不可變紋理可以避免這種情形。

不可變紋理

使用不可變紋理,可以減少上文中提到的因檢查而導(dǎo)致的性能開(kāi)銷(xiāo)。 不可變紋理指的是紋理的一種分配方式,而不是值紋理的內(nèi)容。
不可變紋理的思路是:在給紋理加載紋理數(shù)據(jù)之前,先指定紋理的格式和大小,顯卡驅(qū)動(dòng)程序可以提前進(jìn)行一致性、內(nèi)存的檢查,一旦指定了紋理的格式和大小之后,紋理的格式和尺寸就不能更改,但是可以通過(guò)gl.texSubImage2D、texSubImage3D(注意不能用gl.txtImage2D)等方法來(lái)加載紋理的數(shù)據(jù),同時(shí)還可以使用such as render-to-texture, mipmap generation等方式加載紋理數(shù)據(jù)。

texSubImage3D(以及后面提到的texStorage3D)方法與3D紋理有關(guān),后續(xù)相關(guān)文章會(huì)介紹。
創(chuàng)建不可變紋理

創(chuàng)建不可變紋理很簡(jiǎn)單,首先通過(guò)gl.bindTexture方法綁定紋理對(duì)象,然后通過(guò)調(diào)用gl. texStorage2D、texStorage3D指定紋理的大小和格式,來(lái)創(chuàng)建不可變的存儲(chǔ)空間。代碼如下:

  // -- Allocate storage for the texture
 gl.texStorage2D(gl.TEXTURE_2D, 1, gl.RGB8, 512, 512);
 gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGB, gl.UNSIGNED_BYTE, image);
 gl.generateMipmap(gl.TEXTURE_2D);
不可變紋理可以?xún)?yōu)化性能

在很多情況下,我們的紋理的尺寸和數(shù)據(jù)格式都是不需要改變的。使用不可變紋理,可以避免驅(qū)動(dòng)程序?qū)@些不需要改變的尺寸和數(shù)據(jù)格式的紋理對(duì)象進(jìn)行一致性和內(nèi)存大小的檢查,因此可以獲得更佳的性能。

案例:使用不可變紋理

暫無(wú)

后記

本節(jié)只講述了2D的不可變紋理,3D的不可變紋理類(lèi)似,在將3D紋理的時(shí)候會(huì)進(jìn)一步講述。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/92612.html

相關(guān)文章

  • WebGL2系列之多采樣渲染緩沖對(duì)象

    摘要:在很久很久以前,使用的時(shí)候,只能在默認(rèn)的繪制的緩沖區(qū)上面使用,而不能在幀緩沖區(qū)上面實(shí)現(xiàn),更加形象的說(shuō)就是不能用于離屏渲染。下面是該函數(shù)的簽名該函數(shù)的作用就是,把一個(gè)幀緩沖區(qū)上的指定區(qū)域像素轉(zhuǎn)移給另外一個(gè)幀緩沖區(qū)上的指定區(qū)域。 在很久很久以前,盤(pán)古開(kāi)辟了天地,他的頭頂著天,腳踩著地,最后他掛了。他的毛發(fā)變成了森林,他的血液變成了河流,他的肌肉變成了大地。。。。。???! 哦,不對(duì),在很久很...

    vpants 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<