2017-05-16 16:49

 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明,否则将追究法律责任。https://blog.kokojia.com/game/b-56.html

每一个面都有自己的法线,在3D游戏中一个三角形代表一个面。法线通常可以用来进行光照计算,用来确定光照的强度如图:

1494923249385361.png

上图有一个三角形,normal vector是他的法线,可以通过他的三个点求出两条边,两条边再叉乘来获得,这里就不展开讲。

那么顶点法线是什么呢?再看下图:


1494923576756629.png

简单地说顶点法线就是把共享该顶点的几个面的法线想加,然后除以面的数量,得到的平均值法线,这就是顶点法线。比如:

1494923698804771.png

上图中s1,s2是两个面,ns1,ns2是这两个面的法线,s1,s2共享同一个顶点,那么这个顶点法线nv = (ns1+ns2)/2;

顶点法线在光照计算中和面法线效果完全不同,顶点法线计算的是顶点的光照强度,比如第一个顶点光照强度是10,第二个顶点光照强度是1,那么这两个顶点正中间的光照强度是(10-1)*0.5 = 4.5,由此可见顶点光照强度在整个面上是均匀过度的.而如果直接使用面法线计算光照,整个面都是用的同一个法线,所以整个面的光照强度是一样的。如下图:

同样的一个圆桶,因为使用了不同的法线所以效果不同。


欢迎关注游戏开发者微信公众号1496659132756632.png

 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明,否则将追究法律责任。https://blog.kokojia.com/game/b-56.html

评论