原文链接:https://blog.kokojia.com/game/b-56.html

每一个面都有自己的法线,在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

(简洁)面法线与顶点法线相关推荐

  1. Unity中计算面法线与顶点法线

    1.什么是法线 法线:是指始终垂直于某平面的直线.在几何学中,法线指平面上垂直于曲线在某点的切线的一条线. 2.面法线与顶点法线 在 Max Wagner 的 <Generating Verte ...

  2. Face Normals Vertex Normals(面法线跟顶点法线的区别)

    What is a face normal? A face normal is a vector that describesthe direction a polygon is facing(see ...

  3. unreal 顶点法线与 面法线

    当前revit 建筑模型软件导出的模型对象 three.js的json文件,都是面法线.(暂时是这样的,是否能导出顶点法线,后续确定,7-9 确定js文件可以标记顶点法线和面法线,同时revit可以通 ...

  4. Python模型顶点法线修复

    Python模型顶点法线修复 参考: https://zhuanlan.zhihu.com/p/52297977

  5. 顶点法线计算的几种方式

    首先,顶点法线都是从面法线加权平均计算得到.所以有两个维度,一是哪些面参与计算,二是权重如何计算. 一 哪些面参与计算 如果建模工具导出了光滑组,那么方案一是直接使用光滑组信息,属于同一个光滑组的面参 ...

  6. MAYAPlugin_Mel_顶点法线批处理_V2

    学习目标: 优化之前的顶点法线批处理插件 学习内容: 1. 删除精简不必要的功能(筛选面,软化面) 2. 算法优化(增加运行效率) 3. 增加代码可读性 学习时间: 2天 学习产出: Adia_ver ...

  7. Unity 模型顶点法线不统一————使用Blender修改顶点法线

    遇到的问题:使用Blender创建的模型,顶点法线都是默认的,或者说顶点法线是基于自身三角形(矩形)的.这就导致同一个空间位置上的一个(在图形学引擎中被视为多个)顶点拥有若干个不同的法线向量.当你使用 ...

  8. Revit的顶点法线及threejs渲染圆弧面的渐变亮度

    本文主要用于分享基于Revit的法线理论,导出模型后让threejs呈现立体真实的效果.Revit的顶点法线及threejs渲染圆弧面的渐变亮度. 法线有什么用的?没有法线能否成模型?可以的,没有法线 ...

  9. FX粒子(Niagara系统)、顶点法线材质函数、材质参数集——雪和简单地形材质积雪效果

    雪 一.利用FX--Niagara系统创建粒子,模板选择 喷泉粒子模板      二.删除不需要的模块 球体位置发射.初始的向上速度.拖拽等和雪无关的模块删除. 三.添加需要的模块并设置 需要大范围降 ...

最新文章

  1. asp.net mvc5 设置Area下的为启动页
  2. 【Android 高性能音频】AAudio 音频流 数据回调细节 ( 数据回调函数优先级 | 数据回调函数 | 采样率 | 采样数 | 缓冲区调整 | 线程不安全 )
  3. Linux文件系统的隐藏权限:chattr lsattr(journal)
  4. 【MM模块】Procurement for Stock Material 库存型物料采购相关
  5. 【JAVA 第四章 流程控制语句】课后习题 判断两个圆是否相交 圆和直线的位置关系
  6. Hibernate3.x异常No row with the given identifier exists 解决方法
  7. 计算机二级矿大考点哪个校区,计算机二级考点哪个近一点555
  8. 2021年中国中级订单选择器(3至8+m)市场趋势报告、技术动态创新及2027年市场预测
  9. 字符串处理 - ANSI - Unicode - UTF8 转换
  10. elementui 表格格式化
  11. bzoj 3391: [Usaco2004 Dec]Tree Cutting网络破坏
  12. javax.naming.NameNotFoundException: QueueConnectionFactory not bound
  13. springboot缓存注解——@Cacheable和@CacheConfig
  14. 小程序自定义tabbar占位问题
  15. Visio2019安装
  16. HEVC(H.265)与AVC(H.264)的区别与联系
  17. steam无法连接至计算机,无法连接至steam网络怎么办 无法连接至steam网络解决方法【图文】...
  18. 算法、数据结构经典资料简介(TAOCP、Robert Sedgewick、算法导论、编程珠玑)
  19. 打开word时显示microsoft visual basic运行时错误没有注册类怎么解决?
  20. 将单元格中的内容拆分成多列/行

热门文章

  1. critic法计算_对于强化学习算法中的AC算法(Actor-Critic算法) 的一些理解
  2. JUC常用辅助类CountDownLatch、CyclicBarrier、Semaphore
  3. 红米6 红米6A怎么样刷入开发版启用ROOT权限
  4. 使用docker-compose启动springboot项目
  5. 马斯克自动驾驶雄心“翻车”了!
  6. 图片如何在线转文字?图片在线转文字方法分享
  7. 循序渐进之单点登录(4)--分布式系统认证(OAuth2,JWT)
  8. 腾讯收购康盛创想:站长的春天还是2012?
  9. 智能制造—2020佛山科大专项“校企合作研发项目”开始申报啦!
  10. 重生之我是赏金猎人(七)-看我如何从FUZZ到XSS在SRC官网偷走你的个人信息