問題タブ [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.
python - 頂点配列へのレンダリングを実装すると、glReadPixelsが失敗します(無効な操作)
テクスチャから頂点バッファに頂点データをコピーしてから、頂点バッファを描画しようとしています。私の知る限り、これを行う最善の方法は、テクスチャをfboにバインドし、glReadPixelsを使用してvboにコピーすることです。ただし、これを機能させることができないようです。glReadPixelsが「無効な操作」というエラーで失敗します。
訂正、例、代替方法を歓迎します。:)
関連するコードは次のとおりです。
android - Android の glReadPixels に関する問題
私が読んだopenglピッキングシステムを実装しようとしていますが、glReadPixelsで問題が発生しました。基本的に、シーン内のすべてのノードは一意の色を取得し、新しいタッチが発生すると、一意の色 ID でペイントされたノードだけでシーンをレンダリングします。保存されたカラーIDのリストで入力座標をチェックしようとしています。
glReadPixels を正しく動作させることができません。ピクセル値に対して常に 0 0 0 を返します。そこから正しいピクセル値を取得するための助けをいただければ幸いです。ありがとう
ここに関連するコードがあります
iphone - OpenGL ES 2.0:floまたはhalf_floatテクスチャを使用したglReadPixels()
iPhone(iOS 4.1)用のOpenGLES2.0アプリを書いています。シェーダーで行われる計算の最後に、CPUにデータを書き戻す必要があります。私の知る限り、これはglReadPixels()で実行できます。精度を維持するために、シェーダー間でhalf_floatまたはfloatテクスチャを使用したいと思います。これは、拡張機能によってサポートされているようです。
質問:glReadPixels()を使用してfloatまたはhalf_floatテクスチャを読み取ることは可能ですか?
ありがとう、
ラース
iphone - 開いている gl フィルターを使用して遅いビデオを保存する iPhone
ビデオをキャプチャするためにプリセット AVCaptureSessionPresetMedium で avcapturesession を使用しています。シェーダーを使用して opengl でこのビデオに効果を適用しています。assetWriter を使用して、ビデオを mp4 ファイルに書き込みます。問題は、オーディオ出力を追加すると、結果のビデオが特に遅くなることです。
これが私のコードの仕組みです:
- - (void)captureOutput:(AVCaptureOutput *)captureOutput... 関数では、キャプチャされたフレームに opengl フィルターを適用します
- 次に、キャプチャ出力がビデオかオーディオかを確認します。ビデオの場合は、glReadPixels を使用して CVPixelBufferRef を作成し、それを AVAssetWriterInputPixelBufferAdaptor に送信して書き込みます。
- オーディオの場合は、CMSampleBufferRef を直接書き込みます
誰かが私のアプローチの何が問題なのか、または結果のビデオを遅くするのはどの部分なのか教えてもらえますか?
c++ - OpenGLでスクリーンショットを撮る方法
C++ で OpenGL ウィンドウのスクリーンショットを撮り、ファイルに保存する方法。
関数は見つかったが、glReadPixels()
次に何をすればよいか分からない。たとえば、ファイルへのパスをどこに設定できますか?
難しくなければ、コードを書いてください。
opengl - SDL OpenGL のスクリーンショットが黒い
SDL ライブラリを使用して OpenGL ウィンドウのスクリーンショットを作成しましたが、すべてが黒く、その理由がわかりません。修正方法は?
コード:
opengl - glReadPixelsとgluUnProjectを使用した透明平面の深度値の読み取り
ビリヤードシミュレーションを作成しようとしていますが、glReadPixelsとgluUnProjectを使用して、マウスポインターをシーンに投影しています。
これは、マウスがシーン内のオブジェクト(たとえばテーブル)を指している場合は正常に機能しますが、マウスが背景を指している場合、glReadPixels呼び出しが1.0を返すため、gluUnProjectを台無しにします。
テーブルの同じレベルに透明な平面を描画する方法を理解しようとしています。これにより、シーンのどこにマウスを向けても、テーブルと同じ平面を指しているかのように奥行きが得られます。 。
glAlphaFunc(GL_GREATER、0.01f);なしで透明なクワッドを描画した場合。クワッドを白で描画し、深度テストは計画どおりに機能しますが、alphaFuncの呼び出しを追加してクワッドを透明にすると、深度は以前の状態に戻ります。私が見たところ、glReadPixelsはフレームバッファからピクセルを読み取るので、これは理にかなっています。どうすればこれを回避できるのか疑問に思っています。
また、クワッドの巻線を逆にして上から見えないようにしましたが、これには、フレームバッファから測定値を取得するglReadPixelsと同じ問題があります。
つまり、オブジェクトを画面に描画せずに、glReadPixelsを取得してオブジェクトから深度コンポーネントを取得するにはどうすればよいですか?
glReadPixelsとgluUnProjectの呼び出しは次のとおりです。
opengl - ピクセル バッファ オブジェクト (PBO) を使用してフレーム バッファ オブジェクト (FBO) からピクセル値を読み取る
Pixel Buffer Object (PBO) を使用して、FBO からピクセル値を (glReadPixels を使用して) 直接読み取ることはできますか?
もし、そうなら、
- FBO で PBO を使用する利点と欠点は何ですか?
- 次のコードの問題は何ですか
{
以下の glReadPixels は正常に動作します
次の glReadPixels は機能しません:(
java - glReadPixels が間違った値を返す
レンダリングされたピクセルの色を取得しようとしています。
画面には真の真っ赤な色がありますが、glReadPixels は非常に奇妙な値 4.6006E-41 に戻ります。
opengl - glReadPixels の読み取りが 2 回目に失敗しました
次のコードは正常に動作します
ただし、glReadPixels を関数に転送すると、最初の呼び出しでは正常に動作しますが、2 回目の呼び出しでは何も失敗/読み取りません:(
数点:糸も同じです。バッファは 1 つしかありません。フレームバッファ オブジェクト (FBO) と glut ウィンドウで同じ動作をします。glPushClientAttrib(GL_CLIENT_ALL_ATTRIB_BITS) も試してみましたが、コードがコメントされていることがわかりました。glClear(GL_COLOR_BUFFER_BIT); も呼び出しました。RenderObject() で。
どこが間違っている可能性がありますか?
編集:クリスチャン..ありがとう!あなたは正しいです。しかし、なぜそれが起こっているのか。image.data にバッファのリンクがありませんか? 読み終わった後?それとも...表示ウィンドウがglバッファの所有権を引き継いでおり、それを破棄している間に何か問題が発生していますか?