問題タブ [glblendfunc]
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 - GLBlendFunc の保持
現在の GlBlendFunc を保持する必要があるため、作業を行った後に復元できます。これは GLPushAttrib で保存できる属性の 1 つではないようです。状態を保持するために使用できる他の同様の方法はありますか?
opengl-es - OpenGL:1つのテクスチャを別のテクスチャにオーバーレイし、白い背景を抑制します
私はiPhoneopenglESプログラミングの初心者です。2つのテクスチャがあります。最初のテクスチャは背景で、全画面を占めています。最初の画像の上に2番目の画像を印刷していますが、2番目の画像の白い背景が背景の一部を覆っています。前景の画像に色(または白)がない場所に背景を表示したい。glBlendFuncを正しく使用する方法がわかりません。
2番目の画像を印刷する前に、次のようにブレンディングを使用しています。
glBlendFunc(GL_SRC_ALPHA、GL_ONE_MINUS_SRC_ALPHA); glColor4f(1.0f、1.0f、1.0f、1.0f);
iphone - glBlendFunc (OpenGL ES 1.x) を使用した Photoshop の画面ブレンディングのようなことを行うにはどうすればよいですか?
輝度データのみの単純な 1 チャネル (8 ビット) ビットマップがあり、Photoshop でスクリーン ブレンド モードが行うように、既存のフレーム バッファとブレンドしたいと考えています。
したがって、ソースの白いピクセル (255) は白になり、ソースの 50% グレー ピクセル (128) は 50% エンライトされたフレームバッファ ピクセルになり、ソースの黒いピクセルは結果をそのままにしておく必要があります。glColor4fも設定する必要がありますか?
glBlendFuncの専門家がここで私を助けてくれませんか?
iphone - iPhone glBlendFunc エラー
glBlendFunc を使用しようとしていますが、最初の呼び出しで失敗し、「列挙された引数に許容できない値が指定されました」というエラーが表示されます。ヘッダーを調べたところ、GL_DST_COLOR は 0x0306 (774) であり、(GL_ZERO, GL_ZERO) が機能するため、エラーが発生しているようです。iPhoneでこれがこのように失敗する理由は何ですか? これは、ES1 および ES2 の gl.h ヘッダーに表示されます。
ありがとう、アンドリュー
iphone - OpenGLブレンド方程式はどのように機能しますか?
opengl ver:opengl es 1.xプラットフォーム:iphone
混合方程式:
(Rs Sr + Rd Dr、Gs Sg + Gd Dg、Bs Sb + Bd Db、As Sa + Ad Da)
それはどのように機能しますか?srcとdesの両方をGL_ONEに設定したかどうかわかりません。また、srcの色が赤(255,0,0)で、desの色が黒(0,0,0)の場合、結果は(0,0,0)になります。 )。
誰かが方程式がどのように機能するかを説明したり、計算を示したりできますか?
ありがとう
opengl-es - OpenGL ブレンディングが HTC Desire で機能しないのはなぜですか?
HTC Desire で OpenGL (Android) のブレンドを有効にする方法を知っている人はいますか? 色付きの三角形を描画しようとしており、カラー バッファーのアルファ値を使用して背景 (または別の三角形) とブレンドしています。
エミュレーター (2.1) と htc hero 2.1 の両方で動作しますが、2.2 では私の希望では動作しません。これを引き起こすヒーローと欲望の間にハードウェアの違いはありますか?
コードの主なものは次のとおりです (順不同):
PS。誰かが必要な場合は、さらにコードを提供できます...
opengl - OpenGLを使用したオーディオのミキシング
OpenGLを使用して2つ(またはそれ以上)の16ビットオーディオストリームをミキシングしたいのですが、少し助けが必要です
基本的に私がやりたいのは、オーディオデータをテクスチャに入れてフレームバッファオブジェクトに描画してから読み戻すことです。これは問題ではありませんが、正しい結果が得られる方法でデータを描画することは、もう少し問題があります。
基本的に2つの質問があります。
- 描画によってデータを混合するには、ブレンディング(alpha = 0.5)を使用する必要がありますが、結果にはアルファチャネルが含まれていてはなりません。したがって、たとえばRGB形式のフレームバッファにレンダリングした場合、アルファブレンディングは期待どおりに機能し、結果のアルファはfboに書き込まれませんか?(レンダリングパスごとにfboを読み戻す必要はありません)
テクスチャ|sR| sG | sB |
フレームバッファ(前)| dR | dG | dB |
フレームバッファ(後)| dR * 0.5 + sR * 0.5 | dG * 0.5 + sG * 0.5 | dB * 0.5 + sB * 0.5 |
- オーディオサンプルは、符号付き16ビット整数値です。この方法で署名された計算を行うことは可能ですか?または、最初に値をCPUで符号なしに変換し、描画してから、CPUで再度符号を付ける必要がありますか?
編集:
少しわかりませんでした。私のハードウェアはOpenGL3.3ハードウェアに制限されています。私は他のものにOpenGLを使用しているので、CUDAやOpenCLは使用したくないです。
各オーディオサンプルは別々のパスでレンダリングされます。つまり、フレームバッファにすでにレンダリングされているものと「ミックス」する必要があります。問題は、ピクセルシェーダーからの出力がフレームバッファーにどのように書き込まれるかです(私が知る限り、このブレンディングはプログラム可能なシェーダーからはアクセスできず、glBlendFuncを使用する必要があります)。
EDIT2:
各オーディオサンプルは異なるパスでレンダリングされるため、シェーダーで一度に使用できるオーディオサンプルは1つだけです。つまり、FBOに蓄積する必要があります。
ではなく
c++ - OpenGLマルチビットアルファテクスチャ
8ビットのアルファチャネルを持つテクスチャをレンダリングするのに問題があります。つまり、1ビットにフラット化され、glBlendFunc()は何もしていないようです。
即時モードの呼び出しは次のとおりです。
}
言うまでもなく、舞台裏で設定されているさまざまなOpenGL状態があり、明らかにそのうちの1つです。
ブレンド段階を妨げる可能性があることに気付いていない状態はありますか?
私はblendfuncを正しく持っていますか?それは私が見たインターネットページからは正しいようです-しかし、私はGDEBuggerでテクスチャをチェックしたので、画像は間違いなく8ビットのアルファチャネルでロードされ、アルファチャネルなしで1ビットの画像を試しましたアルファチャネル。
どんな助けでも大歓迎です!
編集:
回答への回答:私はSOIL画像読み込みライブラリを使用しています。そのソースを調べて、それがどのように機能するかを確認します。現在、私はすでにレンダリングされたシーンの上にこの画像をレンダリングしています-間違いなく深度の問題に直面していません-実際、深度バッファテストはオフになっています。
opengl - NSBitmapImageRep を使用してアルファ付きの OpenGL テクスチャを作成する
次を使用してPNGをロードしています:
そこから gl テクスチャを正常に作成し、透明度なしで正しくレンダリングできます。ただし、次を使用してブレンドを切り替えると:
テクスチャは正しい透明な背景でレンダリングされますが、イメージの色が正しくありません。
ブレンド機能でいくつかのオプションを試しましたGL_SRC_ALPHA
, GL_ONE_MINUS_SRC_ALPHA
, GL_ONE
, GL_DST_ALPHA
, など.
画像データのビットを並べ替える必要があるかもしれない、おそらくチャンネルが混同されているかもしれないと教えられましたが、その場合、ブレンドがオフになっていると正しくレンダリングされるとは思いません。
または、libPNG を使用することもできますが、NSBitmapImageRep
可能であれば使用してみたいと思います。
c++ - カスタム glBlendFunc はネイティブよりかなり遅い
フラグメントシェーダーを介して独自のカスタム glBlendFunc を実行しようとしていますが、正確なブレンド機能を実行する場合でも、私のソリューションはネイティブの glBlendFunc よりもはるかに遅くなります。
より効率的な方法でこれを行う方法について何か提案があるかどうか疑問に思っていました。
私のソリューションは次のように機能します。
フラグメント.glsl