高亮反射光 Specular Light
就是平时我们看到的一个光滑球面会发射的耀眼光。
那么为什么很多球面会有这种效果呢?这个是不是球面的特性,还是某些表面的特性, 如镜面?
从图形学的角度解答:不是球面的特性,也不是镜面的特性。
为什么呢?
因为根据公式:C = pow(max(v*r, 0), p)*L*M;
这个公式好像跟漫射光是一样的,不过模式一样,其实含义却不一样。
这里的v是平面点P到眼睛所在点E的单位向量 v = (P-E)/||P-E||
而r代表反射光线的传播方向,如下图:
其实vr = cosø;就是v和r的夹角的大小,夹角越小,自然接受到更强的光线,而超出一定角度,就看不到高亮光了。
而这里图中的n就是严格垂直于平面的单位法线向量,注意:并不是漫射光中所说的微观的法向量,两者具有严格不同的意义。
区分这点很重要,这是理解漫射光和高亮反射光的主要不同点。
这个时候我们知道眼睛改变的时候v会改变,而垂直法向量是不变的,所以高亮反射光的强度就和我们的眼睛位置相关了。
其中公式还有个高亮因子p。这也是这个公式最巧妙的地方,这样可以让高亮光慢慢fade out淡出。这也是数学巧妙的地方,一般人还真的无法创造出如此巧妙的方法。
下图是光强度(intensity)的分布图,可以看到是平滑的向两边淡出的。
结论:
1 球面容易看到高亮光,是因为球面的法线向外扩散,让看到高亮光的区域更大,那么就更加容易看到高亮光了。
2 镜面表面很平滑,那么高亮光就会很集中,虽然看到的区域小,但是因为高亮的强度很大,那么就可以很清晰的看到高亮光了。
3 其实高亮光可以发生在任何物体和任何表面上。
那么我们怎么设计粗糙的表面高亮光效果很弱或者甚至看不到高亮光呢?这个时候可以控制公式中的L和M,如果设置这两个数值都很小或者直接设置为零,那么高亮效果就很弱甚至看不到了。
分享到:
相关推荐
Specular_highlight_removal_for_real_world_images 注意:如果您有任何疑问,请通过电子邮件与我联系: 介绍去除图像中的镜面高光是计算机视觉和计算机图形学中的基本研究问题。 尽管已经提出了各种方法,但是由于...
#Famous WebGL 镜面光 展示 WebGL 网格镜面反射和光泽度的实现 这是一个简单的展示了使用相同的 API 将 WebGL 和 DOM 事件一起工作的实现。 如果您有兴趣查看这个特定的光照模型,这里有一个使用的示例。 ###演示 ...
图片反光文章
OpenGL3.3_PBR+IBL_Specular-NoTexture.rar OpenGL3.3_PBR+IBL_Specular-NoTexture.rar
Unity内置Shader和内置库,写Shader的时候可以作为参考
We propose a novel SFS method based on hybrid reflection model which contains both diffuse reflectance and specular reflectance. The intensity gradient of image is in the direction that the shape of ...
D3D11_SpecularMap
使用生成对抗网络去除自然界物体存在的镜面反射
specular_highlight
OpenGL3.3_Lighting_SpecularMap
- Can produce both complete and indirect lightmaps, or even mix both per-light. - Can produce shadowmasks. - Supports directional baking (bump/specular) with 4 modes: dominant direction (compatible ...
现实世界的光照是极其复杂的,而且会受到诸多因素的影响,这是以目前我们所拥有的处理能力无法模拟的。...冯氏光照模型的主要结构由3个元素组成:环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照。
论文 Real-time Specular Highlight Removal Using Bilateral Filtering 的 C++ 官方代码实现
为什么要PBR? 1.渲染更逼真的画面 - 逼真画面 ≈ 高品质画面 ->...- 反射光 - 自发光 - 折射光 图中大部分区域 灯丝 玻璃 光的反射 Reflection. 光的反射包括 漫反射 Diffuse Reflection 镜面反射 Specular Reflection
- Can produce both complete and indirect lightmaps, or even mix both per-light. - Can produce shadowmasks. - Supports directional baking (bump/specular) with 4 modes: dominant direction (compatible ...
2.漫反射光(diffuse light):模拟对粗糙表面的直接照 3.高光(specular light):模拟对光滑表面的直接光照 2.漫反射材质:平面反射
里面有三个算法,对于图片的反光检测和反光去除,MATLAB里面包含测试数据,可以直接运行main.m文件就可以了,效果不错。
Because the majority of object acquisition approaches rely on observing light reflected off a surface, objects made of materials that exhibit significant effects of global light transport or that are...
Specular,Specular powe原理及制作注意事项_燕林.pdf
OpenGL_PBR+IBL+Specular+Texture.rar OpenGL_PBR+IBL+Specular+Texture.rar OpenGL_PBR+IBL+Specular+Texture.rar