|
|
发表于 2005-6-30 18:07:00
|
显示全部楼层
Re:已知一个三角形的顶点,怎么写它的法线
法线主要用来计算光照,如果不做光照的话,也可以不用.
一般都取方向与三角形所在平面的法线相同,模为一的矢量.
设三角形的三个点为O,P,Q,则可以取三个法线都为normalize(+cross(O-P,O-Q)),或normalize(-cross(O-P,O-Q)),其中:"-"(减号)得到边的方向;"cross"为叉乘,求两边的公垂线;"normalize"为归一化,可以不要;至于cross前的正负,就看你需要哪一面作为主要的可视面(根据左手定则判断cross后的结果的方向).
normalize,cross,"-"(op_subtraction)是Microsoft.DirectX namespace下Vector3 Structure中的method.
另外如果某一个顶点为n个三角形所公共,则最好的做法是:将这n个三角形所在面的法线作和然后normalize作为这个定点的法线.
当然主要还是看具体要什么效果. |
|