D3D中 如何判断三角形是在背面还是在正面
已知三角形3个顶点坐标,以及一个参考原点坐标
如何计算这个三角形相对于这个参考原点是在正面还是在背面?
bool ComputeNormal(D3DXVECTOR3 v1,D3DXVECTOR3 v2,D3DXVECTOR3 v3,D3DXVECTOR3 &result)
{
D3DXVECTOR3 u = v2 - v1;
D3DXVECTOR3 v = v3 - v1;
D3DXVec3Cross(&result, &u, &v);
D3DXVec3Normalize(&result, &result);
return true;
}
bool AnalysPlanePositiveOrnegative(D3DXVECTOR3 v1,D3DXVECTOR3 v2,D3DXVECTOR3 v3,D3DXVECTOR3 origin)
{
D3DXVECTOR3 Normal;
ComputeNormal(v1,v2,v3,Normal);
D3DXPLANE Plane;
Plane.a=Normal.x;
Plane.b=Normal.y;
Plane.c=Normal.z;
Plane.d=0.0f;
float fval;
fval=::D3DXPlaneDotCoord(&Plane,&origin);
if (fval<0.0f)
{
return false;
}
else
{
return true;
}
}
//'=============================以上是我的代码===========================
好像不行,求大侠帮我改一改 谢谢!