問題タブ [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.
opengl - glReadPixelsを使用したスクリーンキャプチャでは、一部のウィンドウ解像度でピクセルがシフトします
ウィンドウシステムにGLUTを使用して、いくつかの画像を画面に出力しています。また、画像をファイルに出力したいと思います。これは挑戦でした。一部のウィンドウ解像度(256x256、1024x1024、1920x1200など)では、glReadPixelsは画面とまったく同じ画像ファイルを生成します。ただし、ウィンドウのサイズを変更すると(たとえば、655x652、529x566で画面キャプチャを実行すると、画像がジグザグになり、ピクセルが直線的にシフトしたように見えます。
どんな助けでもありがたいです!
編集-glReadPixels呼び出しに至るまでのコードを追加しています。
編集2-マウスでウィンドウのサイズを変更すると、良い画像が生成される場合があることを忘れました。ちょうどいい解像度になったときに起こると思います。
ios - スクリーンショット コード iPad では動作せず、iPhone では動作します
私はこの奇妙な問題を抱えています...画面データをキャプチャし、次のコードを使用して画像に変換する必要がありました..このコードは、iPhone / iPadシミュレーターおよびiPhoneデバイスでは正常に機能しますが、iPadのみでは機能しません iPhoneデバイスにはiOSバージョン3.1.1があり、iPadにはiOS 4.2があります...
何がうまくいかないのか..??
ios - 深度バッファとアンチエイリアシング技術を使用しているときに、glreadpixel() によるデータ読み取りの問題
glreadpixel() を使用してゲームの画面をキャプチャしたい。iOSバージョン3.1.1の2g iPhoneでもシミュレーターで正常に動作します。しかし、iOS バージョン 4.2.1 の iPad ではそうではありません。これに関する問題を知りました。上記の iOS バージョン 4.0 の特定のデバイス (iPad) では、深度バッファをバインドし、アンチエイリアシング技術を使用します。そして、フレームバッファからデータをキャプチャするopenglの glreadpixel() を使用すると、宛先バッファにすべて0が返されます...
深度バッファをフレーム バッファにバインドせず、アンチエイリアシング技術を使用しない場合、問題なく動作します。
私が使用したコードは次のとおりです:-
CGRect screenBounds = [[UIScreen mainScreen] 境界];
opegl es で glreadpixel() または他の同様の関数を使用しているときに、アンチエイリアシングで深度情報を含める方法はありますか?
ios - 画像のピクセルデータを使用して画像を90度回転させる方法は?
現在、glreadpixels()を使用して画面をキャプチャしています。キャプチャされた画像は一般的に鏡像であるため、画像を通常の状態に戻しました。次に、キャプチャしたデータ(画像)を90度回転させます。それを行う方法はありますか?
画面データをキャプチャするために使用するコードは次のとおりです。
バッファにキャプチャされたデータを90度回転させる方法はありますか?ありがとう
android - Android で glreadpixels を使用する方法 -- 通常はゼロを取得します
カーソルの下にあるopenglオブジェクトを検出しようとしています...ピッキングと呼ばれるものを読みました。これが私のコードです:
上記のコードのほとんどが logcat ステートメントであることを確認してください。私のコードは、r、g、および b の画面にゼロを出力します。アルファの場合、「フル アルファ」として 255 (符号なし) に変換可能な「-1」が出力されます。指定された x/y 位置で画面上の色を検出しようとしています。赤の値が 1 から 15 の間のどこかにあれば満足です。もし私が完全に間違ったやり方をしていたら、私はすべてゼロになるだろうと思っていましたが、アルファを取得しているので、少なくとも部分的に正しいやり方をしているに違いありません. マニフェストには、「サーフェス フリンガー」と「フレーム バッファーの読み取り」のアクセス許可を使用することを電話に伝える行も含めました。これらの行が機能しているかどうかはわかりません。
任意の助けをいただければ幸いです。
opengl - glReadPixels-画像がくすんだように見える
openGLでレンダリングしてレンダリングした画像をキャプチャしたいと思います。glReadPixelsを使用してから、CImgで画像を保存します。残念ながら、結果は間違っています。下記参照。左の画像は正しいです。GadWinPrintScreenでキャプチャしました。右の画像は正しくありません。glReadPixelsとCImgで作成しました。
私は何が間違っているのかについて多くのWeb調査を行ってきましたが、私は追求する道がありません。ここに、画像をキャプチャするコードがあります。
ここで、スナップショットメソッドを呼び出します。
コメントのフォローアップとして、ビット深度を取得してコンソールに出力しました。結果は次のとおりです。
macos - Mac OS X 10.7 で OpenGLScreenSnapshot が機能しない - Lion
Apple の ScreenSnapshot の例に基づいてプログラムを作成しています: http://developer.apple.com/library/mac/#samplecode/OpenGLScreenSnapshot/Introduction/Intro.html そして、Snow Leopard から Lion にアップグレードした後、私のプログラムは停止しました働く。例を確認したところ、どちらも機能していないことに気付きました。何らかの理由で glReadPixels 関数で GL_INVALID_FRAMEBUFFER_OPERATION_EXT エラー (0x0506) が発生します。
開発者ツールを再インストールしましたが、うまくいきません。誰かがこの問題で何か進歩しましたか? どんなポインタでも大歓迎です。
c++ - 最適なピクセル リードバック戦略
特定のシーンをレンダリングし、イメージ全体をメイン メモリに読み込む必要があります。私はこれを検索しましたが、ほとんどのビデオ カードはレンダリングを加速するようですが、リードバックは非常に遅くなります。少し調査した結果、「ハードウェア アクセラレーテッド ピクセル リードバック」について言及しているこのカードしか見つかりませんでした。
もう 1 つのアプローチはソフトウェア レンダリングを行い、リードバックの問題は存在しませんが、レンダリングのパフォーマンスは低下します。
おそらく、最適なトレードオフを見つけるために両方を実装する必要がありますが、私の質問は、ハードウェアに関して他にどのような選択肢があるかについてです。Quadro は、まさにこのアプリケーションのクライアント ターゲットであるモデリングおよびデザイナー マーケット セグメント向けであることを理解しています。これは、他のビデオ カード ラインでより優れたピクセル リードバック パフォーマンスを見つける可能性が低いことを意味しますか? つまり、TeslaまたはFermiで、ビデオ出力すらありません。
ios - マルチサンプリングで glReadPixel() を使用してデータを読み取る
現在、IOS で画面をキャプチャするために、フレーム バッファからピクセル データを読み取ろうとしています。次のコードを使用してフレーム バッファをセットアップすると、GlreadPixels コマンドは正常に動作します。
しかし、マルチサンプリングに深度バッファーとカラーバッファーを使用する場合、 glreadpixels() は以前のコードのようにピクセルデータをキャプチャしません....マルチサンプリングの場合、次のコードを使用します:-
次のコードを使用してピクセルデータを読み取ります:-
マルチサンプリング技術で正しいピクセルデータをキャプチャする方法はありますか....または私は何か間違っていますか? 私を正しい方向に導いてください。ありがとう
c++ - フレームバッファ テクスチャを 1D 配列のように読み取る
GL で gpgpu 計算を行っており、フレームバッファから結果を読み取りたいと考えています。私のフレームバッファ テクスチャは論理的には 1D 配列ですが、より大きな領域を持つために 2D にしました。ここで、フレームバッファテクスチャ内の任意のピクセルから任意の長さで読み取りたいと考えています。
これは、すべての計算が GPU 側で既に行われていることを意味し、テクスチャの境界を越えて位置合わせできる特定のデータを CPU に渡すだけで済みます。
これは可能ですか?はいの場合、画像全体よりも遅い/速いのでglReadPixels
、必要なものを切り取りますか?
編集 もちろん、OpenCL/CUDAについては知っていますが、(ほぼ)すべてのプラットフォームでプログラムをそのまま実行したいので、それらは望ましくありません。
また、glReadPixels が非常に遅いことも知っています。その理由の 1 つは、必要のない機能 (2D での操作) を提供している可能性があるためです。したがって、より高速な、より基本的な機能を求めました。