タグ付けされた質問 「antialiasing」

1
レイトレーシングでのアンチエイリアス/フィルタリング
レイトレーシング/パストレースにおいて、画像のアンチエイリアスを行う最も簡単な方法の1つは、ピクセル値をスーパーサンプリングし、結果を平均化することです。IE。ピクセルの中心を通してすべてのサンプルを撮影する代わりに、サンプルをある量だけオフセットします。 インターネットを検索してみると、これを行うために多少異なる2つの方法が見つかりました。 必要に応じてサンプルを生成し、フィルターで結果を比較します 1つの例はPBRTです フィルターの形状に等しい分布を持つサンプルを生成します 2つの例は、smallptとBenedikt Bitterliのタングステンレンダラーです。 生成と計量 基本的なプロセスは次のとおりです。 必要に応じてサンプルを作成します(ランダム、成層、低差異シーケンスなど) 2つのサンプル(xおよびy)を使用してカメラレイをオフセットします。 レイでシーンをレンダリングする フィルター関数とピクセル中心を基準としたサンプルの距離を使用して重みを計算します。たとえば、ボックスフィルター、テントフィルター、ガウスフィルターなど) レンダリングから色に重みを適用します フィルターの形で生成する 基本的な前提は、逆変換サンプリングを使用して、フィルターの形状に従って分散されるサンプルを作成することです。たとえば、ガウスの形で分布するサンプルのヒストグラムは次のようになります。 これは、正確に実行するか、関数を個別のpdf / cdfにビニングすることで実行できます。smallptは、テントフィルターの正確な逆累積分布関数を使用します。ビニング方法の例はこちらにあります ご質問 各方法の長所と短所は何ですか?そして、なぜあなたは他の上に1つを使用するのですか?私はいくつかのことを考えることができます: Generate and Weighは最も堅牢であるようであり、任意のサンプリング方法と任意のフィルターの任意の組み合わせが可能です。ただし、ImageBufferの重みを追跡し、最終的な解決を行う必要があります。 フィルターの形状で生成は、負のpdfを持つことができないため、正のフィルター形状のみをサポートできます(つまり、Mitchell、Catmull Rom、またはLanczosはサポートしません)。ただし、前述のように、重みを追跡する必要がないため、実装が簡単です。 ただし、最終的には、メソッド2はメソッド1の単純化と考えることができます。これは、本質的に暗黙的なボックスフィルターの重みを使用しているためです。

2
Illustratorのベクターラスター化プロセスとは何ですか?
現在、ベクターグラフィックスのラスタライズと、さまざまなアプリケーションタイプで実装されるさまざまな方法について、いくつかのことを理解しようとしています。 いくつかのプログラムをテストして比較したところ、ラスター化プロセスでのアンチエイリアスの動作に大きな違いがあることに気付きました。Illustratorのレンダリング動作に特に興味があります。さらに読むと、その理由がわかります。 私のテストでは、さまざまな色の不規則な六角形に編成された非常に単純な三角形の構成を使用しました。 ベクターグラフィックソフトウェア Illustrator、Affinity、およびInkscapeの同じベクターグラフィックの3つのレンダリングを次に示します。(AffinityとInkscapeで生成される画像はまったく同じです。) ご覧のとおり、AffinityとInkscapeでレンダリングされた画像の各エッジには、望ましくない白い線があります。アンチエイリアシングは、この領域を単色で塗りつぶさず、隣接する形状の間に小さな隙間ができます。 Illustratorレンダリングにはギャップはありませんが、シェイプのエッジはアフィニティレンダリングと同じくらい滑らかに見えます。 以下は、各画像の同じ領域を拡大した画像です。 2つの画像には非常に微妙な違いがあります。アフィニティレンダリングは少しスムーズですが、元のサイズの画像を見ると違いを見るのはほとんど不可能です。 ブラウザ SVGレンダリング ブラウザでSVGとしてエクスポートされた同じグラフィックを表示すると、AffinityとInkscapeの両方で生成されたラスターイメージに非常に似ています。 エッジアンチエイリアシングにはごくわずかな違いがありますが(実際にここで示す価値はありません)、一般的なブラウザーでのSVGラスタライズはほぼ同じように動作します。 分解されたレンダリング Illustratorのレンダリングをさらにテストして、グラフィックスの一部を分割して個別にエクスポートし、ラスター編集ソフトウェアで一緒に再構成してみました。 理論的には、1つのピースに収めた場合と同じイメージになりますが、この方法を使用した場合、結果はわずかに異なります。 示されているように、2つの部分を構成すると、それらの間に小さなギャップがあります。より微妙ですが、Affinityでレンダリングされたグラフィックに非常に似ています。 ポリゴンレンダリング Blender(3Dソフトウェア) Blenderでは、SVGファイルをインポートし、それらを曲線オブジェクトとして操作できます。これは、3Dビューポートに表示されるインポートされたグラフィックです。(デフォルトでは、マテリアルはシーンのライトの影響を受けます。マテリアルプロパティパネルでシェードレスプロパティをチェックすると、シェイプを元の色でレンダリングできます。) 以下は、Blender内のSVGで作成されたレンダリングです。 三角形の間に隙間はありません。他の3Dソフトウェアも同じように機能する可能性が非常に高いです。BlenderはIllustratorのように動作しますか?多分それは逆ですか? 本当の質問 Illustratorはバックグラウンドでどのベクター描画ライブラリを使用しますか? Illustratorが一種の3Dレンダリングエンジンを使用する可能性はありますか?オープンソースですか?(おそらくない?) CairoやSkiaなどのよく知られているベクトル描画ライブラリは、同じレンダリング動作を実現できますか?(形状間に隙間がない) 同じ動作をするあまり知られていないベクトル描画ライブラリはありますか?

2
レイトレーサーのサブピクセルレンダリング
フォントレンダリングでは、サブピクセルレンダリングを使用するのが一般的です。ここでの基本的な考え方は、ピクセルをRGBコンポーネントに分割し、それぞれの値を個別に計算することです。各コンポーネントはピクセル全体よりも小さいため、高品質のアンチエイリアスが可能です。 レイトレーサーに対して同じことを行う、明らかに類似した方法があります。各サブチャネルで再構成フィルタリングを個別に行います。 しかし、これを行うレイトレーサーへの参照を見つけることができなかったことに驚きました。特に、すでにスペクトルレンダリングを行っている場合、これは明らかなことのように思えます。私が聞いたことのない雑誌のこの論文は、関連しているようです。しかし、全体的に、サブピクセルレンダリングは一般的なことではないようです。私の質問:なぜですか?


3
レイトレーシングでアンチエイリアシングはどのように実装されていますか?
オンラインでいくつかの記事を読んだ後、レイトレーシングでアンチエイリアシングがどのように機能するかについて私は自信がないと自信を持って言えます。 私が理解しているのは、単一のピクセル/光線が1ではなく4つのサブピクセルと4つの光線に分割されていることです。 誰かがこれがどのように行われるのかを説明できますか?

2
ピクセル内で複数のランダムサンプルを使用するアンチエイリアシングの基本的な理由は何ですか?
グラフィックスでは、ピクセルの境界内で複数のサンプルを取得し、それらを組み合わせて(一般的には単に平均化して)最終サンプルピクセルカラーにするのが一般的です。これには、画像のアンチエイリアシングの効果があります。 あなたが効果的にやっているのは、ピクセルが表す領域にピクセルの色を統合しているからです。この考え方では、モンテカルロ統合を行うには、「ランダムな」サンプルを平均化することが理想的な設定のようです。(「ランダム」は成層化、ブルーノイズベース、低不一致シーケンスなど) 一方、これは、デジタル信号処理の観点からは間違っている(または、少なくとも可能な限り正確ではない)と感じています。その観点から、多くのサンプルを取得し、ボックスフィルター(ボックスブラー)を使用してダウンサンプリングし、最終的なピクセル値を取得しているように感じます。その観点から、サンプルを平均化するのではなく、sincフィルターを使用することが理想的なようです。ボックスフィルターは、これらの線に沿ったsincの考え方に対するより安価な近似であることがわかりました。 これにより、少し混乱します。ピクセル領域を統合し、平均化が正しいというコアアイデアはありますか?または、ダウンサンプリングしてsincを使用する必要がありますが、高速なのでボックスフィルターを使用していますか? それともまったく別のものですか? 少し関連:レイトレーシングのアンチエイリアシング/フィルタリング


2
サブピクセルアンチエイリアスルール
最近、テキストのサブピクセルアンチエイリアシングに問題がありました。これは非常に粗い色を生成し、それがどのように適切に行われるのかを不思議に思いました。 下のピクセルの3分の3を覆う黒いタイルの例をいくつか示しました。 色は私が見ているものと一致しますが、適切にアンチエイリアス処理されたテキストを見ると、結果はそれほど明るくなく、気を散らすものではありません。 良い光の強さと正しい色のバランスが必要だと思います。このような良い結果をもたらすサブピクセルアンチエイリアスにはどのような方法が使用されますか? 更新: 幅が3倍でマルチサンプリングの画像に白いティーポットをレンダリングしました。以下では、3つのピクセルごとの平均と、それぞれをRGBに割り当てることを比較しています。一部のケースでは色がまだ過度に明るいように見えます(特に、ここの上記の例と比較すると)。私の電話がそれらをうまく捉えているわけではありません。 よし、私のモニターには少しダスティングが必要だ

1
重複する分析曲線のカバレッジを正確に計算するにはどうすればよいですか?
2D形状のアンチエイリアスは、形状によって覆われているピクセルの割合を計算することになります。単純な重なり合わない形状の場合、これはそれほど難しくありません。形状をピクセルの長方形に対してクリップし、結果の形状の面積を計算します。ただし、複数の形状が同じピクセルに重なると、さらに難しくなります。単純に面積を合計すると、ある形状が別の形状を覆う量を無視すると、計算されたカバレッジが高すぎる可能性があります。たとえば、フォントレンダリングに関するこの記事の「制限」セクションを参照してください。また、2つの曲線が異なる色の異なるオブジェクトからのものである場合もあります(そのため、2つの形状の和集合の総カバレッジではなく、それぞれのカバレッジのカバレッジは異なります)。 完全な精度を気にかけている場合、これはどのように計算されますか?さらにトリッキーですが、曲線などの非多角形の重なり合う部分のカバレッジをどのように正確に計算しますか マルチサンプリングまたは確率論的手法に頼らざるを得ない場合がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.