共用方式為


XMVector2Refract 函式 (directxmath.h)

將事件 2D 向量折迭到 2D 標準向量。

語法

XMVECTOR XM_CALLCONV XMVector2Refract(
  [in] FXMVECTOR Incident,
  [in] FXMVECTOR Normal,
  [in] float     RefractionIndex
) noexcept;

參數

[in] Incident

要 refract 的 2D 事件向量。

[in] Normal

2D 一般向量,可重新參考事件向量。

[in] RefractionIndex

refraction 的索引。 請參閱<備註>。

傳回值

傳回 refracted 事件向量。 如果事件向量與一般之間的 refraction 索引和角度是總內部反映,則函式會傳回格式 < 為 0.0f、0.0f、undefined、undefined > 的向量。

備註

下列虛擬程式碼示範函式的作業:

XMVECTOR Result;

float t = (Incident.x * Normal.x + Incident.y * Normal.y); // dot(Incident, Normal);
float r = 1.0f - RefractionIndex * RefractionIndex * (1.0f - t * t);

if (r < 0.0f) // Total internal reflection
{
	Result.x = 0.0f;
	Result.y = 0.0f;
}
else
{
	float s = RefractionIndex * t + sqrt(r);
	Result.x = RefractionIndex * Incident.x - s * Normal.x;
	Result.y = RefractionIndex * Incident.y - s * Normal.y;
}

Result.z = undefined;
Result.w = undefined;

return Result;

refraction 的索引是包含事件向量之媒體的 refraction 索引與進入之媒體的 refraction 索引 (,其中媒體的 refraction 索引本身是資料清理中光線速度與中光) 速度的比例。

平臺需求

Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 搭配 Windows SDK for Windows 8。 支援 Win32 傳統型應用程式、Windows 市集應用程式和 Windows Phone 8 個應用程式。

需求

   
目標平台 Windows
標頭 directxmath.h (包含 DirectXMath.h)

另請參閱

DirectXMath 程式庫 2D 向量幾何函式

XMVector2RefractV