任何使用three.js的人都可以告訴我它是否有可能檢測到webgl支持,並且如果不存在則回退到標準Canvas呈現器?Three.js檢測webgl支持並回退到普通畫布
36
A
回答
59
是的,這是可能的。您可以使用CanvasRenderer
而不是WebGLRenderer
。
關於WebGL的檢測:
1)閱讀這篇WebGL維基百科文章:http://www.khronos.org/webgl/wiki/FAQ
if (!window.WebGLRenderingContext) {
// the browser doesn't even know what WebGL is
window.location = "http://get.webgl.org";
} else {
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("webgl");
if (!context) {
// browser supports WebGL but initialization failed.
window.location = "http://get.webgl.org/troubleshooting";
}
}
2) three.js所已經擁有了WebGL的探測器: https://github.com/mrdoob/three.js/blob/master/examples/js/Detector.js
renderer = Detector.webgl? new THREE.WebGLRenderer(): new THREE.CanvasRenderer();
3)檢查也Modernizr的檢測: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/webgl.js
10
胡安Mellado的指針three.js所檢測是超級有用的,但我不想把整個文件到我的項目。所以這裏是提取的Detector.webgl()函數。
function webglAvailable() {
try {
var canvas = document.createElement("canvas");
return !!
window.WebGLRenderingContext &&
(canvas.getContext("webgl") ||
canvas.getContext("experimental-webgl"));
} catch(e) {
return false;
}
}
而且它採用了類似於他的榜樣:
renderer = webglAvailable() ? new THREE.WebGLRenderer() : new THREE.CanvasRenderer();
相關問題
- 1. 支持浮動設備上的畫布和WebGL(three.js)?
- 2. 如何知道畫布是普通畫布還是webgl畫布
- 3. WebGL多畫布three.js示例
- 4. 畫布到WebGL
- 5. WebGL檢測爲支持時,它實際上不支持
- 6. Three.js:如果沒有檢測到webgl,如何殺死three.js?
- 7. Pywebkitgtk three.js所不能檢測的WebGL
- 8. 測試是否支持Three.js
- 9. 檢測支持通知
- 10. TideSDK支持WebGL
- 11. 在html5 webgl畫布動畫中組織對象three.js
- 12. KineticJS VS普通畫布
- 13. 檢測畫布文本API支持(Opera Mini)
- 14. 如何使用HTMLVideoElement源檢測WebGL texImage2D的瀏覽器支持
- 15. 檢測webgl支持,我們應該使用Detector.js還是system.min.js?
- 16. 對XMLHTTPRequest的回退支持
- 17. 支持腳本夏普單元測試?
- 18. three.js所到WebGL的OpenGL的
- 19. three.js所和WebGL
- 20. Soundcloud:檢測缺少的localStorage支持並通知用戶
- 21. compoundjs支持SSL和普通的HTTP
- 22. Android中的支持庫與普通庫
- 23. 是否由webgl支持texture2DRect?
- 24. WebGl支持android&iphone webviews
- 25. WebGL:畫布座標到三維座標
- 26. AngularJS綁定到的WebGL /畫布
- 27. WebGL將紋理映射到畫布
- 28. THREE.js靜態場景,檢測webgl渲染完成時
- 29. Webgl鉻空白畫布
- 30. PlayN WebGL性能畫布
法的1/3,如果瀏覽器支持WebGL的失敗,但不能使用它的一些原因(如司機被列入黑名單),這是爲什麼方法2使用帶有try/catch塊的函數,並檢查上下文是否可以真正創建。 – 2013-07-22 16:31:47