2017-03-03 75 views
0

Microsoft IE11支持WebGL,但不支持使用gl.texImage2D()從視頻加載紋理。請參閱「錯誤」在這裏:如何使用HTMLVideoElement源檢測WebGL texImage2D的瀏覽器支持

http://connect.microsoft.com/IE/feedbackdetail/view/941984/webgl-video-upload-to-texture-not-supported

除了專門檢測IE11和黑名單它,有沒有一種方法來檢測此功能的瀏覽器支持嗎?

當我嘗試使用視頻元素作爲紋理源,我在控制檯看到以下錯誤:

WEBGL11072: INVALID_VALUE: texImage2D: This texture source is not supported 
WEBGL11098: drawArrays: The texture is a non-power-of-two texture or not mipmap complete 

我也許能解決一個機制來檢測NPOT紋理支持,這將我試圖加載的視頻幀可能會一直存在。

回答

1

有沒有辦法檢測瀏覽器對這個功能的支持?

從你的問題看起來很簡單。創建一個小視頻,嘗試通過調用texImage2D將其上傳到紋理,如果不是NO_ERROR,則不支持視頻,請致電getError

除非有IE11的WebGL的那麼NPOT支持應該是在所有WebGLs相同甚至更多的錯誤,我可能能夠解決的機制,以檢測NPOT紋理

支持。 (所有WebGL 1.0)

也就是說,如果您使用NPOT紋理,則必須將包裝設置爲CLAMP_TO_EDGE,並將最小過濾設置爲NEARESTLINEAR。您也不能撥打generateMipmap(根據所需的過濾,無論如何都不會有任何問題),同樣您只能上傳mip級別0.

+0

「試試吧,看看您是否有錯誤」不是我的主意檢測某個功能的支持,但也許這是解決此問題的唯一方法。 –

+0

是的,沒有其他的方式,我知道。抱歉。沒有支持的格式列表。 IE11的WebGL支持也有其他問題 – gman

相關問題