博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lambert(朗伯)光照模型 和Half Lambert的区别
阅读量:4080 次
发布时间:2019-05-25

本文共 952 字,大约阅读时间需要 3 分钟。

Lambert-它不包括任何任何镜面属性,对粗糙来说,这项属性是非常有用的,它不会反射出周围的环境。Lambert材质可以是透明的,在光线追踪渲染中发生折射,但是如果没有镜面属性,该类型就不会发生折射。平坦的磨光效果可以用于砖或混凝土表面。它多用于不光滑的表面,是一种自然材质,常用来表现的材质,如:木头、岩石等。

  

http://www.cnblogs.com/mavaL/archive/2010/11/01/1866451.html

 

Half Lambert模型

Half Lambert光照模型是Valve公司在制作”半条命“游戏时发明的,用来给在比较暗的区域显示物体。总体来说,该光照模型提高了物体表面的漫反射光。下图是Valve的示例,左手边是Lambert模型,右手边是Half Lambert模型。

使用我们原来的基础的shader,我们把LightingBasicDiffuse()方法改成如下:

inline float4 LightingBasicDiffuse (SurfaceOutput s, fixed3lightDir, fixed atten){float difLight = dot (s.Normal, lightDir);float hLambert = difLight * 0.5 + 0.5;float4 col;col.rgb = s.Albedo * _LightColor0.rgb * (hLambert * atten * 2);col.a = s.Alpha;return col;}

  

保存shader后,我们回到Unity。

如果你没有对场景中的物体进行任何的改动,你可以发现现在物体整体表现比原来亮了。这个原因是因为代码

float hLambert = difLight * 0.5 + 0.5;

difLight在范围因为dot()方法的关系,在[0, 1]范围,因此, hLambert的范围在[0.5, 1]。这个算法把范围0~1映射到了范围0.5~1中,整体就提高了最后的数值。

 

http://www.98jy.net/article/24

posted on 2016-12-06 10:58 阅读(...) 评论(...)

你可能感兴趣的文章
专业和业余的区别就在于你在基础在基本功打磨练习花的时间
查看>>
通过mavlink实现自主航线的过程笔记
查看>>
Ardupilot飞控Mavlink代码学习
查看>>
我发现我看到的无人驾驶车上的激光雷达外观差不多
查看>>
这些网站有一些嵌入式面试题合集
查看>>
我觉得刷题是有必要的,不然小心实际被问的时候懵逼,我觉得你需要刷个50份面试题。跟考研数学疯狂刷卷子一样!
查看>>
我觉得嵌入式面试三要素:基础吃透+项目+大量刷题,缺一不可。不刷题是不行的。而且得是大量刷,刷出感觉套路,别人做题都做得是固定题型套路条件反射了,你还在那慢慢理解慢慢推是不行的,也是考研的教训。
查看>>
理解一下ROS里面包和节点的概念
查看>>
看mavros有没有连上飞控用rostopic echo /mavros/state
查看>>
CSDN 博客添加无水印图片的方法
查看>>
我感觉现代交流传动技术及其控制系统,似乎就是讲的电机控制,PWM控制,似乎还讲到了串级控制调速。
查看>>
智能无人机课程第二期十八章目标检测与追踪
查看>>
写程序关键是真正自己开始动手写,不要总是想着等全部弄懂了再写
查看>>
VScode下载安装
查看>>
vscode安装常用插件
查看>>
vscode怎样打开终端 使用命令行
查看>>
推荐一种sphinx+reStructuredText的编辑方式
查看>>
vscode怎样预览HTML文件
查看>>
rst文件的实时预览(我最后再vscode上实现了)
查看>>
vscode怎样预览markdown文件
查看>>