D3DXMATRIX view_matrix; D3DXVECTOR3 pos(0.0f, 3.0f, 0.0f);
D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);
D3DXVECTOR3 up(0.0f, 1.0f, 0.0f); D3DXMatrixLookAtLH(&view_matrix, &pos, &target, &up);灯光 D3DLIGHT9 dir_light;
ZeroMemory(&dir_light, sizeof(dir_light)); dir_light.Type = D3DLIGHT_DIRECTIONAL;
dir_light.Diffuse = WHITE;
dir_light.Specular = WHITE * 0.3f;
dir_light.Ambient = WHITE * 0.3f;
dir_light.Direction = D3DXVECTOR3(0.0f, 1.0f, 0.0f); //1 和 -1 都看不见为什么设置 视矩阵时 为什么 如果摄像机 放在 y轴上 什么也看不见呢
D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);
D3DXVECTOR3 up(0.0f, 1.0f, 0.0f); D3DXMatrixLookAtLH(&view_matrix, &pos, &target, &up);灯光 D3DLIGHT9 dir_light;
ZeroMemory(&dir_light, sizeof(dir_light)); dir_light.Type = D3DLIGHT_DIRECTIONAL;
dir_light.Diffuse = WHITE;
dir_light.Specular = WHITE * 0.3f;
dir_light.Ambient = WHITE * 0.3f;
dir_light.Direction = D3DXVECTOR3(0.0f, 1.0f, 0.0f); //1 和 -1 都看不见为什么设置 视矩阵时 为什么 如果摄像机 放在 y轴上 什么也看不见呢
xaxis = normal(cross(Up, zaxis))
yaxis = cross(zaxis, xaxis)
xaxis.x yaxis.x zaxis.x 0
xaxis.y yaxis.y zaxis.y 0
xaxis.z yaxis.z zaxis.z 0
-dot(xaxis, eye) -dot(yaxis, eye) -dot(zaxis, eye) l
pos 与 up 同一方向,其实就是一个。D3DXMatrixLookAtLH 要求三个向量正交.
xaxis = normal(cross(Up, zaxis))运算后,xaxis ={0,0,0} yaxis ={0,0,0} ,矩阵非法