D3DXMatrixShadow创建一个平面的阴影矩阵

来源:互联网 发布:js模块化开发 cmd 编辑:程序博客网 时间:2024/05/20 00:12
http://blog.csdn.net/sck5711/article/details/4036321

定义:

D3DXMATRIX *WINAPI D3DXMatrixShadow(          D3DXMATRIX *pOut,
    CONST D3DXVECTOR4 *pLight,
    CONST D3DXPLANE *pPlane
);

参数:

pOut

[in, out] 指向D3DXMATRIX 结构的操作结果矩阵。 

pLight

[in] 指向D3DXVECTOR4 结构的光线位置向量。

pPlane

[in] 指向D3DXPLANE 结构的平面方程。

返回值:

指向D3DXMATRIX 结构的矩阵,它是用来把几何在平面阴影变换矩阵。

说明:

如果从光线照射几何物体有阴影,就可以用函数D3DXMatrixShadow 计算阴影变换矩阵。

函数返回值跟pOut 参数返回值是一样的。这样可以让函数D3DXMatrixShadow作为其它函数的参数使用。

用下面的方法计算这个矩阵:

P = normalize(Plane);
L = Light;
d = dot(P, L)
P.a * L.x + d  P.a * L.y      P.a * L.z      P.a * L.w  
P.b * L.x      P.b * L.y + d  P.b * L.z      P.b * L.w  
P.c * L.x      P.c * L.y      P.c * L.z + d  P.c * L.w  
P.d * L.x      P.d * L.y      P.d * L.z      P.d * L.w + d
如果光线的W分量是0,表示从原点发出的方向光。如果W分量是1,表示它是一个点光源。

函数信息:

Header

d3dx9math.h

Import library

d3dx9.lib

Minimum operating systems

Windows 98