2017-03-14 17 views
0

Uint8Arrayを使用してイメージをレンダリングしようとしています。WebGL:INVALID_OPERATION:texImage2D:ArrayBufferViewが要求のために十分ではありません。WebGLエラー:gl.LUMINANCEの場合、要求に十分なArrayBufferがありません。

var gl = currentImage.gl; 
gl.activeTexture(gl.TEXTURE0); 
gl.bindTexture(gl.TEXTURE_2D, texture); 
gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, columns, rows, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, Buffer); 

画像はほとんどありませんが、正常に動作しますが、ArrayBufferは、いくつかの画像の要求エラーに対して十分ではありません。

ただし、列と行から1を引くと、問題なく動作しますが、画像が傾いてしまいます。 しかし、2Dキャンバスを維持してGPUにプッシュすることはできますが、パフォーマンスを犠牲にしてそれを維持したくないので、不必要にキャンバスを処理する必要があります。

は、これは私が間違って何をやっても何をしないのです。1.

var gl = currentImage.gl; 
gl.activeTexture(gl.TEXTURE0); 
gl.bindTexture(gl.TEXTURE_2D, texture); 
gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, columns-1, rows-1, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, Buffer); 

から差し引いた後、どのような作品ですか?

+0

をお試しください例えば。パラメータ値など? – solidpixel

答えて

1

問題テクスチャの幅が4で割ることはないと思われますが、あなたはUNPACK_ALIGNMENTを考慮していません。

は、それがうまくいかない正確な例は何ですか?

gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1); 
+0

試しましたが、同じ問題 – subhfyu546754

+0

テクスチャのサイズはどのくらいですか? – Columbo

関連する問題