(简洁)面法线与顶点法线
原文链接: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
(简洁)面法线与顶点法线相关推荐
- Unity中计算面法线与顶点法线
1.什么是法线 法线:是指始终垂直于某平面的直线.在几何学中,法线指平面上垂直于曲线在某点的切线的一条线. 2.面法线与顶点法线 在 Max Wagner 的 <Generating Verte ...
- Face Normals Vertex Normals(面法线跟顶点法线的区别)
What is a face normal? A face normal is a vector that describesthe direction a polygon is facing(see ...
- unreal 顶点法线与 面法线
当前revit 建筑模型软件导出的模型对象 three.js的json文件,都是面法线.(暂时是这样的,是否能导出顶点法线,后续确定,7-9 确定js文件可以标记顶点法线和面法线,同时revit可以通 ...
- Python模型顶点法线修复
Python模型顶点法线修复 参考: https://zhuanlan.zhihu.com/p/52297977
- 顶点法线计算的几种方式
首先,顶点法线都是从面法线加权平均计算得到.所以有两个维度,一是哪些面参与计算,二是权重如何计算. 一 哪些面参与计算 如果建模工具导出了光滑组,那么方案一是直接使用光滑组信息,属于同一个光滑组的面参 ...
- MAYAPlugin_Mel_顶点法线批处理_V2
学习目标: 优化之前的顶点法线批处理插件 学习内容: 1. 删除精简不必要的功能(筛选面,软化面) 2. 算法优化(增加运行效率) 3. 增加代码可读性 学习时间: 2天 学习产出: Adia_ver ...
- Unity 模型顶点法线不统一————使用Blender修改顶点法线
遇到的问题:使用Blender创建的模型,顶点法线都是默认的,或者说顶点法线是基于自身三角形(矩形)的.这就导致同一个空间位置上的一个(在图形学引擎中被视为多个)顶点拥有若干个不同的法线向量.当你使用 ...
- Revit的顶点法线及threejs渲染圆弧面的渐变亮度
本文主要用于分享基于Revit的法线理论,导出模型后让threejs呈现立体真实的效果.Revit的顶点法线及threejs渲染圆弧面的渐变亮度. 法线有什么用的?没有法线能否成模型?可以的,没有法线 ...
- FX粒子(Niagara系统)、顶点法线材质函数、材质参数集——雪和简单地形材质积雪效果
雪 一.利用FX--Niagara系统创建粒子,模板选择 喷泉粒子模板 二.删除不需要的模块 球体位置发射.初始的向上速度.拖拽等和雪无关的模块删除. 三.添加需要的模块并设置 需要大范围降 ...
最新文章
- asp.net mvc5 设置Area下的为启动页
- 【Android 高性能音频】AAudio 音频流 数据回调细节 ( 数据回调函数优先级 | 数据回调函数 | 采样率 | 采样数 | 缓冲区调整 | 线程不安全 )
- Linux文件系统的隐藏权限:chattr lsattr(journal)
- 【MM模块】Procurement for Stock Material 库存型物料采购相关
- 【JAVA 第四章 流程控制语句】课后习题 判断两个圆是否相交 圆和直线的位置关系
- Hibernate3.x异常No row with the given identifier exists 解决方法
- 计算机二级矿大考点哪个校区,计算机二级考点哪个近一点555
- 2021年中国中级订单选择器(3至8+m)市场趋势报告、技术动态创新及2027年市场预测
- 字符串处理 - ANSI - Unicode - UTF8 转换
- elementui 表格格式化
- bzoj 3391: [Usaco2004 Dec]Tree Cutting网络破坏
- javax.naming.NameNotFoundException: QueueConnectionFactory not bound
- springboot缓存注解——@Cacheable和@CacheConfig
- 小程序自定义tabbar占位问题
- Visio2019安装
- HEVC(H.265)与AVC(H.264)的区别与联系
- steam无法连接至计算机,无法连接至steam网络怎么办 无法连接至steam网络解决方法【图文】...
- 算法、数据结构经典资料简介(TAOCP、Robert Sedgewick、算法导论、编程珠玑)
- 打开word时显示microsoft visual basic运行时错误没有注册类怎么解决?
- 将单元格中的内容拆分成多列/行
热门文章
- critic法计算_对于强化学习算法中的AC算法(Actor-Critic算法) 的一些理解
- JUC常用辅助类CountDownLatch、CyclicBarrier、Semaphore
- 红米6 红米6A怎么样刷入开发版启用ROOT权限
- 使用docker-compose启动springboot项目
- 马斯克自动驾驶雄心“翻车”了!
- 图片如何在线转文字?图片在线转文字方法分享
- 循序渐进之单点登录(4)--分布式系统认证(OAuth2,JWT)
- 腾讯收购康盛创想:站长的春天还是2012?
- 智能制造—2020佛山科大专项“校企合作研发项目”开始申报啦!
- 重生之我是赏金猎人(七)-看我如何从FUZZ到XSS在SRC官网偷走你的个人信息