問題タブ [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 投票する
1 に答える
667 参照

c# - 基本的な描画方法blenddstateが認識されませんか?

私はプログラミングがかなり得意ですが、c#(xna)は初めてです。チュートリアルに従って画面にスプライトを描画していますが、drawメソッドで次のように使用するとblendstateメソッドが認識されません。

// Blendstateを認識しません(その下に波線を置きます)

これは間違いなく私を悩ませているので、事前に感謝します。

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

directx - DX 9 でテクスチャの特定の部分だけをアルファブレンドするにはどうすればよいですか?

DX 9 でテクスチャの特定の部分だけをアルファブレンドするにはどうすればよいですか?

たとえば、Photoshop のレイヤー (またはレイヤーをサポートするその他の写真編集プログラム)。
レイヤー(アルファで満たされた背景)に何かを描画し、レイヤーを元の画像の上に配置して(画面にテクスチャを描画)、元の画像+レイヤーに描いたもののみを作成できます。

はい、私の英語があまり「ピカピカ」ではないことはわかっています。

事前にどうもありがとうございました!

PS 私のテクスチャの背景はアルファで満たされています。

0 投票する
4 に答える
4836 参照

android - Android/opengles アルファ テクスチャは半透明ではなく、バイナリ透明です

アルファ チャネルを使用していくつかのテクスチャを描画していますが、それらが表示されると、アルファ チャネルがバイナリのみのように見えます。したがって、テクスチャ ファイル自体ではピクセルは半透明ですが、ピクセルは透明または不透明です。ブレンドは次のように設定されます。

この問題の回避策はありますか?

上記は、それがどのようであるべきかを示しており、以下はそれがどのようであるかを示しています。

代替テキスト

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

flash - ActionScript 3-同じムービークリップのグラフィックに2つの形状を描画し、それらの間のアルファブレンディングを回避します

例えば:

これにより、アルファ値が0.5よりも暗いボックスが表示されます。次のようなものを使用せずに0.5アルファの正方形が必要です。

明らかに、私は正方形を描くためにそれを望んでいません、それは私が取り組んでいるシャドウキャスティングアルゴリズムのためです。

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

c# - C#でアルファ合成(ポーターとダフ)を使用するにはどうすればよいですか?

Alpha Compositing for .NETの実装(API)はありますか?ウィキペディアは、Windowsにネイティブ実装があることを意味します。もちろん、ピクセル操作で行うこともできますが、これはパフォーマンスが低下します。ネイティブ実装がある場合は、それを使用する必要があります。

.NETから使用できるネイティブ実装がない場合、それを実装しているライブラリはすでにありますか?

JavaにはAlphaCompositeクラスがあり、非常に単純です。

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

iphone - マルチテクスチャリングでの OpenGL ES の glColor4f の使用

私がやろうとしているのは、OpenGL ES 1.1 を使用して iPhone でマスクされたテクスチャを出力することです。実際に最終結果の ALPHA を変化させたいと思うまでは、デフォルトの結合動作が有利に働くようです!

'a' (アルファ) float 変数は、ここでは効果がありません: (他のすべては正常に出力されます。アルファが制御不能な 1.0 Opaque であることを除けば、マスクされて適切に描画されます)。

[編集] 色全体にはまったく効果がなく、まるで (1, 1, 1, 1) に設定されているかのようで、アルファだけではありません.[/編集]

フォトショップにマスクされたレイヤーが正しく表示されていると考えてください。レイヤーの不透明度を設定するだけです。私はあなたの助けに感謝します!

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

delphi - Delphi 6:アルファチャンネルを持つTextOutでビットマップを作成する方法は?

私が尋ねた質問が、探している答えを得るのに最適な形式ではない場合に備えて、私の全体的な目標について説明します。X 軸を中心に回転する単語または「単語ボール」の球体があります。単語が後ろに回転するにつれて (Z 座標は -1 から 1、前から後ろに移動します)、各単語のサイズと不透明度を変更して、「前」の単語が 100% 不透明でフルサイズの単語になるようにします。後ろは小さく、やや透明です。私はこれをまっすぐな Delphi コードで行い、Direct3D などを避けたいと思います。回転コードは既に正常に動作しています。Z 座標ベースの知覚シェーディングのアイデアを実装するだけです。

単語ボールを作成するとき、単語ごとに TImage コンポーネントを動的に作成します。TCanvas.TextOut() メソッドを中央に配置して、単語を TImage ビットマップに「出力」します。BitBlt を使用して、そのビットマップをメイン Canvas 内の単語ボールを保持する正しい場所にコピーするつもりです。BitBlt は高速で、オンザフライでビットマップのサイズを変更できるため、私の知覚シェーディング操作の要件の 1 つを満たしています。

しかし、アルファブレンディングを容易にする最善の方法がわかりません。Windows には AlphaBlend() 呼び出しがあることを知っており、使用するのはかなり簡単です。しかし、アルファ チャネルを持つ単語ごとの TImage コンポーネントのコピーであるビットマップを作成する方法を知る必要があります。私の場合、Z座標に基づいて単語全体に不透明度を均一に適用したいので、ビットマップ全体のアルファチャンネルの値は均一になることに注意してください。

TCanvas.TextOut() を使用して作成されたビットマップを持つ動的に作成された TImage コンポーネントには、アルファ チャネルがありますか? そうでない場合、AlphaBlend() 呼び出しに渡されるアルファ チャネルを持つ TImage ビットマップのコピーをリアルタイムで作成または作成するにはどうすればよいですか? これをすべて行うためのより良い方法があれば、私に知らせてください。

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

delphi - Delphi 6: アルファブレンディングはサブイメージとメイン Canvas の間で機能しますが、サブイメージ間では機能しません

私は Delphi 6 アプリケーションを持っており、TBitmap の Canvas を白で塗りつぶすために clWhite を使用して FillRect() を呼び出し、続いて toTextOut() を呼び出すことによって作成されたイメージ (サブイメージ) を含む TBitmaps の配列があります。ビットマップのキャンバスにテキストを印刷します。

TImage コンポーネントに属するメイン Canvas を更新するタイマーがあり、各サブイメージ X、Y 座標が動いているために加えられた変更を反映するために、Interval ごとに配列の内容が反映されます。まず、clWhite で FillRect() を使用して、メインの Canvas を白で塗りつぶします。サブイメージを「印刷」するには、配列を反復処理し、Alphablend() を呼び出して、各サブイメージをメイン Canvas に「印刷」します。各サブイメージには、不透明度の制御に使用される Z 座標があります。Z 座標が高いサブイメージは、Alphablend() の値が低くなり、「クローズ アップ」のものよりも透明に見えます。

アルファブレンディングは、個々のサブイメージでうまく機能し、座標が高いものは、Z 座標が低いものよりも透明に見えます。ただし、Z 空間でオーバーラップするサブイメージに問題があります。重なり合うサブイメージ間のアルファ ブレンディングは機能していないようです。代わりに、オーバーラップするサブイメージの「後ろ」にあるサブイメージは、その上にあるイメージに属する白い背景によって遮られます。私が望むのは、2 つのサブイメージを適切に重ね合わせて、2 つのテキスト文字列が互いに重なって表示されるようにすることです。代わりに、前面のテキスト文字列が表示され、TBitmap の Canvas を構成する白い背景がどこにでも存在し、その「後ろ」のテキスト文字列が消去されます。

個々のサブイメージとメイン キャンバスの間でアルファ ブレンディングが機能しているのに、サブイメージ間では機能していない理由を誰か教えてもらえますか? オブジェクトとしてではなく一時的なコンテキストでのみサブイメージ間で言うのは、サブイメージが印刷されるときにすべてメイン キャンバスの一部になる必要があり、アルファ ブレンドがそれらを適切にブレンドすることを期待しているからです。

サブイメージ間の「白」が、サブイメージとメイン Canvas に属する「白」との間の「白」と同じように扱われていないかのようです。

フォローアップ: Andreas のコメントに応えて、すべてのサブイメージ TBitmap の PixelFormat を pf32bit に設定しました。現在、サブイメージの「間」でアルファブレンディングが行われています。残念ながら、サブイメージの白い部分は透明色として扱われていません。代わりに、上にあるサブイメージの白い背景が下にあるサブイメージに属するテキストとアルファブレンドされ、上にあるサブイメージの周りに薄い灰色のフレームが作成されます。必要な効果を得るには、サブイメージの白い背景を完全に無視する必要があります。

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

ios - UIColor `-colorWithPatternImage:`アルファブレンディングの問題の解決策。(iOS SDK 4.1)

質問ではなく、ソリューションノート。

このコードを使用して、背景をパターン画像として設定しました。

これは機能しますが、アルファブレンディングは機能しません。バグの可能性があります。それを機能させる方法は?

  • プラットホーム:iOS SDK 4.1
0 投票する
2 に答える
64626 参照

c++ - C++Win32で透過ウィンドウを作成する

半透明のPNGのみを表示することを唯一の目的とする非常に単純なWin32C++アプリを作成しています。ウィンドウにはクロムが含まれていてはならず、すべての不透明度はPNG自体で制御する必要があります。

私の問題は、ウィンドウの下のコンテンツが変更されたときにウィンドウが再描画されないため、PNGの透明な領域が、アプリケーションが最初に起動されたときにウィンドウの下にあったものと「スタック」することです。

新しいウィンドウを設定する行は次のとおりです。

RegisterClassExの呼び出しでは、バックグラウンド用に次のように設定しています。

WM_PAINTメッセージのハンドラーは次のとおりです。

注意すべき点の1つは、アプリケーションは常に画面の左側にドッキングされており、移動しないことです。ただし、ユーザーがアプリケーションの下にあるウィンドウを開いたり、閉じたり、移動したりすると、アプリケーションの下にあるものが変わる可能性があります。

アプリケーションが最初に起動したとき、それは完璧に見えます。PNGの透明な(そして同様に透明な)部分は完全に透けて見えます。ただし、アプリケーションの下の背景が変更されても、背景は更新されません。アプリケーションが最初に起動されたときと同じままです。実際、WM_PAINT(またはバックグラウンドが変更されたときにWM_ERASEBKGNDは呼び出されません)。

私はこれでかなり長い間遊んでいて、100%正しくなることに近づいていますが、完全にはそこにありません。たとえば、背景を(HBRUSH)NULL_BRUSHに設定し、WM_ERASEBKGNDを処理しようとしました。

ウィンドウの下の内容が変更されたときにウィンドウを再描画するにはどうすればよいですか?