問題タブ [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.
iphone - iOSでのPhotoshopレイヤー「ソフトライト」ブレンドを真似したい
Photoshop では、通常、ディゾルブ、暗く、ソフト ライトなど、さまざまな方法を使用して、レイヤーをその下のレイヤーとブレンドできます。コア グラフィック API を使用して、iOS でこの効果をプログラムで複製したいと考えています。何か案は?
c# - 手動で色をブレンドする
最適化しようとしている問題があります。私はOpenGL関数を再現していますが、現在の問題は、nポイントの形状をラスター化し、ポイントに基づいて色をブレンドすることです。
ラスターは、長さScreen.Width * Screen.Height*3のバイトの1dim配列に格納されます。
私の実装は非常に遅いので、少し(まあ、たくさん)最適化したいと思います。シェイプ内の各ピクセルにアクセスし、各ポイントからの距離を取得し(Sqrt(x ^ 2 + y ^ 2)を使用します。これは、物事が遅いように見えます)、距離と頂点の色を使用して、その色を決定します。特定のピクセル。
私はこれを行うためのより速い方法があることを知っています。どんな助けでも素晴らしいでしょう!ああ、私はC#で働いています。
opengl-es - GLSLでテクスチャと色を一緒に?
OpenGL ES 2.0 で OpenGL ES 1.1 と同様の結果を得る方法がわかりません。実際に Sampler2D を使用して (テクスチャとアルファ チャネルをフレーム バッファにブレンドするため)、色も設定したいと考えています。テクスチャは色でペイントする必要があります-OpenGL ES 1.1のように、私のFragmentShaderは次のようになります:
しかし、「+ colorVarying」の部分は私のアルファチャンネルを黒で破壊し (AlphaValue が 0 の場合、colorVarying も追加するため)、奇妙なグラデーション効果を生み出します...固定関数パイプラインでテクスチャとカラーチャンネルをどのように組み合わせますか? glColor4f の私の代替品は次のとおりです。
そして、私は glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); を使用しています。これが何らかの形で関連している場合...
色 1.0、0.0、1.0、1.0 については、次のようになります。
そして、私は取得したい:
これを達成するためのアイデアはありますか?どんな助けでも大歓迎です。
c++ - OpenGL-複数のテクスチャを持つマスク
次の概念に従って、OpenGLにマスキングを実装しました。
- マスクは黒と白の色で構成されています。
- 前景のテクスチャは、マスクの白い部分にのみ表示されます。
- 背景テクスチャは、マスクの黒い部分にのみ表示されます。
glBlendFunc()を使用すると、白い部分または黒い部分を想定どおりに機能させることができますが、前景レイヤーがマスクだけでなく背景レイヤーにも溶け込むため、2つを同時に使用することはできません。
これを最善の方法で達成する方法を知っている人はいますか?私はネットを検索していて、フラグメントシェーダーについて何かを読んでいます。これは行く方法ですか?
opengl - 透明なスカイボックス+透明な高さマップでのOpenGLブレンディングの問題
これが私の問題です。
6つの透明なポリゴン(GL_BLEND、ソースGL_ONE、dest GL_ONE)でキューブスカイボックスをレンダリングした直後に、すべての前に(各コーナーに頂点の色を付けて)直交クワッド(ビューポートを埋める)をレンダリングしています。これは完璧に機能します。スカイボックスは、クワッドの下で半分の色になり、独自のUVマップされたテクスチャで半分の色になります。
高さマップ(GL_BLEND、GL_ONE、...)を追加すると、問題が発生します。高さマップは、+の下のスカイボックスとクワッドでブレンドされます。
私が欲しいのは、高さマップをオルソクワッドとブレンドすることですが、スカイボックスとブレンドすることはできません。高さマップを通してスカイボックスを見たくありません。
これを行うには別の方法があると確信しています。
最初にオルソクワッドとスカイボックス(現在のように)をレンダリングしてから、スカイボックスを差し引く特別なブレンディングで高さマップをレンダリングすることはできますが、ある種のマルチパスブレンディングでオルソクワッドをレンダリングすることはできませんか?
どうもありがとうございます !
ディミトリ
filter - OpenAL 同期
私はオーディオプログラミングに慣れていないので、適切な用語を使用していない場合はすみません...
同時に完全に同期して再生したい 2 つのストリーミング バッファがあります。ストリーム間のブレンドの比率を制御したい。2 つのソースを再生してゲインを変更するだけの簡単なことだと思いますが、2 つの単一チャネルの代わりに 2 つのチャネルをバッファリングするなどのトリックを行っている人について読んだことがあります。次に、単一のソースから再生しますが、チャンネル間のブレンドを制御します。私が読んだ記事は OpenAL に関するものではなかったので、私の質問は次のとおりです。これは OpenAL でも可能ですか?
このようにする必要はないと思いますが、今は興味があり、設定方法を学びたいと思っています。alFilter をセットアップすると思いますか? Creative のドキュメントには、「データの複数のチャネルを含むバッファは、3D 空間化なしで再生されます」と記載されています。これを読むと、バッファレベルでプリパスが必要であり、ソース出力にモノチャンネル信号をブレンドする必要があると思います。
別の質問をすると思います。OpenAL は、このようなトリックを行うのに十分柔軟ですか?
ストリームを手動でデコードするので、バッファにフィードする前にブレンドを自分で行うのがいかに簡単かを理解していますが、ストリームの 1 秒ほどがバッファリングされているため、ブレンド係数をリアルタイムで変更することはできません。 .
iphone - UIImage のエッジでのアルファ ブレンディング
2 つの長方形の画像があります。1 つは前景、もう 1 つは背景です。前景画像が背景画像の「一部」のように見えるように、前景画像のエッジをブレンドしようとしています。言い換えれば、前景画像の不透明度が画像の中心で 100% からエッジで 0% に減少する透明効果を適用しようとしています。この操作は、アルファ合成、アルファ ブレンディング、エッジ フェザリング、エッジ透明度など、さまざまな名前で呼ばれることがあることがわかりました。私が取得しようとしている効果の詳細な説明は次のとおりです。 http://en.wikipedia.org/wiki/Alpha_compositing
CGContext のドキュメントを見てきましたが、すぐに使える関数は見つかりませんでした。
CGContext または OpenGL を使用してそれを行う方法はありますか? 長方形以外の画像でそれを行う方法はありますか? 私は知っています、すべての画像は長方形ですが、たとえば、その中に円があり、その周りに透明な領域がある画像を意味します.
c# - XNA Render 複数のアルファ版の問題
複数のアルファ オブジェクトを重ねてレンダリングしようとすると問題が発生します。現時点では、1 つのアルファ オブジェクトを別のアルファ オブジェクトの上にレンダリングすると、一番上のアルファ オブジェクトは表示されますが、一番下のオブジェクトは、最初のオブジェクトを通り過ぎたり回ったりするまで表示されません。追加のブレンディング エフェクトを取得しようとしているので、一番上のオブジェクトは、その背後に別の透明なオブジェクトがあることを示しています。XNAでこれをどのように行いますか?? 私の現在のレンダリング状態の設定は次のとおりです。
android - OpenglES ブレンド パーティクルはバックグラウンドではありません
次のプロセスがあります。
問題 - パーティクルを描画すると、パーティクルが背景とブレンドされて非常に明るくなります。
私が必要としているのは、(2) を使用してパーティクルをブレンドし、(1) を使用して背景とブレンドすることです。
機能しないソリューション:
- テクスチャに効果を描画し、それを適用するよりもうまく機能します...しかし非常に遅いです。
- 最初にパーティクルエフェクトを描画し、背景よりもうまく見えます...しかし、背景とエフェクトの間にある必要があるため、シーンオブジェクトを描画できません
これが違いを示す画面です。右は目的の結果、左はパーティクルが背景とブレンドされています。
画像:
どんな助けにも感謝します...
最新の更新: 必要な色を取得できました...しかし... (この方法ではどこにも移動しないようです) 背景をアルファ = 0 でレンダリングし、GL11Ext のブレンド関数を使用しました: glBlendFuncSeparate(GL10.GL_SRC_ALPHA, GL10.GL_DST_ALPHA、GL10.GL_ONE、GL10.GL_ONE);
GL10.GL_SRC_ALPHA、GL10.GL_DST_ALPHA - アルファがある場合にのみ色がブレンドされます (bg は現在ありません)。
GL10.GL_ONE、GL10.GL_ONE - 加算ブレンドをシミュレートするために、書き込まれたすべてのパーティクルのアルファが最大に設定されます
ご覧のとおり、正常に動作します...粒子画像のアルファ 0 を持つ黒色の塗りつぶし領域を除いて..結果の画像では黒色がアルファ 1 であるため、それを置き換えることができません...
EDIT_2 簡単な言葉で言えば一般的な問題: 赤 (0xff0000) の光る (加算ブレンド) 効果を描画する必要があります。黒の背景では問題ありませんが、緑 (0x00ff00) を使用すると、結果の色は 0xffff00 に近くなります。
何か案は?
c++ - openGLで正しくブレンドする際の問題
2D タイルマップの上に 2D キャラクター スプライトを描画しようとしていますが、キャラクターを描画すると背後に奇妙なものがあります。これはスプライトにはないので、ブレンドだと思います。
これが私のopenGLのセットアップ方法です:
これを適切に機能させるにはどうすればよいですか (つまり、スプライトの後ろに奇妙なものを置かずに描画します)。
これは私が話していることです: http://i.stack.imgur.com/cmotJ.png
PS: 透明/半透明の画像を重ねて配置し、その背後にあるものも表示できるようにする必要があります