DirectX11 法线向量

法线向量 1. 平面向量与表面向量的区别 平面法线(face normal)是描述多边形所朝方向的单位向量(即,它与多边形上的所有点相互垂直),如下图a所示。表面法线(surface normal)是与物体表面上的点的正切平面(tangent plane)相互垂直的单位向量,如下图b所示。表面法线确定了表面上的点“面对”的方向。当进行光照计算时,我们必须为三角形网格表面上的每个点求解表面法线,以
摘要由CSDN通过智能技术生成

法线向量
1. 平面向量与表面向量的区别
平面法线(face normal)是描述多边形所朝方向的单位向量(即,它与多边形上的所有点相互垂直),如下图a所示。表面法线(surface normal)是与物体表面上的点的正切平面(tangent plane)相互垂直的单位向量,如下图b所示。表面法线确定了表面上的点“面对”的方向。

这里写图片描述

当进行光照计算时,我们必须为三角形网格表面上的每个点求解表面法线,以确定光线与网格表面在该点位置上的入射角度。为了获得表面法线,我们必须为每个顶点指定表面法线(这些法线称为顶点法线)。然后在光栅化阶段,这些顶点法线会在三角形表面上进行线性插值,使三角形表面上的每个点都获得一个表面法线。
这里写图片描述
(p0和p1是线段的两个顶点,n0和n1是对应的顶点法线。点p是通过线性插值(加权平均值)得到的线段上的一点,n是点p的法线向量,它介于两个顶点法线之间。也就是,当存在一个位置使p =p0 + t (p1 –p0 ) 时,n =n0 + t(n1 –n0)。为了简单起见,我们只解释了线段的法线插值,但是这一概念可以被直接扩展为3D三角形的法线插值。)

注意:对每个像素的法线进行插值,并进行光照计算称为逐像素光照或phong光照。还有一种负担较轻,但不够精确的方法是对每个顶点进行光照运算,称为逐顶点光照,计算结果是从顶点着色器中输出的,在像素着色器中进行插值。将计算从像素着色器转移到顶点着色器是一种常见的性能优化措施,而且在很多情况下的视觉表现与逐像素光照差别不大。

2. 如何计算平面法线向量和表面法向向量?
为了求解一个三角形Δp0p1p2的平面法线,我们必须先计算该三角形边上的两个向量:

u = p1− p0

v = p2− p0

然后求得平面法线为:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值