SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

フォグの表示

フォグ効果を追加してみました.

POV-Rayのドキュメントを読んでみると,フォグの式は以下のようになっているようです.
C_pixel = exp(-d/D) * C_object + (1-exp(-d/D)) * C_fog
(dは交点までの距離. Dはフォグの減衰する度合い)
このようにすると,d=Dの位置では64%がトレース先の交点の色で、残り36%が霧の色となります。
これを参考に作ってみました.


で,このままだと遠くは完全にフォグの色になり,背景が見えなくなってしまいます.
そこで,density:濃度というパラメータを追加して,
C_result = C_Object*(1-density) + C_pixel*density
といういようにして,フォグの効果と本来のトレース先の色とを混ぜています.

density:0.5の場合