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

android - OpenGL ES Android で背景色を設定する方法

私は現在、ここでレッスン08で遊んでいます

http://insanitydesign.com/wp/projects/nehe-android-ports/

背景色を黒から白に変更したいです。onDrawFrame() の開始時にこれを行うために、私は呼び出しました

gl.glClearColor(1.0f, 0.0f, 0.0f, 0.0f);

これは確かに白い背景画面を設定しますが、画面には何も表示されません! したがって、これは明らかに間違った方法ですが、なぜ、どのように修正すればよいのでしょうか?!

よろしくお願いします。

編集 (5 日後): 誰も知らない?!!

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

graphics - DirectX アルファ ブレンディング (遅延レンダリング)

私は今、しばらくの間私を悩ませてきた大きな問題を抱えています。

私の問題は、私のゲームがディファード レンダリング エンジンを使用しているため、アルファ ブレンディングが非常に難しいことです。

この問題を解決する唯一の方法は、アルファを持つオブジェクトなしでシーン (深度マップ、法線マップ、拡散マップを含む) をレンダリングすることです。

次に、アルファ コンポーネントを含むテクスチャを持つポリゴンごとに、Z バッファを無効にして、法線、深度、および色を含めてレンダリングします。アルファが「0」の場合は、深度、法線、およびカラー バッファに何も出力しません。これら 2 つの別個のテクスチャに対して照明計算/その他の遅延効果を実行し、次に深度マップを使用してカラー バッファを結合し、どのピクセルが表示されているかを確認します。

このアイデアは非常にコストがかかります (言うまでもなく、いくつかの深刻な欠点があります)。明らかに、可能な限り少ないケースにのみ予約する必要があります。これにより、森林エリアのレンダリングは問題外になります。ただし、より良い解決策がない場合は、1 つ質問があります。

directx でアルファ ブレンディングを行う場合、必要なときに深度/法線/カラー バッファーへの書き込みを回避できるように設定できるシェーダー/デバイスの状態はありますか? 問題は、ピクセル シェーダーが指定されたすべてのレンダー ターゲットに出力する必要があることです。そのため、3 つのレンダー ターゲットに出力するように設定されている場合は、それを行う必要があります。これにより、テクスチャ内のそのテクセルの以前のカラー値が上書きされます。

これを可能にするブレンド状態がない場合は、法線、テクスチャ、および深度マップをコピーしてシーンを維持し、新しいテクスチャ、深度、および法線マップにレンダリングしてから、に基づいて 2 つのテクスチャを結合する必要があることを意味します。アルファ値と深度値。

私が本当に知りたいのは、遅延レンダラーでアルファをレンダリングするための簡単で確実で安価な方法があるかどうかだけだと思いますか?

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

opengl-es - cocos2d-iphone setBlendFunc()

これが私のコードの外観です

元のテクスチャ カラーは (246,149,32) です。結果は (0, 0, 0) です。

OpenGL によると、計算は次のようになります: ((246 * 1 + 0 * 1), (149 * 1 + 0 * 1), (32 * 1 + 0 * 1)) したがって、同じはずです。

なぜ私がここで間違っているのかわかりません。誰か助けてもらえますか?

よろしく、

0 投票する
10 に答える
28855 参照

css - HTML5でフォトショップのようなブレンドモードは可能ですか?

<div>透明であるだけでなく、Photoshopの乗算モードでブレンドされたように見えるように、Webページに赤い長方形の要素を配置したいと思います。

<div>があるので、そのposition: fixed下のコンテンツはすぐに変更されます。

HTML5 / CSS3 / canvas / SVGトリックでそれは可能ですか?

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

webgl - WebGl でブレンドを行う適切な方法

WebGL でブレンディングを行うときに、いくつかの問題があります。そのうちの 1 つは、ブレンドがオンのときにアルファ値に関係なく色がレンダリングされる方法です。つまり、アルファが 1.0 に設定されている場合でも、暗い色は常に下にあるものとブレンドされます。はい、明るい色ほどアルファ値によって表現が異なるので、シェーダーの設定に問題はないと思います。

繰り返しになりますが、まだ完全なシーンをレンダリングする機会がありません。現在、WebGl でのテストのみを行っているため、デフォルトの背景の上に単純なオブジェクトのみを描画します。オブジェクトを使用して画面のすべてのビットをレンダリングすると、これらのブレンディングの問題は「修正」されますか? それとも、これは WebGL の制限ですか?

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

iphone - CoreGraphicsブレンドモードのポーターダフへのマッピング

UIImage特に、CoreGraphicsを介して2つのオブジェクトをブレンドすることで画像操作を行うiPhoneアプリがありますCGContextSetBlendMode。私は現在、Androidへの移植を研究しています。BitmapPorterDuffモードを使用してAndroid上のオブジェクトに結合するプロセスを実行しました。ただし、もっと複雑な合成が必要です。たとえば、私はkCGBlendModeHardLight多くのブレンドに使用しています。

ソース画像のサンプルカラーに応じて、乗算またはスクリーンカラーのいずれか。ソース画像のサンプルカラーが50%グレーより明るい場合、スクリーニングと同様に背景が明るくなります。ソース画像のサンプルカラーが50%グレーよりも暗い場合、乗算と同様に背景が暗くなります。ソース画像のサンプルカラーが50%グレーの場合、ソース画像は変更されません。純粋な黒または純粋な白に等しい画像サンプルは、純粋な黒または白になります。全体的な効果は、ソース画像に厳しいスポットライトを当てることによって達成するものと似ています。これを使用して、シーンにハイライトを追加します。

しかし、Porter-Duffを介してこれをエミュレートすることは(可能であれば)とにかくわかりません。Androidは、すぐに使用できる優れた画像操作アルゴリズムをサポートしていませんか?Porter-Duffを何らかの方法で使用して、より高度なブレンドモードをエミュレートすることは可能ですか?

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

opengl - 複数のテクスチャをブレンドしてパーティクル システムを作成する

これが契約です。テクスチャに基づいてパーティクル システムを作成したいのですが、雲のテクスチャがあります。同じサイズとテクスチャを持つ 10 個の異なるポリゴンにテクスチャをマッピングします。それらを互いにブレンドすると、問題が発生し、たとえば5つのポリゴンであるピクセルが白くなりすぎます! 私はこれをしたくありません。私が欲しいのは、蓄積バッファの効果のようなものです。私はこのような効果を取りたい:

ページ内にポリゴンが1 つだけあり、ピクセルがその中にある場合、Rx、Bx、Gx は各ピクセルの色であるとします。これで、それぞれ同じサイズとテクスチャを持つ n 個のポリゴンができました。

Rtotal = R1/n+R2/n+...+Rn/n Gtotal および Btotal と同じ

アルファブレンディングからそのような結果を得るにはどうすればよいですか?

ところで、ここでは初期化です。

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

android - 2つのビットマップからのピクセルのブレンド

私はここで壁に頭を打ちつけています、そして私は私が愚かなことをしているとかなり確信しています、それで私の愚かさを公表する時が来ました。

2つの画像を取得し、標準のブレンドアルゴリズム(ハードライト、ソフトライト、オーバーレイ、乗算など)を使用して3番目の画像にブレンドしようとしています。

Androidにはそのようなブレンドプロパティが組み込まれていないため、各ピクセルを取得し、アルゴリズムを使用してそれらを組み合わせるという道をたどりました。ただし、結果はごみです。以下は、単純な乗算ブレンドの結果です(使用された画像と期待される結果)。

ベース:代替テキスト

ブレンド:代替テキスト

期待される結果:代替テキスト

ゴミの結果:代替テキスト

どんな助けでもいただければ幸いです。以下は、私がすべての「ジャンク」を取り除こうとしたコードですが、一部は成功した可能性があります。不明な点がある場合はクリーンアップします。

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

opengl - 初心者の透明性/openGLの不透明

OpenGLのNeHeチュートリアルを実行しています...レッスン8(ブレンドを使用して立方体を描画する)にいます。http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=08

実験して、面の半分を不透明に変更して、不透明な面の反対側に常に半透明の面があり、立方体を回転できるようにしたかったのですが...

コードを少し変更しました。ソース全体がそこにあります:http://pastebin.com/uzfSk2wB いくつか変更しました:

  • デフォルトでブレンディングを有効にし、ブレンディング関数をglBlendFunc(GL_SRC_ALPHA、GL_ONE_MINUS_SRC_ALPHA);に設定します。
  • 各面の面と色の描画順序を変更しました。
    • 深度テストを設定しました
    • 不透明な面をすべて描きます
    • 深度テストを無効にします
    • すべての透明な面を描きます

さて、何が悪いのか正確に判断するのは難しいですが、間違いなく正しく見えません。透明な顔と比べて不透明な顔がわかりません。必要なときに描画されないように見える顔もあります...など。 ..

後ろと比べて前の顔を計算するのは簡単ではないようですが(確かに可能ですが)、そうする必要がない方法があるといいのですが。

私のコードの何が悪いのか、またはこれがそもそもそれを行う正しい方法ではないのかどうかを探します。

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

c# - 「加法混色」「色相置換」についての質問

フォントの描画は CPU に関して非常にコストがかかるため、多くの開発者はラスター化されたフォントを使用してビデオ ゲームでテキストを描画します。それは私もやったことです。

テキストを描画するときに加算ブレンディングを使用すると、グリフのエッジに関してうまく機能し、これらは背景色とうまく融合します。

しかし、それは別の問題をもたらしました、

各色のグリフ ビットマップを生成する代わりに、フォントを描画するための「色」パラメーターを実装することにしました。そうしないと、メモリ使用量がすぐに問題になる可能性があります。必要なグリフと色の数だけでなく、フォント サイズにもよります。また、Unicode をサポートしているため、言語によっては何千ものグリフが必要になる場合があります。

「赤」の背景に「緑」のフォントをブレンドすると、「オレンジ」になります。これが加算ブレンディングの目的ですが、これをバイパスしようとすると、予想よりも少し複雑になりました。背景が「黒」の場合は明らかに発生しませんが、最終的にはその色ではない可能性があります。

「白」フォントの色を「任意」の色に変更しながら、「任意の」色の加算ブレンドを保持するにはどうすればよいですか?

どうもありがとう:D