« ◇差をつけられます;公的機関はラ抜きを使うべき | トップページ | ♪■柔らかメトロノームJAVA&Applet版 »

◆酔歩サンプリングでジャギー追放

CGのレンダリングではジャギーが多く出ることがあります。
これを回避する極めて単純かつ簡単な手法の提案です。

次の2枚の画は同じCGモデルで角度が若干異なるものです。 大きな棒状の構造の横に細いケーブルが走っています。

写真-1

写真-2

写真-1では細かな点の並びとなっているケーブルが、写真-2 では途切れ途切れの線となっています。写真-1は遠目には 不自然さが少なく、単純なフィルタを用いて滑らかにする ことができますが、写真-2は遠目にも不自然であり、 線が大きな単位で途切れ途切れとなっているため、 単純には滑らかな線を得ることは出来ません。(アンチエイリアス フィルタではこういう低域にでる強いノイズをとることは できません)
この大きな単位での途切れ途切れとなる原因は、 出力画素より細かな図形が、出力のサンプリングと 干渉することにあります。

次の概念図は画素の約1/3の幅の線が斜めに走っているとして 画素中心でサンプリングしたものです。

図1-1

図1-2

図1-2では線が大きな単位で途切れ途切れとなることが分かります。

次の概念図は、図1-1、図1-2と同じデータ同じ画素構成で、 サンプリングを画素内でランダムに行う形にしたものです。
大きな塊が出ずほぼ一定の割合で線のデータが出ていることが 分かります。
細かな乱れがあるようにも見えますが、本来の画素を踏み外す 訳ではありません。遠目で見て一定の割合であることが 重要なのです。

図2-1

図2-2

これは、大きな塊、即ち低域のノイズを、細かな乱れ、即ち 高域のノイズに押しやっているのです。
高域のノイズは遠目には目立たず、また単純なフィルタにより 平滑化できます。

この「画素内ランダムサンプリング」は現行のプログラムに容易に 導入することができます。
プログラム上、場合によってはわずか数行の修正で済む可能性もあります。

### 補足
酔歩とはいっても、小さな折り返し空間で、かつ一歩が空間のサイズを 超えているものです。(単にランダムに点を選ぶと言った方が素直ですね; まあ、そこは「万象酔歩」の記事ということで)

###
例えばShadeのレイトレーシングなどには直ぐに導入可能なはずです。 局所的な修正のみですので、Shade10で行った修正のようにバグだらけに してしまう心配はありません。

|

« ◇差をつけられます;公的機関はラ抜きを使うべき | トップページ | ♪■柔らかメトロノームJAVA&Applet版 »

トラックバック


この記事へのトラックバック一覧です: ◆酔歩サンプリングでジャギー追放:

« ◇差をつけられます;公的機関はラ抜きを使うべき | トップページ | ♪■柔らかメトロノームJAVA&Applet版 »