日々適当

hibitekitou

アンチエイリアシング

xsi |2006-07-29
3DCGをやっていると避けては通れないエイリアシングの問題。
おのずとアンチエイリアシングをかますことになるわけですが、あまりまじめにお勉強せずにおりまして、作業時には、以前いた会社で「とにかくこの値にしておけ」といわれていた値を現在もそのまま適用しておりました。

曰く「サンプルの最小値を1に、最大値を3に」です。

ところがこの値だと計算時間がどうしてもかかってしまうので、多くの仕事で現在は最小値を0、最大値を2としています(それでどうしても駄目なときにはさらに数値を上げていた)。

しかし、現在やっている仕事が時間的にかなりシビアであり、サンプル値を上げることでクオリティーアップを図る方法ではどうしても時間が足りなくなりそうな予感があるために、ちょっとまじめに検証してみた次第。

MentalRayのエイリアシングに関するパラメータは、SamplingのMin LevelとMax Level、Threshold、Sample Jitter、Filtering となります。このうち、僕はほとんどMin/Max Level しかいじっていなかったのですよ(駄目駄目ですな)。

んで、それぞれの値をいじってみた結果を以下に示します。

検証結果


一番上は普段の僕自身のデフォルト設定。
それ以下は、Min/Max Levelを変化させたものと、Thresholdを変化させたものです。右側には画像の一部領域をPhotoshopで200%に拡大した画像を掲載してあります。Filteringの変化は今回の場合、結果に大きな差が生まれないので割愛しました。

見て分かるように、デフォルト設定では黒くて細いラインが走っているものの、飛び飛びに表示されてしまっています。そしてそれは、Min/Max Levelをあげてもあまり効率的に解消されていないどころか、Min Levelを上昇させることで、無駄に計算時間が延びていることが見て取れます。

一方この場合、Thresholdを小さくする方向に持っていくのが有効であることが分かるかと思います。値を0.1に下げることでクオリティは確実に向上している一方、レンダリング時間には大きな影響を与えていません。今回は、これぐらいのパラメータ設定でいけそうです。

ちなみに、Thresholdの値を例えば1とかにすると、きれいに階段状になったエイリアシングを確認することが出来ますよ。
コメント ( 0 )|Trackback ( )
  ・