次の方法で共有


D3DXFresnelTerm

フレネル項を計算します。

FLOAT 
D3DXFresnelTerm(
  FLOAT CosTheta,
  FLOAT RefractionIndex
);

パラメータ

  • CosTheta
    0 ~ 1 の範囲で指定します。
  • RefractionIndex
    マテリアルの屈折率。この値には、0 より大きい値を使用します。

戻り値

この関数は、偏光されていないライトのフレネル項を返します。CosTheta は、入射角のコサインです。

解説 

フレネル項 (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 内容