每一个面都有自己的法线,在3D游戏中一个三角形代表一个面。法线通常可以用来进行光照计算,用来确定光照的强度如图:
上图有一个三角形,normal vector是他的法线,可以通过他的三个点求出两条边,两条边再叉乘来获得,这里就不展开讲。
那么顶点法线是什么呢?再看下图:
简单地说顶点法线就是把共享该顶点的几个面的法线想加,然后除以面的数量,得到的平均值法线,这就是顶点法线。比如:
上图中s1,s2是两个面,ns1,ns2是这两个面的法线,s1,s2共享同一个顶点,那么这个顶点法线nv = (ns1+ns2)/2;
顶点法线在光照计算中和面法线效果完全不同,顶点法线计算的是顶点的光照强度,比如第一个顶点光照强度是10,第二个顶点光照强度是1,那么这两个顶点正中间的光照强度是(10-1)*0.5 = 4.5,由此可见顶点光照强度在整个面上是均匀过度的.而如果直接使用面法线计算光照,整个面都是用的同一个法线,所以整个面的光照强度是一样的。如下图:
同样的一个圆桶,因为使用了不同的法线所以效果不同。
欢迎关注游戏开发者微信公众号
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明,否则将追究法律责任。https://blog.kokojia.com/game/b-56.html