◆酔歩サンプリングでジャギー追放
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で行った修正のようにバグだらけに
してしまう心配はありません。
| 固定リンク