2017-01-23 13 views
0

を「WebGLのコーディング」と考え2Dコンテキストです - どちらもGPUで動作しますか?は、私は以下のようにコードを書いていたとき

b)どちらもWebglコーディングと見なされますか?

+0

これらの2つのコードは、おそらくGPU加速されます(最初のものは古いブラウザではCPUがレンダリングされている可能性があります)。第2の部分だけがwebglであり、第1の部分とは異なる機能を公開しています。 –

+0

"2d"で書かれたコードを "experimental-webgl"で実行します。私はGPLで自分のコードを実行したいので、私はどのように使用して/ 2dコードをwebglに変換できますか? – user6730740

+0

2dとwebglのコンテキストには、非常に異なるAPI(および別の目的)があるため、コードを簡単に翻訳する方法はありません。しかし、2Dキャンバスは現代のブラウザではデフォルトで加速されます。これをチェックしてください:[http://stackoverflow.com/questions/32815646/is-canvas-element-in-html5-hardware-accelerated](http://stackoverflow.com/questions/32815646/is-canvas-element -in-html5-hardware-accelerated) –

答えて

0

"2d"と "webgl"のどちらがGPUアクセラレーションであるかは、ブラウザとOSによって異なります。

たとえば、you can run Chrome using osmesaとなります。完全にソフトウェアでレンダリングされます。

一般的に、WebGLコンテキストは、ほとんど常にGPUアクセラレーション、それが依存する2dコンテキストです。私はある時点でクロムで加速したGPUではなく、小さなものを描くためにGPUよりも一般的に高速だったため、一定のサイズの下で2次元のコンテキストを知っていました。まだそれが本当であるかどうかはわかりませんが、それはブラウザやOSに依存するという点です。

2dコンテキストは "webgl"コーディングではありません。 WebGL coding is writing GLSL shaders and calling all the necessary functions to supply those shaders with data

+0

あなたの答えをありがとう。 GPUやCPU上でコードが実行されている場合、どのように視覚的にチェック/検証することができますか教えてください。 – user6730740

+0

クロムの 'about:gpu'に行きチェックをすることができますが、できるだけGPUアクセラレーションを常に使用しているかどうかはわかりません。言い換えれば、 "about:gpu"と書かれていても、キャンバス2dはGPUアクセラレーションされていますが、これはクロムが常にGPUアクセラレーションを使用しているわけではありません。小さなコンテキストが加速されていないことについては、上記の例を参照してください(少なくとも過去は)。 WebGLの場合、 '{failIfMajorPerformanceCaveat:true}'を 'getContext'の第2引数として渡すこともできます。もちろん、webglがない場合は失敗しますので、おそらく2つのコンテキストを作る必要があります。 – gman

関連する問題