問題タブ [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 に答える
3313 参照

performance - パフォーマンスを向上させるために OpenGL でアルファ ブレンドに取り組む

ブレンドを使用するとゲームのパフォーマンスが低下するため、ブレンドの「錯覚」を作成するためにいくつかのブレンド戦略を試しました。そのうちの 1 つは奇数フレームごとにスプライトを描画しているため、半分の時間でスプライトが表示されます。効果はかなり良いです。(ちなみに、適切なフレームレートが必要です。そうしないと、スプライトが著しくちらつきます)

それにもかかわらず、ビジュアル エクスペリエンスを (過度に) 損なうことなく全体的なパフォーマンスを向上させるために、ブレンドを回避するための良い洞察があるかどうかを知りたい.

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

opengl - すでにテクスチャが付いているクワッドをブレンドする方法

素敵な質感のクワッドを作りました。テクスチャにはアルファチャネル(RGBA)があります。クワッドをテクスチャに置き換えた(GL_REPLACE)ので、(半)透明なピクセルが付いたビルボードができました。

これまでのところ、問題ありません。

しかし、今はビルボード全体をブレンドしたいので、全体的な不透明度が変わります

どうすればいいですか?

0 投票する
11 に答える
11289 参照

iphone - alphatransparency を使用して PNG ファイルを作成するには、グラフィカル エディターが必要です。

残念ながら、Photoshop は現在、alphatransparency を使用して PNG ファイルを作成するために使用できる唯一のグラフィカル エディターです。

私は本当にそれが嫌いです。しかし、私はそれが必要です。しかし、それを買う余裕はありません。

Pixelmator はとても良さそうに見えましたが、何度も何度もクラッシュします。私の真新しいMacBook Proで。本当に、それはオプションではありません。

Gimp: 起動直後にクラッシュします。そして、私はこのX11のことが本当に好きではありません。私のMacでは動作しません。

Gimpshop: 同じ問題です。

Opera ブラウザ、XCode、iWork 以外は何もインストールしませんでした。

だから:他に何が私を助けることができますか?

私は通常 JPEG 画像を持っており、その画像内のオブジェクトを切り取り、alphatransparency を使用して PNG として保存する必要があります。バックグラウンドで滑らかに見えるように、アルファ シャネルで素敵なマスキング編集を行う必要があります。

そのために iPhone アプリでどのようなツールを使用していますか?

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

c# - 画像をデータベースに保存する

以下のコードを使用して画像をデータベースに保存し、それをバイト配列にストリーミングできますが、戻ってくると、画像の周りのアルファブレンディングが失われ、ブロック状の青い境界線が表示されます。

どうすれば元の画像を取り戻すことができますか?

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

math - アルファブレンディング量を指定してRGBカラーを計算する方法は?

画面上のどこからでもピクセル RGB 値を取得するカラー ピッカーを作成しています。選択した色に既にアルファ値があることを指定するオプションも必要です。結果の色をどのように計算できるのか疑問に思っています。

例えば:

結果のピクセルの色は 240,247,249 ですが、元の色の不透明度は 10% で、白 (255,255,255) の背景の上にあったことがわかります。元の RGB 値を計算する計算は何ですか?

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

c++ - 誰かがアルファでビットマップを事前乗算する最適化された関数を持っていますか?

GDIPlus ブレンド関数は、効率を高めるためにアルファ ビットマップで事前に乗算された RGB チャネルを使用します。ただし、アルファによる事前乗算は、各ピクセルを 1 つずつ処理する必要があるため、非常にコストがかかります。

SSEの組み立ての有力候補になりそうです。その実装を共有したい人がここにいますか? これが大変な作業であることを知っているので、それが私が尋ねる理由です。あなたの作品を盗もうとしているわけではありません。可能であれば、これを共有するためのすべての考慮事項を取得します。

編集:ソフトウェアでアルファブレンディングをしようとしているわけではありません。画像内の各ピクセルの各色成分をアルファで事前に乗算しようとしています。アルファ ブレンドは次の式で行われるため、これを行っています: dst=src src.alpha+dst (1-dst.alpha) ただし、AlphaBlend Win32 関数は dst=src+dst(1-dst.alpha) を実装します。最適化の理由。正しい結果を得るには、AlphaBlend を呼び出す前に src を src*src.alpha と等しくする必要があります。

私はアセンブリについてほとんど知らないので、書くのに少し時間がかかるので、誰かがその実装を共有したいかどうか尋ねていました. ソフトウェアによるアルファブレンディングのゲインは300%であるため、SSEは素晴らしいでしょう。

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

delphi - 子フォームを AlphaBlend する

子フォームを AlphaBlend する方法を探しています。可能であれば、レイヤード ウィンドウを使用して、その背後にインタラクティブなコントロールがあるためです。

問題は、通常の TForm に、複数のビジュアル レイヤー (図面、写真など) を描画するコンポーネントがあることです。ある時点で、このフォームでエディター コントロールを (インプレースで) インスタンス化する必要があります。このコントロールには、コントロールの外部にあるさまざまな標準入力コントロール (編集ボックス、チェック ボックスなど) が含まれますが、オーバーレイしたいと思います。アルファブレンディングを使用して編集されているレイヤーの前のレイヤー(およびWS_EX_TRANSPARENTクリックスルーにする)。

私は最初にそのために子フォームを使用することを考えました (borderless TForms がコンポーネントの親になっています)、それは問題なく動作し、AlphaBlended TForm がまったくアルファブレンドされず、親になるとすぐに不透明になります...

次に、alphablended フォームの親を外して fsStayOnTop に設定し、関連するイベントに反応して画面上のコンポーネントの前に保持しようとしましたが、これは機能しますが、本当に満足のいく解決策ではありません: alphablended StayOnTop フォームはまた、ユーザーがコンポーネントの前にそれらを移動することを決定した場合、アプリケーションの他のモーダルおよびモードレスフォームの前にも...

では、子フォームをアルファブレンディングする方法に関する他のアイデアはありますか? (またはそのように振る舞う)

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

.net - GDI+のブランケットアルファコンポーネント

後続のすべてのGDI/GDI +呼び出しに影響するアルファ値を設定する方法はありますか?つまり、Graphicsオブジェクトに対するすべての呼び出しの透明度を設定しようとしています。

*Transform(関数Graphicsが呼び出されるオブジェクトにどのように影響するかに似たものを探しています)

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

c++ - アルファ チャネルを使用した子ウィンドウのちらつき

ピクセルごとのアルファ チャンネルを持つビットマップを含む子コントロールを描画すると、再描画が必要になるたびにかなりちらつきが発生します。実際のブレンドは正しく機能しています。ちらつきの低減に関する多くの情報 (この質問このサイトなど) を見つけましたが、この状況に特に当てはまるものは見つからないようです。

たとえば、ボタンの状態に応じて、アルファ ブレンドされ、ウィンドウにブリットされるいくつかの異なるビットマップを持つボタンがあります。それらの状態が変化し、別のビットマップを描画する必要がある場合は、最初に背景を再描画する必要があります。そうしないと、前の状態のビットマップから残ったピクセルとブレンドされます。これは、ちらつきが発生する場所であり、時折背景が少し引き裂かれます.

トップレベルの親ウィンドウが単色ではなくビットマップ背景を描画することと、子コントロールがオーバーラップする可能性があることにより、問題はさらに複雑になります。を使用しているように、下にある色を子のビットマップに乗算するだけでは問題ありませんWS_CLIPCHILDREN

ウィンドウにはビットマップの背景があるため、上書きされるだけの色を描画しないようtrueに、 に戻ります。WM_ERASEBKGND

もちろん、ダブル バッファリングはこれらすべてを解決するように見えますが、私はそれを正しく機能させることができませんでした。WS_COMPOSITEDトップレベル ウィンドウとWS_TRANSPARENT子ウィンドウを設定しました。新しいビットマップで子ウィンドウを再描画するときが来ると、いくつかの問題が発生します (この状況で描画順序がどのように機能するかを理解していないことが原因である可能性が最も高い):

  • 子ハンドルを呼び出しInvalidateRect()て渡すと、子ウィンドウは実際に再描画されますが、背景は再描画されないため、ピクセルが互いに重なり合ってブレンドされます。
  • 子ウィンドウの寸法で構成される四角形を使用して、ハンドルを呼び出しInvalidateRect()て渡すと、背景は再描画されますが、子ウィンドウは再描画されません。
  • 上記の両方を行うと、子ウィンドウと同様に背景も再描画され、希望どおりに見えますが、そうすることで、再びちらつくことができました (これは「そうではありません」)。そのように2回呼び出すのはひどくハックに見えるので、本当に驚くべきことです。なぜならInvalidateRect()、各呼び出しがおそらくバッファを反転させ、目的を無効にするからだと思います)。

私が結論付けたのは、ダブル バッファリングを処理するためにプログラムをどのように変更する必要があるか、またはダブル バッファリングがこの状況に役立つかどうかを本当に理解していないということです。間違いなくそうだと思いますが、すべてを再び適切に再生するには、どのように変更する必要があるのか​​ よくわかりません.

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

opengl - アルファ透過性のための AMD RenderMonkey GLSG Config

RenderMonkey を使用して、アルファ透明度を使用する GLSL シェーダーを設計しようとしていますが、RenderState エディターは、OpenGL で慣れ親しんだ用語を使用していません。単純なアルファ透過性を設定する方法について誰かアドバイスできますか?