これは簡単な質問に終わることを願っています。Jogl gldrawpixels()problem
NetbeansでJOGLを使用して、各行/ colのタイルの数と各タイルの色を指定できるピクセルのチェッカーボードを作成しています(このタイルを0アルファで描画し、完全なアルファを持つタイル)。スピードは問題でも効率性でもありません。
ここに私の問題があります:glDrawPixels()を使用しようとすると、glCanvasはまばらに塗りつぶされてしまいます。あなたが見ることができるように、私は現在、より複雑なものに移行する前に、作品の単純なケースを取得しようとしています。 1Dバイトの配列に塗りつぶされたバイトの値を埋めます。次に、これをglDrawPixels()に渡してカラーバッファに書き込みます。
バイト配列を正しく処理していませんか?実際には(私が見てきたいくつかのチュートリアルとは対照的に)、このメソッドは実際のデータのためのバッファの形式しか取らないので、バイト配列をラップしたのです。
また、この方法では、指定したサイズの2倍のデータが必要になると思われます。たとえば、高さで幅の領域を管理するように指示していますが、バイト配列が実際には高さの2倍の幅の2倍でない限り、例外がスローされます。
ピクセルを管理する正しい方法だと読んだので、glDrawPixels()を使用しています。
byte[] src = new byte[(width*2)*(height*2)];
for(int a=0; a<height*2; a++){
for(int b=0; b<width*2; b++){
src[a*b+b]= 127;
}
}
gl.glDrawPixels(width, height,
GL.GL_RED, GL.GL_UNSIGNED_BYTE,
ByteBuffer.wrap(src));
幅ノートと高さは私のキャンバス(256×256)の大きさなので、この操作は、キャンバス全体の面積を取る必要があります。
本当にありがとうございます。私はまったく別のアプローチ(JOGLの使用を意味する限り)を含むソリューションでうまくいく。それは断片シェーダでこれをやってはいけないと言われています。御時間ありがとうございます。
実際glDrawPixelsがdepreceatedさ:
だからこれに変更します。 – datenwolf