最近在測試移動端適配性的時候發(fā)現(xiàn)模型的貼圖有時候會變成純黑色,每次刷新變黑的部分還會隨機(jī)不一樣,而且首次加載一般沒問題,關(guān)掉網(wǎng)頁再次加載的時候極高概率觸發(fā)。
搜了一下發(fā)現(xiàn)Three.js官方也知道這個問題,問題的起因是:ios15.x系統(tǒng)中更新了貼圖機(jī)制,導(dǎo)致貼圖無法加載,three.js官方給出的結(jié)論是這是ios本身的bug,可以通過如下方式改善這個問題:
//修復(fù)部分紋理隨機(jī)黑色問題
const IS_IOS =
/^(iPad|iPhone|iPod)/.test(window.navigator.platform) ||
(/^Mac/.test(window.navigator.platform) && window.navigator.maxTouchPoints > 1);
if (IS_IOS) {
window.createImageBitmap = undefined;
}
原理是在ios上關(guān)閉bitmap,測試后確實(shí)好了,但官方也給出了限制:如果貼圖過多(超過20張),可能還是會出現(xiàn)此類問題。