有关“顶点法线”的基础概念问题

zhoujiehg 2011-06-09 10:17:29
今天在看Direct3D的书中,看到“顶点法线”的章节,我猜测“顶点法线”可能是指在某一个点的切面穿越该点并与该切面垂直的虚线。但我随之想到的一个问题是,那么立方体的8个顶角点的法线是什么线呢?
...全文
178 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
donjin9 2011-06-10
  • 打赏
  • 举报
回复
法向量觉得应该是和面有关系,影响材质光照,一般与面垂直,像立方体顶点应该至少分成3个法向量。不知道有些光滑是不是也用到
Sou2012 2011-06-09
  • 打赏
  • 举报
回复
生成点法线(Generating Vertex Normals)
http://blog.csdn.net/wangpingfang/archive/2010/12/18/6084267.aspx
Sou2012 2011-06-09
  • 打赏
  • 举报
回复
可以计算出来的。

leechrockgames 同学给出的代码
//叉积建立第三条线
//叉积(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);

8,324

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧