首页 > 其他分享 >Blinn-Phong

Blinn-Phong

时间:2023-08-05 17:56:29浏览次数:41  
标签:Blinn 视线 Phong vec3 半程 向量

为什么出现Blinn-Phong

虽然Phong性能较高,但是在某些镜面反射条件下就会失效。比如下图,我们明显发现了一条明显的亮暗边界线,这在实际场景中是不应该发生的(实际场景中不会出现这种明显的过渡带)。
img

出现这个问题的原因就是,我们使用Phong的时候,视线和反射光线的夹角值一旦大于90度,这种情况下就会出现负值,认为是一种反射失效状态,镜面的贡献成分就会变成0。因此blinn-phong的出现就是为了解决这问题。
img1

Blinn-Phong采用放弃反射向量的方式,解决了上面Phong遇到的问题。它采用了一种叫做半程向量的向量(单位向量),它在视线方向和光线方向的中间。半程向量和表面法线向量越接近,镜面反射成份就越大。
img2

如何计算半程向量

将光的方向向量和视线向量相加,然后归一化。

vec3 lightDir = normalize(lightPos - FragPos); // 获取光线方向向量,用光线位置减去片段位置(也就是图片中视线和光线相交的那个图元)
vec3 viewDir = normalize(viewPos - FragPos);
vec3 halfwayDir = normalize(lightDir + viewDir);
// 镜面反射计算
float spec = pow(max(dot(mormal, halfwayDir), 0.0), shininess); //计算表面法线和半程向量的点乘,并对其结果进行约束(>=0)然后获取他们之间的角度余弦。
vec3 specular = lightColor * spec; // 与发光值参数进行计算

下图是发光指数为0.5时镜面区域的不同效果:
img3

Blinn-Phong优势

比Phong着色性能更高,且不用计算复杂的反射向量。因为它值依赖法线、视线向量和光线向量这三个值,而这三个值是已知的。

标签:Blinn,视线,Phong,vec3,半程,向量
From: https://www.cnblogs.com/peixu/p/17604611.html

相关文章

  • Three.js教程:高光网格材质Phong
    推荐:将NSDT场景编辑器加入你的3D工具链其他系列工具:NSDT简石数字孪生高光网格材质Phong高光网格材质MeshPhongMaterial和基础网格材质MeshBasicMaterial、漫反射网格材质MeshLambertMaterial一样都是网格模型的Mesh的材质。高光网格材质MeshPhongMaterial和漫反射网格材质Mesh......
  • BLINNET - Bytelandian Blingors Network
    传送门:BLINNET-BytelandianBlingorsNetwork通过读题,不难发现,把这些点连接起来的最小成本,岂不是最小生成树?现在先思考一下给出的城市名字需要如何处理?其实直接按照输入顺序标号就好了!跑一遍最小生成树即可,注意多测清空。处理最小生成树的策略是,把边按照成本从小到大排序,每......
  • DX12 实战 BlinnPhong & 纹理贴图
    前言本篇将展示如何实现BlinnPhong光照,以及为人物模型贴上纹理对于理论不清楚的小伙伴可以看这图形学理论局部光照,[图形学理论纹理贴图](https://www.cnblogs.com/chenglixue/p/17109214.html)具体代码看这github.com材质由于漫反射率和镜面反射率我们都是从纹理图中提取,因......
  • Unity Shader 实现 Lambert Phong BlinnPhong
    1.Lambert模型基于Lambert余弦定理构造出的模型,只计算了漫反射部分代码部分解析可以看到Lambert模型中只返回了漫反射(diffuse) 再看一下di......
  • 最简单的逐像素Blinn-Phong光照
    效果 知识点1)漫反射计算公式:a)兰伯特定律:反射光线的强度与表面法线和光线方向夹角的cos值成正比。b)Colorlight*Colordiffuse* 漫反射光线辐照度。光线辐......
  • Unity URP Shader之标准的BlinnPhong光照模型
    shader如下:1Shader"MyURP/Kerry/URPBlinnPhong"2{3Properties4{5_BaseMap("BaseMap",2D)="white"{}6_NormalMap(......
  • Phong光照模型速记
    Phong光照模型速记Phong是提高图像真实度的模拟光照模型,由环境光,漫反射光,镜面反射光。环境光,物体间反射形成的复杂反射光、环境本身就具有的光。该模型简化为一个环境光......