2016-08-11 11 views
0

私はwebglを使用してテクスチャ内の200個の別々のピクセル(それぞれが独自の色と異なる場所にある)を変更することができる最速の方法を見つけようとしています。webglの大きなテクスチャで20〜200の別々のピクセルを変更する最も良い方法は?

座標と色の値をシェーダーに渡すことができるので、1回のパスで行うことができますか?または、これを行うことができないような制限がありますか?

+0

いけない100%はあなたがやろうとしているものを理解し、しかしhttps://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texSubImage2Dがあります。 –

+0

ビットを明確にする - 私は大きなテクスチャを持ち、その中のさまざまなピクセルを変更する必要があります。 私は座標のリストと新しい色の値を持っています。 (x:5、y:65)= rgb(1,20,50)、(x:45、y:8)= rgb(10,50,70)...など 私は研究していて、It私はこれを別のテクスチャに格納し、forループを使用してデータを循環させる必要があるようです。それとも良い方法がありますか? – user3591153

+0

ええ、 '.texSubImage2D'を使うだけです。詳細は他のコメントを参照してください。 –

答えて

0

WaclawJasperは.texSubImage2Dを使用して提案しました。 私はこれをどのように使用しています。

var dataTypedArray = new Uint8Array(4); // Don't need to do this if the data is already in a typed array 
    dataTypedArray[0] = 0; 
    dataTypedArray[1] = 0; 
    dataTypedArray[2] = 255; 
    dataTypedArray[3] = 255; 

    gl.bindTexture(gl.TEXTURE_2D, texture); 
    gl.texSubImage2D(gl.TEXTURE_2D, 0, posX, posY, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, dataTypedArray); 
関連する問題