出现这个问题的原因就是,我们使用Phong的时候,视线和反射光线的夹角值一旦大于90度,这种情况下就会出现负值,认为是一种反射失效状态,镜面的贡献成分就会变成0。因此blinn-phong的出现就是为了解决这问题。 Blinn-Phong采用放弃反射向量的方式,解决了上面Phong遇到的问题。它采用了一种叫做半程向量的向量(单位向量),它在视线方向和
blinn - phong原理:①Blinn - Phong光照模型是在传统Phong光照模型基础上改进而来的一种用于计算机图形学中模拟物体表面光照效果的模型。它主要用于计算物体表面某一点的颜色值,综合考虑了环境光、漫反射光和镜面反射光这三种主要的光照成分。②先说说环境光。环境光可以理解为在场景中均匀分布的一种基础光照。就好像...
Blinn在冯氏着色模型上加以拓展,引入了Blinn-Phong着色模型。Blinn-Phong模型与冯氏模型非常相似,但是它对镜面光模型的处理上有一些不同,让我们能够解决之前提到的问题。Blinn-Phong模型不再依赖于反射向量,而是采用了所谓的半程向量(Halfway Vector),即光线与视线夹角一半方向上的一个单位向量。当半程向量与法线向量越...
参考漫反射,我们可以通过镜面反射向量与观察向量之间的夹角来计算物体的高光,Phong 反射模型就是这样计算的。 Blinn 就在这里提出了计算高光的优化,他提出了半角向量,通过半角向量我们可以很轻松的计算物体的高光。这就是为什么称作 Blinn-Phong 反射模型。 半角向量等于光线向量加上观察向量。 通过半角向量与法线的夹角...
Phong和Blinn-Phong是计算镜面反射光的两种光照模型,两者仅仅有很小的不同之处。 1.Phong模型 Phone模型计算中的一个关键步骤就是反射向量R的计算: 上图中的位于表面“下面”的向量‘I’是原始‘I’向量的拷贝,并且二者是一样的,现在我们的目标计算出向量‘R’。根据向量相加原则,向量‘R’等于'I' + 'V',...
Blinnphong支持光透射功能 从LayaAir2.11 beta版本开始,Blinnphong材质支持了光线透射功能,也就是当光线射入半透明材质,会产生光线透射的效果。例如下图的效果: (来自官网BlinnPhong_Transmission示例截图) 或者查看视频动态效果: (视频画质已被压缩,仅用于效果预览) ...
1.Phong模型 R = 2*N(dot(N, L)) - L specular = lightColor * SpecularColor*(max(V· R, 0)) ^shininess; 2.Blinn-Phong模型 引入了H,Blinn模型不仅在速度上更快,而且更符合实际。 H = normalize(L+V) specular = lightColor * SpecularColor*(max(N· H, 0)) ^shininess; ...
入门Shading,BlinnPhong和Phong光照模型详解如下:一、着色简介 着色是计算机图形学中的关键过程,用于赋予物体表面及特定区域色彩,并控制其明暗效果。通过着色,可以为物体施加特定的“材质”,使每个表面点都有独特的表现,从而模拟出各种材质和明暗效果。二、BlinnPhong光照模型 定义:BlinnPhong反射光模型是...
Blinn-Phong反射模型 前言 在这一章中,实现光线与对象表面之间的相互作用。目的是在渲染流水线中增加着色功能,所以这里只讨论最基础的局部光照模型。与全局光照不同,在局部光照模型中,着色点的颜色值只取决于着色点表面的材质属性、表面的局部几何性质以及光源的位置与属性,而与场景中其他的表面无关。
Blinn-Phong光照引入了一个概念,半角向量,用H表示. 它在视线方向和光线方向的中间 H 半角向量 怎么获取半角向量,使用视角 + 光照方向 real3 ViewDir=normalize(i.viewDirWS);//归一化视角方向real3 NormalDir=normalize(i.normalWS);real3 LightDir=normalize(mylight.direction);//获取光照方向real3 halfDir=...