次の方法で共有


D3DXFresnelTerm 関数

D3DXFresnelTerm 関数

フレネル項を計算する。

構文

FLOAT D3DXFresnelTerm(      
    FLOAT CosTheta,
    FLOAT RefractionIndex
);

パラメータ

  • CosTheta
    [in] この値は 0 から 1 の範囲になければならない。
  • RefractionIndex
    [in] マテリアルの屈折インデックス。1 より大きい値でなければならない。

戻り値

注意

フレネル項 (F) を求めるには :

A が入射角で B が反射角の場合、次の計算を行う。

F = 0.5 * [tan2(A - B) / tan2(A + B) + sin2(A - B) / sin2(A + B)]
  = 0.5 * sin2(A - B) / sin2(A + B) * [cos2(A + B) / cos2(A - B) + 1]

Let r   = sina(A) / sin(B)      (the relative refractive index)
Let c   = cos(A)
Let g   = (r2 + c2 - 1)1/2

次に、三角関数を使って展開して簡易化することによって、次の結果を得る。

F = 0.5 * (g + c)2 / (g - c)2 * ([c(g + c) - 1]2 / [c(g - c) + 1]2 + 1)

関数の情報

ヘッダー d3dx9math.h
インポート ライブラリ d3dx9.lib
最低限のオペレーティング システム Windows 98