Phong 片元高光反射着色器和 Phong 顶点高光反射着色器都是基于 Phong 光照模型的着色器,可以模拟物体表面的漫反射、环境光和高光效果,使物体看起来更加真实和立体。Blinn-Phong 高光反射着色器是对 Phong 高光反射着色器的改进和简化,主要区别在于计算高光反射时使用了半向量(half vector)代替镜面反射向量(reflection v...
本文介绍了 Blinn-Phong 反射模型,3 种着色方式,并在 WebGL 中使用 3 种灯光进行渲染。最后介绍了将这个模型结合纹理只需稍微的修改就可以实现非常不错的效果。 了解了 Blinn-Phong 反射模型,对我们学习其他的 3D 库或建模软件的灯光也很有帮助,比如下面这一段 Three.js 代码。 const material = new THREE.Me...
1 前言 光照元素主要有环境光(ambient)、漫反射光(diffuse)、镜面反射光(specular),基础的光照模型主要有兰伯特(Lambert)光照模型、冯氏(Phong)光照模型和改进的冯氏(Blinn Phong)光照模型。 Lambert 光照模型只包含漫反射光的计算,Phong 光照模型和 Blinn Phong 光照模型都包含环境光、漫反射光、镜面反射光的计算,两...
Phong模型和Blinn-Phong模型最大的不同,一个是根据反射方向(r)和观察方向(v)的夹角来计算高光,而另一个是根据半角方向(h)和法线方向(n)来计算高光。两种光照模型并没有孰优孰劣之分,但一般情况下,Blinn-Phong模型的计算速度会比Phong模型更快。
二、Blinn-Phong光照模型 在Phone光照模型的基础上,仅有一点区别。 在计算高光时,将反射光与摄像机(观察)方向的夹角,改为了发现方向与 摄像机(观察)方向和入射方向的中间向量的夹角。 相同条件下Blinn-Phong的高光范围要比Phong更大,写实效果Phong光照模型更好。但算法简单,运行速度快是Blinn-Phong光照模型的优点。
Blinn–Phong reflection model 效果 平滑着色 平直着色 核心 顶点 // 法线 vNormal = normalMatrix * normal; vNormal = normalize( vNormal ); // 点光位置 vPointLightPosition = (viewMatrix * vec4( pointLightPosition, 1.0 )).xyz; //顶点位置 ...
blinn phong 公式 Blinn-Phong光照模型是计算机图形学中常用的一种光照模型,用于模拟光照对物体表面的影响。它的计算方式基于Phong光照模型的基础上进行了改进,能够更准确地模拟光照效果。 Blinn-Phong光照模型由一个反射项和一个镜面反射项组成。反射项用来计算物体表面的漫反射和环境光反射,而镜面反射项则用来计算物体...
因此使用Blinn模型可以使得光照边缘变得模糊,而Phong模型的光照边缘是比较清晰可见的,同时因为Blinn模型的那两个进行点乘的向量角度值总等于Phong模型的那两个角度值的二分之一,因此在同样的情况下,Blinn模型输出的c(specular)会比Phong模型输出的大上几倍,如果要模拟相似的光照,需要进行一些调整,具体喜欢哪种模型的...
颜色 颜色是由光的颜色乘物品的颜色得到的 光的颜色值不是比例,如果值大就亮,值小就暗。比如(1.0f, 1.0f, 1.0f)就比(0.2f, 0.2f, 0.2f)亮 fragmentshader #version 330 core out vec4 fragColor; uniform vec3
总体来说就是Blinn-Phong计算更简单 特殊情况:Phong模型中,材质反光度很低时,一部分高光的反射向量和观察方向夹角超过90°,就会产生高光缺失、断层的效果。 5.Gourand模型 逐顶点计算 镜面高光效果差 对应的着色频率:Gouraud shading(逐顶点)算出顶点法线,然后插值 ...