2016-11-16 10 views
2

フレームにレンダリングされたピクセルデータを読み込んで処理します。 私はaframe:キャンバスからピクセルを取得する方法

var canvas = document.querySelector('canvas'), 
params = { 
    preserveDrawingBuffer: true, 
}, 
gl = canvas.getContext('experimental-webgl', params); 
var pixels = new Uint8Array(canvas.width * canvas.height * 4); 
gl.readPixels(
    0, 
    0, 
    canvas.width, 
    canvas.height, 
    WebGLRenderingContext.RGBA, 
    WebGLRenderingContext.UNSIGNED_BYTE, 
    pixels 
    ); 

以下のコードを試してみました。しかし、画素アレイが、私はキャンバス上のピクセルデータを読み取ることができますどのように0、0、0、0 の残っていましたか? 私はあなたが言うの行にブレークポイントを見つけて入れ、the demo you postedではこの問題

+0

「左の0,0,0,0」とはどういう意味ですか?なぜ四次元空間を扱っているのですか? –

+0

多分これは助けることができる - http://stackoverflow.com/questions/17981163/webgl-read-pixels-from-floating-point-render-target –

+1

もちろんそれは '0,0,0,0'です。新しいキャンバスを作成して何も描画しませんでした。それは '0,0,0,0'から始まります。質問はなんですか? – gman

答えて

1

に答えることができれば、それを感謝したい:

_gl = _context || _canvas.getContext('webgl', attributes) 

attributesを見てみましょう、それはオプションは、オブジェクトの、との間で他の設定には、このオプションが含まれています。あなたのオリジナルのポストは、あなたが手動trueにこのオプションを設定示しているが

preserveDrawingBuffer: false 

、あなたのオプションは、あなたが投稿デモに通じ行われていません。このオプションを有効にすることができれば、ピクセルを読み戻すことができます。

関連する問題