three.jsを使用した人は、webglサポートを検出する可能性がある場合は教えてください。Three.jsがwebglサポートを検出し、通常のキャンバスにフォールバック
36
A
答えて
59
はい、可能です。 WebGLRenderer
の代わりにCanvasRenderer
を使用できます。 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検出器:Three.js検出器へ https://github.com/Modernizr/Modernizr/blob/master/feature-detects/webgl.js
10
ファンMelladoのポインタが超便利でしたが、私は私のプロジェクトにファイル全体を持っていないことを好みます。 Detector.webgl()関数を次に示します。
function webglAvailable() {
try {
var canvas = document.createElement("canvas");
return !!
window.WebGLRenderingContext &&
(canvas.getContext("webgl") ||
canvas.getContext("experimental-webgl"));
} catch(e) {
return false;
}
}
そして、彼の例と同様に使用されています。ブラウザはWebGLのをサポートしている場合に失敗します
renderer = webglAvailable() ? new THREE.WebGLRenderer() : new THREE.CanvasRenderer();
関連する問題
- 1. mobleデバイスでCanvasとWebGL(three.js)をサポートしていますか?
- 2. THREE.js webGLガベージコレクション
- 3. 通知のサポートの検出
- 4. WebGL Three.jsとCSSリセット
- 5. three.js to webGL to OpenGL
- 6. Three.jsカメラコントロールが動作しない&WebGLシェーダ
- 7. WebGL/Three.jsの値の境界
- 8. three.jsでWebGL Earthを作成
- 9. コードウェブアプリケーション(three.js)の "WebGL missing"エラー
- 10. 通常のキャンバス/テキストアウトでUpdateLayeredWindow
- 11. WebGL Three.js ColladaLoaderの例が失敗する
- 12. WebGL Three.jsコンテナがスクロールイベントを捕捉しないようにする
- 13. WebGLとthree.jsでイメージのワーピングエフェクトを作成
- 14. Webgl three.js複数のオブジェクトの依存性
- 15. Chrome WebGLソフトウェアのフォールバックが使用されていません
- 16. クライアントのwebgl機能を検出する
- 17. WebGL:スムーズにキャンバスから線を消す
- 18. Three.js複数のキャンバスとシェーダ
- 19. 通常のHTML/CSSウェブサイトとwebGL(ThreeJS)を組み合わせる
- 20. HTML 5枚のキャンバス:検出キャンバス
- 21. Three.js/WebGL - 他のプレーンを隠している透明なプレーン
- 22. three.jsでWebGLレンダラーを使用してクリックしたサークル
- 23. RailsがFacebookの共有と通常のページビューを検出しています
- 24. WebGL/three.jsで2つのメッシュをスムーズに補間する
- 25. html5でオブジェクトを整理するthree.jsを使用したwebglキャンバスアニメーション
- 26. WebGLレンダラーを使用してthree.jsでsvgを表示
- 27. 通常のキャンバスURLにhttpsを使用できますか?
- 28. 通常のGoogleカスタム検索
- 29. Three.js PointerLockControlsとPhysisjsの衝突検出
- 30. Three.js衝突検出の問題
方法1/3に過ぎない(ドライバがブラックリストされているように)何らかの理由でそれを使用することはできませんなぜ方法2はtry/catchブロックで関数を使用し、実際にコンテキストを作成できるかもチェックします。 –