有关“顶点法线”的基础概念问题
今天在看Direct3D的书中,看到“顶点法线”的章节,我猜测“顶点法线”可能是指在某一个点的切面穿越该点并与该切面垂直的虚线。但我随之想到的一个问题是,那么立方体的8个顶角点的法线是什么线呢?
[解决办法]
可以计算出来的。
leechrockgames 同学给出的代码
- C/C++ code
//叉积建立第三条线//叉积(vPolygon:3角形的点)D3DXVECTOR3 vPolygon[3];//起始点vPolygon[0]=MapOb1[0].LHxx3DMVertex[2].LHxxMP;//第一条线的终点vPolygon[1]=MapOb1[0].LHxx3DMVertex[0].LHxxMP; //第一条线的终点vPolygon[2]=MapOb1[0].LHxx3DMVertex[3].LHxxMP;// Get 2 vectors from the polygon (2 sides), Remember the order!D3DXVECTOR3 vVector1 = vPolygon[2] - vPolygon[0];//第一条线向量D3DXVECTOR3 vVector2 = vPolygon[1] - vPolygon[0];//第二条线向量//计算出第3条,垂直线的向量(求出叉积)D3DXVECTOR3 vNormal;D3DXVec3Cross(&vNormal,&vVector1,&vVector2);//标准化(0-1)D3DXVec3Normalize(&vNormal,&vNormal);float range=50;//长度//设置第3条线的起始点//求得发线长度为50*百分比. //-D3DXVECTOR3(2.5,2.5,2.5):将终点偏移到左下角ViewLine10[3].LHxxLP=(vNormal*range)+MapOb1[0].LHxxMove-D3DXVECTOR3(2.5,2.5,2.5);