元記事:Shadow buffer- Halfway average



ハーフウェイシャドウバッファ


(Halfway average: 中間平均)



Classical シャドウバッファ、Bias 1.0

Classical シャドウバッファ、Bias 1.0。足の下の影がないことに注意


Classical シャドウバッファ、Bias 0.2

Classical シャドウバッファ、Bias 0.2。いたるところにバイアスが発生し、はっきりとした粒状年輪パターンが見られる


Halfway シャドウバッファ、Bias 1.0

Halfway シャドウバッファ、Bias 1.0。デフォルト値で良好な動作


Halfway シャドウバッファ、Bias 0.001

Halfway シャドウバッファ、Bias 0.001。非常に小さい値でもバイアスの問題が最小に押さえられている(足の上側、耳の内部、口、手首、指、肩)。

標準のシャドウバッファ(現在、"Classical" と呼ばれているもの)は、"Bias" 値を慎重に設定することが要求されます。この Bias は影の計算におけるオフセット値で、Face が自分自身へ投影(セルフシャドウ)するのを防ぎます。
このセルフシャドウのエラーは、シャドウバッファが相対的に小さい(もしくは遠い)場合、(Z値が一つのみの)シャドウバッファの1ピクセルが、レンダリング時に大きな領域にかかってしまうため、非常に顕著になります。

とはいえ、大きな Bias 値では正確さが失われるという欠点があり、短い距離の Face 間では投影されなくなります。横の画像をクリックし、ブラウザの戻ると進むを使用して違いを見比べてみて下さい。

このエラーを解決すると判明している方法が、シャドウバッファを二つの値、一番近い Z 値と二番目に近い Z 値を使用してレンダリングすることです。最終的には、これら二つの Z 値が平均され、効率よくバイアスエラーが取り除かれます。本当に極端なケースでのみ、Bias の調整が必要になるでしょう。

しかし、この方法は3D シーンに重なっている Face がない時のみ、うまく動作します。重なっている場合、「二番目に近い Z 値」が一番近い Z 値と同じになってしまい、バイアスが再び起こります。

この理由と後方互換性のため、"Shadow and Spot" パネルに、新しいオプションとして、"Classic-Halfway" がバッファタイプとして選択できるようになりました。非常にいい結果が得られるため、現在のデフォルトになっています。

また、"Halo Step" オプションがこの方法では、正しく動作しない場合があろことを付け加えておきます。特に(厚みのない)Plane を使用している場合、中間のZ値を使用するため、エラーを目にすることになるでしょう。




Last update: Oct 15 2006.
This section is maintained by Ton Roosendaal.


元記事:Shadow buffer- Halfway average