問題タブ [blending]

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 に答える
2218 参照

c# - .Netで32ビットアルファブレンドBMPを使用する方法

.Net(C#)でこの種の形式を使用する方法はありますか?uTorrentがアプリで使用しているのと同じスキンフォーマットを使用したいのですが、透明な背景を取得できません。何か案は?御時間ありがとうございます。

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

opengl - 背景が変化するテクスチャ付きフォントの BlendFunc

openGL シーンにテキストを表示できるように、テクスチャ フォントを使用しようとしています。ただし、機能する glBlendFunc 値を見つけるのに苦労しています。

テキストが配置される背景はグレースケール画像ですが、実行中に変化します。背景が変化するため、テキストは黒から白までの任意の色の上に表示される可能性があります。

私が見つけた最良の値は glBlendFunc(Gl.GL_SRC_COLOR, Gl.GL_ONE_MINUS_SRC_ALPHA) です。これにより、キャラクターを囲む黒いボックスが消えますが、背景が白に近づくにつれてキャラクター自体がフェードします.

助けてください!

0 投票する
5 に答える
7703 参照

c++ - OpenGLのテクスチャから黒い背景を削除する方法

メイン画像を完全に不透明に保ちながら、24ビットビットマップの背景を削除する方法を探しています。これまではブレンドが目的を果たしていましたが、メインビットを不透明に保つ必要があります。私はグーグルで検索しましたが、役に立たなかったのですが、おそらく間違った用語を検索していると思いますので、助けていただければ幸いです。

編集:はい、申し訳ありませんが、現在、背景として黒を使用しています。

0 投票する
7 に答える
27813 参照

algorithm - 実際の色を混ぜるように機能する混色のアルゴリズムはありますか?

RGBカラーの一般的な混色は、絵画の混色とは大きく異なります。つまり、顔料の混色ではなく、光の混色です。

例えば:

(青+黄=緑である必要があります)

実際の色を混合するように機能する、混色の既知のアルゴリズムはありますか?


私のアプローチ

私はすでに以下を試しました:

両方の色をHSVに変換し、色相を混合し(彩度から計算された係数を掛けたもの)、彩度チャネルと値チャネルの単純な平均。次に、両方の色から平均輝度を計算し、この輝度に一致するように結果の色を調整しました。これは非常にうまく機能しましたが、色相の混合が間違っている場合がありました。例:

色相の値を360°シフトする必要がある場合があることがわかりました(色相の差が180°より大きい場合)。

しかし、このシフトもあまり良くありませんでした。例:

(色相179 +赤)と(色相181 +赤)は、2つの完全に異なる色になります。


次に、人間が色を知覚する方法に近くなるように設計されたCIEラボ色空間(Photoshopのように)を試しました。

対応する2つのチャネルごとに単純な平均を使用しましたが、結果は満足のいくものではありませんでした。たとえば、青(98、-16、93)と黄色(30、 68、-112)。これらの係数はPhotoshopから取得されました。

たぶん、平均とは違う操作をすればうまくいくかもしれませんが、どうなるかわかりません。


CMYKも機能しませんでした。結果は、RGBまたはLABの場合と同じです。


これらの色空間のいずれにおいても、些細な加法混色も減法混色も自然な結果をもたらさないようです。


実用的な実装

Krita –Painterlyミキサー

ラスターグラフィックエディターのKritaは、ある時点でより現実的な混色の実用的な実装を持っていました:http: //commit-digest.org/issues/2007-08-12/(Painterlyミキサープラグイン)

彼らは、それが顔料の振る舞いを説明するクベルカとムンクの方程式を使用して特別な技術を実装する最初の公開アプリケーションであると言います。

これがKritaの混色のビデオです:https ://www.youtube.com/watch?v = lyLPZDVdQiQ

FiftyThreeによる論文

FiftyThreeによって開発されたiOS用Paperアプリのカラーブレンディングに関する記事もあります。彼らは、彼らがその地域でどのように革新し実験するかを説明し、また、緑をもたらす青と黄色の混合のサンプルを提供します。ただし、実際のプロセスやアルゴリズムは実際には説明されていません。

引用:

「優れたブレンディングアルゴリズムを探すために、最初はRGB、HSV、HSL、次にCieLABとCieLUVなどのさまざまな色空間を補間しようとしました。結果は期待外れでした」とChen氏は言います。「赤と黄色はオレンジ、または赤と青は紫になるはずですが、使用する色空間に関係なく、これらの色に到達する方法はありません。工学的な公理があります。最も単純なことを実行してください。おそらくうまくいく可能性があります。まあ、私たちは今、可能な限り最も簡単なアプローチを試しましたが、彼らはリモートでさえ正しいとは感じませんでした。」

Kritaと同じように、PaperはKubelka-Munkモデルを実装しています。

[...] Kubelka-Munkモデルには、各RGB色の反射値と吸収値を含め、各色に少なくとも6つの値がありました。「画面上の色の外観は3次元で表現できますが、色の混合は実際には6次元空間で行われています」とFiftyThreeの共同創設者兼CEOであるGeorgPetschniggは説明します。Kubelka-Munkの論文により、チームは美的問題を数学的フレームワークに変換することができました。[...]

これらすべての情報から、Kubelka-Munkモデルに基づく実装は前進の道であり、現実にはるかに近い結果を提供する可能性があるようです。

複雑なプロセスのように見えますが、このようなものを実装する方法については、まだ多くの良い情報を見ていません。


関連する質問

これらの質問は、すべて同じものに関連するこの質問の後に投稿されました。

それらのどれも本当に答えを持っていません。


その他の関連リンクとリソース

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

colors - 色補間

さて、典型的なカラー チューザーを見てみると、次のようになります。

画像

彩度の高い色のみを扱う場合、ブレンド パターンは次のように動作します。

0 から 1 の値を取り、このスペクトルで色を生成する補間関数 f を定義することは可能ですか (0 と 1 は、上記のスペクトルの左側と右側に対応します)。彩度の高い色だけを気にします (1 つのコンポーネントは常に 255 です)。また、このパターンはR→G→Bをブレンドしていることに気付きましたが、シアン、マゼンタ、イエローをブレンドする同様の機能もあるのですか?これは正しくありませんが、f(0) がシアンを生成し、f(1) が黄色を生成した場合、f(0.5) は、2 つの絵の具を混ぜた場合に得られる緑色と同様の緑色を生成します。

これが理にかなっていることを願っています。お気軽に何でもご相談ください。ありがとう!

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

iphone - OpenGL ES/iPhone での透明度/ブレンドの問題

不透明から透明になる単純な 16x16 パーティクルがあります。残念ながら、私の iPhone ポートでは異なっているように見え、コードのどこが違うのかわかりません。ほとんどのコードは本質的に同じです。

問題を示すためにここに画像をアップロードしました

左側のパーティクルは正しくレンダリングされていない iPhone バージョンで、右側は Mac と Windows での表示です。シンプルな RGBA .png ファイルです。

多数のブレンド関数と glTexEnv 設定を試しましたが、それらを同じにすることはできません。

念のために言っておきますが、iPhone でテクスチャをロードするコードは次のようになります。

私が使用するブレンド関数は glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); です。

これは私にとって少し謎だったので、人々が私に投げかけたアイデアを試してみます.

乾杯。

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

iphone - OpenGLES. 3 レイヤーのスターフィールド テクスチャをスクロールすると、60 -> 40 FPS になります

2D 空間スクロール シューティング ゲームの背景を描画する必要があります。星の 3 つのレイヤーを実装する必要があります。背景に 1 つの遠くの星雲 (非常にゆっくりと移動)、1 つの遠くの星 (ゆっくりと移動) のレイヤー、および他の 2 つの上にある近くの星 (通常の動き) の 1 つのレイヤーです。

私が最初にこれを試した方法は、星の透明な png である 320 x 480 の 3 つのテクスチャを使用することでした。GL_BLEND と SRC_ALPHA、ONE_MINUS_SRC_ALPHA を使用しました。

結果は 3GS でも良くありませんでした。第 1 世代のデバイスでは FPS が 40..50 に低下したため、これは間違った方法で行っていると思います。

GL_BLEND を無効にすると、第 1 世代のデバイスでもすべてが正常に機能し、FPS は再び 60 に戻ります...大きな透明なテクスチャをベルンドしようとしているのは事実に違いありません。

問題は、他の方法でそれを行う方法がわからないことです...

不透明なテクスチャのように最初の星雲だけを描画してから、小さな点が画面上を移動する中央および上部の星のレイヤーをエミュレートする必要がありますか?

ブレンディングの問題に他のアプローチはありますか? レンダリングプロセスを高速化するにはどうすればよいですか? 答えは 1 つの大きなテクスチャ (タイルセット) ですか?

ここで立ち往生していて出られないので助けてください。

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

c# - 2つの画像をブレンド/再生/ミキシングするためのシンプルなHLSLSilverlightフィルターを作成するにはどうすればよいですか?

2つの画像をブレンド/再生/ミキシングするためのシンプルなHLSLSilverlightフィルターを作成するにはどうすればよいですか?

2つの画像\オブジェクトを入力として受け取り、1つの画像を返すフィルターの実用的な例が必要です-いくつかの計算の結果。

Silverlightブレンドモードにしたい!)

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

iphone - マスクを使用してイメージを打ち抜くにはどうすればよいですか?

のプロパティを描画するプロセスの一部として使用されている画像に適用したいマスク (256 グレーの PNG から読み込まれた) があります。UITableViewCellimageView.image

セルが選択/強調表示されていない場合はCGImageCreateWithMask、適切な色の正方形とマスクをdrawAtPoint:使用して、作成中の画像に挿入します。これはうまくいきます。

ただし、セルが選択または強調表示されている場合は、代わりにマスクを使用して、画像を適切にパンチしたいと考えています。つまり、マスクが完全な不透明度を指定している場合、作成中の画像を完全に透明にして、テーブルビューの背景がそれを通して描画されるようにします。マスクが 0 の不透明度を指定している場合、アルファ チャネルは変更しないでください。影響を受けるアルファチャンネル以外は何も望んでいません。

私が言いたいのはUIImage、マスクに応じてさまざまなレベルの不透明度で、 の上に clearColor を描画したいということだと思います。

まず、これを何といいますか?第二に、どうすればいいですか?