問題タブ [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.
python - OpenGLの透明なFrameBufferの背景
glClearとglClearColorを使用して、フレームバッファをアルファ透明度を含む色で塗りつぶしたいと思います。ただし、フレームバッファは、画面にレンダリングされるテクスチャにバインドされると、常に不透明としてレンダリングされます。
フレームバッファにレンダリングされるすべてのものが透明性を維持するようにしたいです。背景を変えたいだけです。
次のコードを参照してください。
surface.background_alphaは、フレームバッファの背景の透明度である必要があります。これが私の初期化コードです:
私は物事を機能させるために多くの調整を行い、すべてを適切に整理していないため、コードは少し厄介です。
誰かが私を助けてくれるなら、私は大いに感謝します。
iphone - OpenGL ES 1.x 2D レイヤー ツリーをどのように編成すればよいですか?
かわいいパズル アプリを開発しています - http://gotoandplay.freeblog.hu/categories/compactTangram / - パフォーマンス上の理由から、OpenGL でビューをレンダリングすることにしました。私はそれを学び始めました。本当に基本的な方法でバッファ、頂点、テクスチャを使用できます。
状況: ユーザーが 7 つの puzzlePiece を操作するゲームで、それぞれに 5 つのサブレイヤーがあり、かなりの照明感を得ることができます。ほとんどのテクスチャは 256x256 です。ユーザーは一度に 1 つのピースのみを操作するため、残りはプレイ中に変更されません。グラフィックのないアプリのスケルトン: http://gotoandplay.freeblog.hu/archives/2009/11/11/compactTangram_v10_-_puzzle_completement_test/
質問: それらをどのように整理すればよいですか? 実際のピースの状態を別々のフレームバッファ(?)/テクスチャ(?)で「事前描画」するのは良い考えですか、それともタイムステップですべてのピース/レイヤー(1+7*5=36スプライト)を単純に再描画できますか? 「predraw」を使用する場合、どうすればよいですか? puzzePiece フレームバッファに描画しますか? では、どうすればシーンのフレームバッファに描画できますか? または、テクスチャを「マージ」する簡単な方法はありますか?
私の質問を理解していただければ幸いです。あまりにも薄暗いと思われる場合は、私のブログで実際の作品をレンダリングする方法に関する私の考えをご覧ください (私がやろうとしていることの簡単なフラッシュ実装があります) ここ: http://gotoandplay .freeblog.hu/archives/2010/01/07/compactTangram_072_-_tan_rendering_labs/
iphone - 5つのOpenGLテクスチャを1つに折りたたむ方法は?
OpenGL ES 1.x iPhoneで、 5つの「サブレイヤー」を1つのテクスチャ(PhotoshopのFlatten Imageのようなもの)にマージしたいと思います。私はOpenGLを初めて使用しますが、まだ答えが見つかりません。
python - OpenGLフレームバッファは遅く、自発的に停止します。広範囲に使用すると、システムクラッシュを引き起こす可能性もあります
どうやらフレームバッファは高速で、画面外でテクスチャにレンダリングしたり、単に物を事前に作成したりするための最良の方法です。
しかし、私のゲームはそれらをまったく好きではありません。現在のコードでは、フレームバッファが頻繁に使用され、場合によっては各フレームが数回使用されます。使用すると、ゲームの速度が低下し始めますが、すぐには動きません。時間がかかるようです(おそらく、蓄積されたメモリの問題ですか?)。一部の領域では、フレームバッファオブジェクトがゲームの速度を低下させないように見えますが、通常どおり続行する前にゲームが数秒間停止する場合があります。
フレームバッファが使用されていない領域ではゲームが高速であるため、フレームバッファが問題であると思います。
私はpyopenglでpythonを使用しています。OpenGLコードは他の言語のコードに似ているので、Pythonの知識はそれほど重要ではないと思います。
画面に直接レンダリングされるものもあれば、Surfaceクラスに関連する他のテクスチャにレンダリングされるものもあります。これは、気が変わる前にゲームを始めたpygameに似ています。
関連するコードは次のとおりです。
誰かがこれで私を助けることができればブラボー。私はFBOをまったく機能させるために何年も費やしました。彼らが適切に機能していないのはとてもイライラします。それらを取り除くことになると、それは再び悪夢です。しかし、私はゲームを速くするために必要なことは何でも直面しなければなりません。
opengl - opengl-フレームバッファの以前のコンテンツとのブレンド
フレームバッファオブジェクトを介してテクスチャにレンダリングしています。透明なプリミティブを描画すると、そのプリミティブはその単一の描画ステップで描画された他のプリミティブと適切にブレンドされますが、フレームバッファの以前のコンテンツと適切にブレンドされません。
テクスチャのコンテンツを新しいデータと適切にブレンドする方法はありますか?
編集:より多くの情報が必要です、私はより明確に説明しようとします。
私が使用しているブレンドモードはGL_SRC_ALPHA、GL_ONE_MINUS_SRC_ALPHAです。(これは通常、標準のブレンドモードだと思います)
マウスの動きを追跡するアプリケーションを作成しています。前のマウスの位置と現在のマウスの位置を結ぶ線を描画します。フレームごとに線を描画したくないので、テクスチャに描画し、テクスチャをクリアせずに、それを使用して長方形を描画することにしました。それを表示するためのテクスチャ。
これはすべて正常に機能しますが、アルファが1未満のシェイプをテクスチャに描画すると、テクスチャの以前のコンテンツと適切にブレンドされません。テクスチャにalpha=.6の黒い線が描かれているとしましょう。数サイクル後に描画し、次にそれらの線上にalpha=.4の黒い円を描画します。円の「下」の線は完全に上書きされます。円は平らな黒ではありませんが(白い背景と適切に混ざり合っています)、予想どおり、円の下に「暗い線」はありません。
ただし、同じフレームに線と円を描くと、適切にブレンドされます。私の推測では、テクスチャは以前のコンテンツとブレンドされていません。まるでglclearcolorとブレンドしているだけのようです。(この場合、<1.0f、1.0f、1.0f、1.0f>です)
c++ - X11でフルスクリーンの8ビットフレームバッファは可能ですか?もしそうなら、私は何を間違っていますか?
フルスクリーンの8ビット深度のフレームバッファを取得しようとしていますが、使用できるビジュアルが見つかりません。8ビットのトゥルーカラーが必要です。3ビットは赤、3ビットは緑、2ビットは青です。XF86を使用してフルスクリーンにします。
これは不可能ですか、それとも私は何か間違ったことをしていますか?
android - Nexus One GL_FRAMEBUFFER_OES 拡張機能...実際にはありませんか?
iPhone アプリを Android に移植していますが、OpenGL フレームバッファを使用する必要があります。私は Nexus One を持っています。glGet(GL_EXTENSIONS) を呼び出すと、Nexus One が iPhone と同じフレームバッファ拡張をサポートしていることがわかります。ただし、GLSurfaceView で OpenGL 拡張機能に関連する関数を呼び出すことができないようです。単純なフレーム バッファ取得関数を呼び出すと、UnsupportedOperationException が発生します。
この問題を解決できないようです。開発を続けるにはフレームバッファが必要です。完全に機能する OpenGL コンテキスト オブジェクトを取得するために OpenGL コンテキストが作成されるときに、いくつかのオプションを渡す必要がありますか? これは、ハードウェアの機能を決定するために実行しようとしているコードのブロックです。拡張機能をサポートしていると主張しており、私の gl オブジェクトは GL11ExtensionPack のインスタンスですが、glGetFramebufferAttachmentParameterivOES への呼び出しは UnsupportedOperationException で失敗します。
誰かが GL_FRAMEBUFFERS_OES 拡張機能を正常に使用した場合は、私に知らせてください。Java API に実装されていないのではないかと考え始めています。
opengl - OpenGL の Framebuffer と Renderbuffer の概念と違いは何ですか?
Framebuffer と Renderbuffer の概念について混乱しています。レンダリングする必要があることは知っていますが、使用する前に理解したいと思います。
一時的な描画結果を保存するには、ビットマップ バッファーが必要であることはわかっています。バックバッファ。そして、それらの描画が進行しているときに、他のバッファーが画面に表示される必要があります。フロントバッファ。それらを裏返して、もう一度描きます。この概念は知っていますが、それらのオブジェクトをこの概念に結び付けるのは難しいです。
それらの概念と違いは何ですか?
iphone - 以前の GL フレームバッファを復元することはできますか?
ユーザーがGLを使用して描画できるiPhoneアプリに取り組んでいます。GLPaint サンプル コード プロジェクトを確固たる基盤として使用しましたが、ユーザーが以前の図面の 1 つを読み込んで作業を続行できる機能を追加したいと考えています。
フレームバッファの内容を取得してUIImageとして保存する方法を知っています。UIImage を取得して GL にそれを描画するように指示する方法はありますか?
どんな助けでも大歓迎です。
python - pyglet を実装すると、かつて動作していたフレームバッファ OpenGL コードが壊れる
この質問は私の以前のものを繰り返しますが、重要な情報を正しくコピーしなかったために以前のものは失敗だったので、やり直さなければなりません。
OpenGL 関数の呼び出しでエラーが発生します。pyglet が OpenGL を正しく初期化していない可能性がありますか? エラーは、以前は機能していた単純な関数で発生します。
エラーは次のとおりです。
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, surface.frame_buffer) ctypes.ArgumentError: 引数 2:: 間違った型
型違い?それでは、 glGenFramebuffersEXT(1) は間違ったタイプを与えていますか? なぜでしょうか?
その関数が呼び出される前に、ゲームを管理するクラス インスタンスを初期化します。初期化方法は次のとおりです。
Surface は私が作成したクラスで、pygame.Surface クラスと少し似ていますが、OpenGL テクスチャを使用します。
そのメソッドは Window と OpenGL をセットアップし (おそらくどちらが問題なのか?)、それを呼び出した後、テクスチャへのレンダリングに setup_framebuffer 関数を使用するゲーム用にいくつかの設定を行いました。次に、pyglet.app.run() が呼び出され、self.window.set_handler('on_draw,self.game_loop) を実行したため、できれば game_loop メソッドを実行する必要がありますが、そこに到達する前にゲームがクラッシュします。
ピグレットを使うのはこれが初めてです。ドキュメントは、私が間違っていることを説明していません。誰でも助けることができますか?
ありがとうございました。