問題タブ [framebuffer]

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 投票する
1 に答える
7312 参照

android - Androidネイティブコード(ndk)でOpenGL ES 2.0 FrameBuffer(FBO)とStencilを使用する

NDK (r5b) を使用して、frambuffer オブジェクトを生成し、ネイティブ Android アプリケーション内でステンシルを使用しようとしています。ターゲット デバイスは、OpenGL ES 2.0 をサポートする froyo 2.2 を実行しています。

そのため、私は C++ ネイティブ ライブラリで多くの gl コードをコーディングしてきましたが、これ以外の問題はありませんでした。私はそれを機能させることができないようです。

フレームバッファ作成のコード スニペットを次に示します。完成度は良いのですが、画面が真っ暗なままです。私が作成している fbo は、アプリの Java 部分によって作成された gl サーフェスに実際にはバインドされていないようです。私のアプリ コードの残りの部分はすべて問題ありません。fbo の作成とバインドを削除すると、アプリに必要なステンシルが機能していないことを除いて、すべてが正常に機能します。

また、レンダー バッファーの代わりに 2D テクスチャへのレンダリングを試みましたが、うまくいきませんでした。

それで、これを修正できる方法はありますか?ここで何か間違っていますか?誰かがアイデアを持っている場合は、教えてください....この問題を調べるのにあまりにも多くの時間を費やしています...へへ;)

前もって感謝します !

乾杯 !


編集 :

わかりました、ステンシル バッファを機能させることはできましたが、FBO は機能していません。OpenGL ES 2.0 は Android で完全にはサポートされていないと思います (ここでは r5b を使用しています)。メソッドスタブは定義されていると思いますが、完全には実装されていません。または、作成された GlSurfaceView が FBO と正しくリンクしていません。

ステンシルバッファに関しては、私がしなければならなかった

それらが正しく機能するために、glDepthMask の使用を削除します。

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

android - Androidでメイン画面/OpenGLバッファにアクセスするにはどうすればよいですか?

Androidのメイン(OpenGL)画面にアクセスして、オーバーレイ3D効果を実装したいと思います。そうすることは可能ですか?
はいの場合、どうすればよいですか?
このコンテキストを修正するとき、私のアプリケーションはサービスでなければなりませんよね?

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

keyboard - 別のプロセスへのキー押下をシミュレートするドライバー

Linux の特定のプロセスで押されたキーをシミュレートするにはどうすればよいですか? Xorg は実行されていません。入力は DirectFB によって処理されます。

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

opengl - フレームバッファの高速スワッピング OpenGL

私は最近、フレーム バッファ オブジェクトのレンダー ターゲットを切り替えるだけで、フレーム バッファ オブジェクトを切り替えるよりもはるかに高速であることを読みました。

極端に聞こえるかもしれませんが、これは、フレームバッファ オブジェクトを 1 つだけ使用し、そのターゲットのみを切り替える必要があるということですか?

編集:混乱を避けるために、「スワッピング」を「スイッチング」に変更しました。切り替えるとは、古いフレームバッファの代わりに新しいフレームバッファをバインドすることを意味します。フロントバッファとバックバッファを交換するために使用される SwapBuffers() 呼び出しと混同しないでください。

0 投票する
0 に答える
497 参照

android-ndk - システム権限で署名した後でもフレームバッファの読み取りが拒否される

システム権限でアプリに署名し、ndk を使用して /dev/graphics/fb0 から読み取ります。しかし、アクセス許可が拒否されたというエラーが表示されます。システム権限は、あなたが何かをすることを許可するものではありませんか?? お時間をいただきありがとうございます。

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

opengl - ピクセル バッファ オブジェクト (PBO) を使用してフレーム バッファ オブジェクト (FBO) からピクセル値を読み取る

Pixel Buffer Object (PBO) を使用して、FBO からピクセル値を (glReadPixels を使用して) 直接読み取ることはできますか?

もし、そうなら、

  1. FBO で PBO を使用する利点と欠点は何ですか?
  2. 次のコードの問題は何ですか

{

以下の glReadPixels は正常に動作します

次の glReadPixels は機能しません:(

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

opengl - フレームバッファオブジェクト(FBO)とレンダリングと深度バッファの関係

私はウェブ上で次のような多くの例を見ました(例えば

  • FBOを作成してバインドする
  • バッファの作成とバインド(テクスチャ、レンダリング、深度、ステンシル)
  • 次に、BUFFERSのバインドを解除します
  • FBOを使用するには-FBOをバインドし、作業を行ってからFBOをバインド解除します
  • ただし、読み取り、書き込みなどのテクスチャBUFFERをテクスチャBUFFERにバインドすることもできます。
  • しかし、他のバッファ(レンダリング、深さ、ステンシル)の再バインドは決して見られません。なぜですか?

BUFFERSの作成とバインド/アンバインドの例(以下のコードは、私が説明した内容を示すためだけのものであり、完全に機能します)、

1.なぜ、すべてのBUFFERを再度バインドする必要がないのですか(つまり、オブジェクトの操作/描画中にFBOにバインドする必要があります)。

2.ここで内部で何が起こっているのですか?

編集:アタッチ->バインドおよびデアタッチ->バインド解除

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

opengl - フレーム バッファ オブジェクト (FBO) を使用した画面外の複数のレンダー ターゲットか?

状況:ビューポート(サイズ= 600 * 600)とカメラは一定のままで、さまざまな変換と回転を使用して、形状と対応するエッジ(ソーベルフィルターまたは独自のフィルターを使用)のNサンプルを生成します。つまり、N 個のサンプル + N 個の対応するエッジがあります。

このようにしようと考えているのですが、

2 つのレンダーバッファで 1 つの FBO を使用します [つまり、各バッファのサイズは = (N *600) * 600 になります]- N シェイプの場合は 1 つ目、対応するシェイプのエッジの場合は 2 つ目

質問:

  1. 上記のことを達成するための最良の方法はどれですか?
  2. ビューポートのサイズは 600*600 ピクセルですが、形状は約 50*50 ピクセルしか占有しません。バウンディング ボックス/AABB 領域のエッジ検出を 2 番目のバッファーのみに適用する効率的な方法はありますか? また、効率的な方法で 2N バウンディング ボックス (N サンプル + N 対応するエッジ) を読み取るだけですか?
0 投票する
1 に答える
2818 参照

java - OpenGLフレームバッファがテクスチャにレンダリングされない

JavaとJOGLを使用してグロー効果を作成するためにフレームバッファを試していますが、問題が発生しています。現時点での私の目標は、イルミネーションテクスチャでテクスチャリングされた宇宙船モデルをフレームバッファテクスチャにレンダリングしてから、フレームバッファテクスチャを三角形のファンクワッドに描画することです。OpenGL2.1および/または2.0で実行しています。フレームバッファとそのテクスチャを生成するためのコードは次のとおりです。

レンダリングループでは、次のことを行っています。

これを実行すると、クワッドは正常に描画されますが、テクスチャはすべて黒です。レンダリングループでフレームバッファバインディングをコメントアウトすると、モデルは適切にレンダリングされるため、シェーダーコードに問題はないことがわかります。_frameBufferTextureIdをファイルからロードされた別のテクスチャに置き換えると、そのテクスチャが適切に描画されるため、テクスチャ座標が機能していることがわかり、シェーダーコードも正しいです。ただし、フレームバッファをバインドすると、期待するものが何も得られません。フレームバッファも検証しています。これはGL_FRAMEBUFFER_COMPLETEです。

私はここでstackoverflowに関する無数のチュートリアルと投稿を読みましたが、私が間違っていることを理解することはできません。どんな助けでも素晴らしいでしょう!ありがとう。

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

opengl - OpenCV 2.2 ウィンドウが OpenGL で問題を引き起こす

これは非常に単純なコードです..唯一のことは、詳細なデバッグのために同じコードを何度も繰り返したことです。詳細情報: OpenGL バージョン 3.3.0、Windows 7 OS および VS2008、OpenCV 2.2.0。

ボンネットの下で何かが起こっています。それは何ですか?...まあ、OpenCV ウィンドウがデフォルトのバッファを引き継いでいる場合でも、少なくとも error_code7 は 0 (つまり、エラーなし) である必要があります。フレームバッファ オブジェクトとデフォルトの glut 非表示ウィンドウを使用してコードをテストしました。また、目的のためにフレームバッファ オブジェクトを使用する必要があることもお伝えします。したがって、描画と表示に同じデフォルト ウィンドウを使用することはできません。