向量的点乘是入门图形学的重要基础,本身并不复杂,但因为总与叉乘(图形学前期用不着)放在一起讲,搞得新手都很混乱,本文单独讲解一些点乘的图形学意义,新手先忘掉叉乘吧。
1.向量
向量即空间中的一个点到另一个点。
2.向量点乘
向量点乘通常用来描述一个向量在另一个向量的投影分量。
如上图的映射结果即为点乘结果,因此:
当两个方向向量相等时点乘结果为1
当两个方向向量垂直时点乘结果为0
当两个方向向量相反时点乘结果为-1
3.图形学基础常用的点乘
NDotL
法线方向点乘光入射方向L,通常用来计算基础光照结果
如下图,使用NDotL可以直接得到模型顶点的法线方向与光线方向的结果,越接近1的地方越亮,等于0的地方则不发光,小于0的地方则为暗部。如此即为最基础的“兰伯特光照模型”。
NDotV
法线方向点乘视角方向V,通常用来计算模型边缘实现菲涅尔边缘光效果
其实与NDotV原理差不多,相机的视角方向与N法线方向点乘结果越小,说明该顶点与视角方向越垂直,则中间越亮边缘越暗,然后按照取值再做一下换算即可获得边缘光效果。
RDotV
Phong高光算法:光线出射角的向量R与视角方向V点乘来获取物体的高光值
R是L基于N的镜像反向量(镜面反射),Phong是最早的物体高光算法
NDotH
法线方向点乘光入射方向L和视角方向V的中间向量,BlinnPhong高光分布,用于简化Phong高光算法
将上述Phong取镜像反向量变成了L+V,简化了计算过程提升了效率,顺带解决了一些Phong算法本身存在的问题参考。
本文深入浅出地介绍了向量点乘这一图形学基础概念,包括其几何意义、公式以及在光照计算中的应用。通过实例解析了NDotL、NDotV、RDotV和NDotH等点乘运算在基础光照模型、菲涅尔边缘光效果和高光算法中的作用,帮助新手理解向量点乘在图形学中的重要性。
2077

被折叠的 条评论
为什么被折叠?



