問題タブ [alphablending]

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

c++ - SDLでハードウェアアクセラレーションによるアルファブレンディングを行う方法は?

SDLでアルファブレンドするための最も効率的な方法を見つけようとしています。代わりにOpenGLを使用するようにレンダリングコードを書き直したくないので(私が読んだのはアルファブレンディングではるかに効率的です)、SDLのアルファを最大限に活用する方法を見つけようとしていますブレンディング。

ハードウェアサーフェスを使用することでメリットが得られることを読みましたが、これはゲームをフルスクリーンで実行する必要があることを意味します。誰かがこれについてコメントできますか?または、SDLのアルファ透明度に関して他に何かありますか?

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

iphone - OpenGLESマルチテクスチャアルファブレンディングの質問

これはおそらく初心者の質問ですが、私は適切な答えを見つけることができませんでした:

OpenGL ESにオブジェクト(実際には、BlenderからのUVマップエクスポート)があり、それに2つのテクスチャを適用したいと思います。正確には、地球のような球体があり、それに2つのテクスチャ(昼側と夜側)を追加したいと思います。

アルファマッピングを通して考えたのですが、実行時に一方のテクスチャをプログラムでフェードし、もう一方のテクスチャを表示して、地球が地球のリアルなシミュレーションになるようにすることができるはずです。私にはその背後にある数学があります。つまり、オブジェクトの各面のアルファマップを作成することは問題ではありません。

これをどのように達成できるかについてのヒント/ポインターはありますか?

ありがとう

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

flash - BitmapData オブジェクトの単一チャネルを変換する

アルファ チャネルを持つ BitmapData オブジェクトがあります。ActionScript3 (FlashPlayer10) でそのアルファ チャネルをオフセットする最速の方法を知りたいです。オフセットとは、カラー チャネルをそのままにして、そのチャネルのすべてのピクセルを一方向にシフトする (画像の境界線を囲む) ことを意味します。

このような変換を 1 つのチャネルのみに適用する良い方法はありますか?

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

opengl - ポリゴンのアンチエイリアスを機能させるにはどうすればよいですか?

私はこれらの関数呼び出しを使用しています:

動作せず、レンダリングされません。

アンチエイリアスではありません。

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

python - 完全に黒いテクスチャのオフスクリーン フレーム バッファで線がレンダリングされない

テクスチャがバインドされたフレーム バッファがあり、それが単に黒で完全なアルファであり、それに線を描画しようとすると、線が完全なアルファを持っていてもレンダリングされません。私はバカではないので、線は絶対に黒ではありません。代わりに、テクスチャが白の場合、その背後のテクスチャの色がダムの線の色に影響を与えるかのように、線が突然正しくレンダリングされます。線が透過性を持っている場合にのみ、線の背後の色が効果を持つべきです。

ラインスムージングを使用しています。どうやら使用するものである次のブレンド関数を使用します。

これを修正するにはどうすればよいですか?

多くのコード:

線を引く場合:

フレームバッファ オブジェクトの設定:

テクスチャの作成:

フレーム バッファ オブジェクトを使用して、画面または Surface オブジェクトのテクスチャに多数の線を描画する関数:

それだけが重要だと思います。おそらく初期化コードを除いて:

0 投票する
3 に答える
5363 参照

python - OpenGLの透明なFrameBufferの背景

glClearとglClearColorを使用して、フレームバッファをアルファ透明度を含む色で塗りつぶしたいと思います。ただし、フレームバッファは、画面にレンダリングされるテクスチャにバインドされると、常に不透明としてレンダリングされます。

フレームバッファにレンダリングされるすべてのものが透明性を維持するようにしたいです。背景を変えたいだけです。

次のコードを参照してください。

surface.background_alphaは、フレームバッファの背景の透明度である必要があります。これが私の初期化コードです:

私は物事を機能させるために多くの調整を行い、すべてを適切に整理していないため、コードは少し厄介です。

誰かが私を助けてくれるなら、私は大いに感謝します。

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

iphone - iPhone OpenGL ES アルファ ブレンドがシミュレーターでは白、iPhone ではグレーとして表示される

私の問題は、iPhone で OpenGL ES 1.1 を使用したアルファ ブレンディングが正しくないことです。これに関する他の多くの人々の問題とは異なり、テクスチャは関係ありません。

明るい青の背景に小さな白い円を何十個も描いています。各円は GL_POINT として描画されます。alpha=1.0 から alpha=0.0 へのフェードをアニメーション化しています。iPhone シミュレーターではすべてが完璧に機能します。これは、アルファが 0 に近づいたときのアニメーションの最後のフレームの 1 つのスナップショットです: [削除済み]

実際にオリジナルの 2G iPhone にインストールすると問題が発生します。アルファがゼロに近づくと、かすかな白い円としてレンダリングされる代わりに、各ポイントが濃い灰色の円としてレンダリングされます。これは、問題のある iPhone レンダリングのスナップショットです: [削除済み]

私が使用するいくつかの関連する呼び出しは次のとおりです。

これはすべて正投影ビューの 2 次元です。

この同様の質問を見つけ、CAEAGLLayer.opaque が TRUE に設定されていることを確認しました。

(ハイパーリンクされていない画像で申し訳ありません。新しいユーザーの制限...)

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

c++ - gdi+ を使用して hdc を描画すると、事前に乗算されたアルファ ビットマップになりますか?

GDI+ DrawImage を使用して CImage オブジェクトにビットマップを描画しようとしています。結果のCImageビットマップはアルファで事前に乗算されているようですが、msdnのドキュメントにはそれについての言及が見つかりません。

CImage HDC で DrawImage を使用して描画するとどうなりますか?

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

iphone - MAX(As,Ad) openGL ブレンディングを達成することは可能ですか?

グリッド上の一連のスプライトの下に影を作成したいゲームに取り組んでいます。影はスプライト自体よりも大きく、スプライトはアニメーション化されます (つまり、移動と回転)。

それらを単にスプライトpngにレンダリングすることはできません。そうしないと、影が隣接するスプライトに重なってしまいます。

また、影を下のレイヤーに単独で配置することもできません。影が重なると、交点に暗い帯ができるからです。

これらのスプライトはアニメーション化されるため、まとめてレンダリングすることはできません。

基本的には、スプライトのシャドウをブレンドして、設定した不透明度で最大になるようにしたいと考えています。例:

ここに画像の説明を入力

これは、(Rs,Gs,Bs,Max(As,Ds)) の openGL ブレンドと同等であると考えています。R、G、および B は、src では常に同じ色であるため、あまり気にしません。そしてdst。

ただし、これは有効な openGL ブレンド モードではありません。特にcocos2d-iphoneでこれを達成する簡単な方法はありますか?

シャドウ スプライトを不透明にしてから、両方を親スプライトに適用し、親スプライトの不透明度を 40% にすることで、これに近づけることができます。ただし、cocos2d の動作では、結合されたスプライト イメージではなく、各子の不透明度を 40% に設定するだけで、結果として同じストライプになります。

0 投票する
3 に答える
21985 参照

opengl - opengl-フレームバッファの以前のコンテンツとのブレンド

フレームバッファオブジェクトを介してテクスチャにレンダリングしています。透明なプリミティブを描画すると、そのプリミティブはその単一の描画ステップで描画された他のプリミティブと適切にブレンドされますが、フレームバッファの以前のコンテンツと適切にブレンドされません。

テクスチャのコンテンツを新しいデータと適切にブレンドする方法はありますか?

編集:より多くの情報が必要です、私はより明確に説明しようとします。

私が使用しているブレンドモードはGL_SRC_ALPHA、GL_ONE_MINUS_SRC_ALPHAです。(これは通常、標準のブレンドモードだと思います)

マウスの動きを追跡するアプリケーションを作成しています。前のマウスの位置と現在のマウスの位置を結ぶ線を描画します。フレームごとに線を描画したくないので、テクスチャに描画し、テクスチャをクリアせずに、それを使用して長方形を描画することにしました。それを表示するためのテクスチャ。

これはすべて正常に機能しますが、アルファが1未満のシェイプをテクスチャに描画すると、テクスチャの以前のコンテンツと適切にブレンドされません。テクスチャにalpha=.6の黒い線が描かれているとしましょう。数サイクル後に描画し、次にそれらの線上にalpha=.4の黒い円を描画します。円の「下」の線は完全に上書きされます。円は平らな黒ではありませんが(白い背景と適切に混ざり合っています)、予想どおり、円の下に「暗い線」はありません。

ただし、同じフレームに線と円を描くと、適切にブレンドされます。私の推測では、テクスチャは以前のコンテンツとブレンドされていません。まるでglclearcolorとブレンドしているだけのようです。(この場合、<1.0f、1.0f、1.0f、1.0f>です)