問題タブ [compositing]

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

performance - 前乗算されたアルファを使用しないと「パフォーマンスが大幅に低下する」のはなぜですか?

QPainterQt での描画と合成を担当しています。ドキュメントには、パフォーマンスについて説明するセクションがあります。私の質問は、次の段落の太字の文に関するものです。

Raster - このバックエンドはすべてのレンダリングを純粋なソフトウェアで実装し、QImages へのレンダリングに常に使用されます。最適なパフォーマンスを得るには、フォーマット タイプ QImage::Format_ARGB32_Premultiplied、QImage::Format_RGB32、または QImage::Format_RGB16 のみを使用してください。QImage::Format_ARGB32 を含む他の形式は、パフォーマンスが大幅に低下します。このエンジンは、デフォルトで QWidget と QPixmap に使用されます。

カラー チャンネルにアルファを乗算することは、ソース オーバー操作で行われることを理解しています。この乗算は、コンポジターで行うのを避けるために事前に行うことができます。この乗算を実行するには、RGB チャネルにアルファを乗算してから 255 で除算します (または除算を模倣するために正しい方法でオーバーフローするマジック ナンバーを乗算します)。これは、1 ピクセルあたり 6 回の整数乗算です。確かに、余分な6つの整数乗算を実行しても、「パフォーマンスが大幅に低下する」ことはありませんか?

アルファ乗算は本当に遅いですか?おそらく彼らは、そのコード パスを他のコード パスほど最適化しようとしていないと述べているだけなので、そのコード パスがどのように機能するかについての保証はありませんか?

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

matlab - Matlab で SVG コンポジション標準を移植する際の問題

SVG コンポジション標準 (2009 年、https://www.w3.org/TR/2009/WD-SVGCompositing-20090430/ ) から 24 のメソッドのほとんどを Matlab に移植しましたが、4 つのメソッド (色覆い焼きなど) が中継されます。 if ステートメント内で画像を比較する (例: if Sca == Sa && Dca == 0 ...) が、Matlab はこれを非スカラー演算子と見なします。

Sc、Dc は RGB イメージです。Sa、Da はアルファ チャネルを表すグレー マスクです。Dca、Sca は乗算済みのイメージです。Dca = Dc .* Da; Sca = Sc .* Sa;

Sca == Sa && Dca == 0 の場合のエラー

|| へのオペランド および && 演算子は、論理スカラー値に変換可能でなければなりません

0 投票する
0 に答える
51 参照

rust - gtk アプリケーションを終了しても合成効果はありません

一定時間後に gtk アプリケーションを自動的に終了したい。これを適切に行うにはどうすればよいですか?私の問題は、ウィンドウが閉じてプログラムが存在している間、コンプトンによるフェードなどのウィンドウ効果が機能していないように見えることです。

これは私のコードです:

connect_destroy_event印刷メッセージを取得しないため、呼び出されません。

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

python - The Foundry Nuke – `elif` および `else` ステートメントの問題

簡単にするために、ノード グラフで選択したノードを Y 軸の 1 つの直線に揃えるスクリプトを NUKE で作成しています。ステートメントを書いているときに、elif思ったように機能しないか、構文エラーが発生するという問題があります。

したがって、関数の基本は次のとおりです。

ELSE STATEMENT- ノードを 1 つだけ選択した場合 - ユーザーが複数のノードを選択する必要があるというエラー メッセージが表示される

ELIF STATEMENT- 同じ Y 軸にある 2 つ以上のノードを選択した場合 - それらがすでに位置合わせされていることを示すメッセージ

IF STATEMENT- 異なる Y 軸で 2 つ以上のノードを選択した場合 - すべてのノードが一直線に正しく整列する必要があります