問題タブ [glreadpixels]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1698 参照

android - フロートするglReadPixelsバイト

glReadPixelsを使用してOpenGLESで色を取得しようとしています。オブジェクトの色をfloat[]で設定します(例:{0.0f、0.5f、0.2f、1.0f})。glReadPixels値を同じfloat []に変換するには、符号なしバイトなのでどうすればよいですか?

色の設定:

色を取得する:

これがすでに質問/回答されているかどうかはわかりませんが、解決策が見つからず、しばらくの間それを試してきました。

0 投票する
1 に答える
526 参照

java - Android:ビューポートより大きいglReadpixels?

高解像度の画像を保存するには、画面の幅よりも多くのピクセルをキャプチャする必要があります。唯一の 2 つのオプションは、Matrix コマンドを使用して画面により多くのピクセルを詰め込むか、実際のビューを画面よりも大きくすることだと思います (これは可能ではないと思います)。 OpenGL ES 2 を使用しています。

0 投票する
2 に答える
152 参照

opengl - OpenGL のキャンバスでピクセルが塗りつぶされているかどうかを確認するにはどうすればよいですか?

塗りつぶしアルゴリズムを実装するために、特定のピクセルが OpenGL で塗りつぶされているかどうかを検出しようとしています。そのため、 glreadpixel 関数を検索して見つけましたが、この関数をどのように使用できるか、問題を解決できるかどうかがわかりません。

0 投票する
1 に答える
8785 参照

ios - OpenGL ES から iOS のビデオへ (iOS 5 テクスチャ キャッシュを使用したテクスチャへのレンダリング)

CameraRippleエフェクトを使った Apple のサンプル コードを知っていますか? さて、openGLが水のクールな効果をすべて行った後、カメラ出力をファイルに記録しようとしています。

void * buffer 内のすべてのピクセルを読み取り、CVPixelBufferRef を作成して AVAssetWriterInputPixelBufferAdaptor に追加する glReadPixels でそれを実行しましたが、遅すぎます。FBO とテクスチャ キャッシュを使用すると、同じことができますが、より高速であることがわかりました。Apple が使用する drawInRect メソッドのコードは次のとおりです。

それはビデオを記録し、それはかなり速いですが、ビデオはただ黒いだけです。

更新として、ここに私が試した別の方法があります。私は何かが欠けているに違いない。viewDidLoad で、openGL コンテキストを設定した後、次のようにします。

次に drawInRect で: 私はこれを行います:

それでも、nil ではなく 0x000000001 である renderTexture の bad_acsess でクラッシュします。

アップデート

以下のコードを使用して、実際にビデオ ファイルをプルすることができましたが、緑と赤のフラッシュがいくつかあります。BGRA pixelFormatType を使用します。

ここでは、テクスチャ キャッシュを作成します。

そして drawInRect でこれを呼び出します:

ここでこれらすべてを実行しないことで、これを大幅に最適化できることはわかっていますが、機能させたいと思っていました。cleanUpTextures では、textureCache を次のようにフラッシュします。

RGBA に問題があるか、わかりませんが、まだキャッシュが間違っているようです。

0 投票する
2 に答える
861 参照

objective-c - glReadPixels は「フレーム外」領域を読み取ります

OpenGL 3200x2000 サイズのテクスチャ付きクワッドを描画します。OpenGLView のフレーム サイズは 940x560 に設定されています。必要に応じてクワッドを描画します。(glReadPixelsを使用して)画像として保存しようとすると、パンし、glReadPixelsエリアを(0,0)から(3200,2000)に設定します。ピクセル データ 3200x2000 を作成しますが、ファイルに保存すると小さな画像部分 (左下隅から 940x560) が表示され、他の領域全体が黒くなります。では、どうすればオフスクリーンエリアを読むことができますか? Framebufferを使ってみたのですが、非常に複雑で、作成中にエラーが発生したりなど...他に解決策はありますか?


状況の視覚化:

元の画像は次のようになります (3200x2000): ここに画像の説明を入力

OpenGLView は次のようになります (940x560): ここに画像の説明を入力

保存された画像は次のようになります (3200x2000): ここに画像の説明を入力

0 投票する
2 に答える
16524 参照

ios - glReadPixelsでテクスチャバイトを読み取りますか?

生のテクスチャデータをディスクにダンプしたいのですが(後で読み戻すため)、glReadPixelが現在バインドされているテクスチャから読み取るかどうかわかりません。

テクスチャからバッファを読み取るにはどうすればよいですか?

0 投票する
1 に答える
2356 参照

android - glreadpixels で色を取得する方法は?

Androidで画面上のタッチポイントの色を取得しようとしています。しかし、RGB = (0, 0, 0) 値のみが表示されます。他のサイトも検索しました。以下にいくつかのコードを追加する必要があると言われましたが、何も変わりませんでした。

アドバイスをいただければ幸いです。

0 投票する
1 に答える
1622 参照

opengl-es-2.0 - glreadpixel gl_depth_component が 0 を返す?

立方体と線の交点の解を探しています。だから私は使った

zz を表示しましたが、結果は0でした。キューブに触れたときに(実際には2D画面で)キューブの深度バッファ値を取得するにはどうすればよいですか。私はGLES20とAndroid APIレベル15を使用しています。私のコードは以下です。

ところで、色の選択はうまくいきます。

ありがとう!

0 投票する
1 に答える
816 参照

android - glReadPixels GL_RGBA は代わりに ARGB ピクセルを返します

NDK では、Android. 次の命令を呼び出して、ビューポート ピクセルを取得します。ピクセルが RGBA 形式であることを期待していますが、代わりに ARGB ピクセルを取得します。glReadPixelsの前に何か問題があるか、設定されていますか??

0 投票する
2 に答える
2555 参照

ios - glReadPixel が iOS6 Beta で動作しなくなった

重複の可能性:
iOS 6.0 のこのコードで glReadPixels() が失敗するのはなぜですか?

現在、Cocos2D フレームワークを使用するアプリを Appstore に持っています。衝突検出には、glReadPixels を使用しています。画面には白と黒のピクセルしかなく、黒のピクセルを検出すると衝突を意味します。iOS 5.1.1 まではすべて正常に動作していましたが、iOS6 ベータ版 (それらすべて) では glReadPixels が機能しなくなりました。現在、glReadPixels によって返される RGB 値は常に 0,0,0 です。

何がうまくいかなかったか、またはそれを修正する方法を知っている人はいますか?

あなたの助けは大歓迎です!