漫反射和Lambert模型】的更多相关文章

粗糙的物体表面向各个方向等强度地反射光,这种等同地向各个方向散射的现象称为光的漫反射(diffuse reflection).产生光的漫反射现象的物体表面称为理想漫反射体,也称为朗伯(Lambert)反射体. 只考虑环境光情况下: 考虑入射光方向情况下:当方向光照射到朗伯反射体上时,漫反射光的光强与入射光的方向和 入射点表面法向夹角的余弦成正比,这称之为Lambert 定律,并由此构造出Lambert漫反射模型:…
[Lambert模型] 漫反射光的强度近似地服从于Lambert定律,即漫反射光的光强仅与入射光的方向和反射点处表面法向夹角的余弦成正比. 由此可以构造出Lambert漫反射模型:Idiffuse =Id Kd cosθIdiffuse表示物体表面某点的漫反射光强Id为点光源,Kd(0<Kd<1)表示物体表面该点对漫反射光的反射属性 θ是入射光线的方向与物体表面该点处法线N的夹角,或称为入射角(0≤θ≤90°)入射角为零时,说明光线垂直于物体表面,漫反射光强最大:90°时光线与物体表面平行,物…
经典光照模型(illumination model) 物体表面光照颜色由入射光.物体材质,以及材质和光的交互规律共同决定. 由于环境光给予物体各个点的光照强度相同,且没有方向之分,所以在只有环境光的情况下,同一物体各点的明暗程度均一样. 环境光是对光照现象的最简单抽象,局限性很大.它仅能描述光线在空间中无方向并均匀散布时的状态. 还有一种是平行光,即光线都从同一个方向照射.通过模拟方向光和物体表面的交互模式,可以渲染出具有高真实感(明暗变化.镜面反射等)的三维场景. 漫反射与Lambert 模型…
在学习这个shader之前先提个经常使用概念.即光照模型.LightModel(光照模型)即是对于物体怎么对打在其上的光做出视觉反应的数学模型.意即表达物体对光反应产生的视觉效果与入射光.物体表面属性等数值相关联的数学表达. 大致了解了光照模型的概念,接下来介绍下今天的主角,Half Lambert模型,该模型是Valve在开发经典游戏<Half-Life(半衰期)>(半条命这个译名真是后无古人的误翻啊--)是发明的,在曾经的游戏中.一旦模型背对着光源,模型表面的亮度会立马减少.使得整个模型显…
双向反射分布函数(BRDF:Bidirecitonal Reflectance Distribution Function) 用来描述物体表面对光的反射性质 预备知识 BRDF的定义和性质 BRDF模型 BRDF的度量与评价 光照.照明 分为全局和局部光照 局部光照(Local illumination)和物体直接被光源照射的情况 全局光照(global illumination)和物体被光源外的其他地方的光线照射的情况相关,包括其他物体反射和投射过来的光线. 预备知识 球面坐标(Spheric…
Lambert-它不包括任何任何镜面属性,对粗糙物体来说,这项属性是非常有用的,它不会反射出周围的环境.Lambert材质可以是透明的,在光线追踪渲染中发生折射,但是如果没有镜面属性,该类型就不会发生折射.平坦的磨光效果可以用于砖或混凝土表面.它多用于不光滑的表面,是一种自然材质,常用来表现自然界的物体材质,如:木头.岩石等. http://www.cnblogs.com/mavaL/archive/2010/11/01/1866451.html Half Lambert模型 Half Lamb…
0.前言 这篇文章写于去年的暑假.大二的假期时间多,小组便开发一个手机游戏的项目,开发过程中忙里偷闲地了解了Unity的shader编写,而CG又与shaderLab相似,所以又阅读了<CG教程>.<GPU 编程与CG 语言之阳春白雪下里巴人>学习图形学的基础.尝试编写unity shader时还恶补了些3D数学.这些忙里偷闲的日子,坏了空调的闷热的实验室,还真是有点怀念.当时写这些文章并不是想作为教程,只是自己的总结方便日后温习,所以文章内容都很基础. 2015/08/04 于工…
猫都能学会的Unity3D Shader入门指南(二) 关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果您在Shader开发上有所心得,很欢迎并恳请您指出文中纰漏,我会尽快改正.在之前的开篇中介绍了一些Shader的基本知识,包括ShaderLab的基本结构和语法,以及简单逐句地讲解了一个基本的shader.在具有这些基础知识后,阅读简单的sha…
关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果您在Shader开发上有所心得,很欢迎并恳请您指出文中纰漏,我会尽快改正.在之前的开篇中介绍了一些Shader的基本知识,包括ShaderLab的基本结构和语法,以及简单逐句地讲解了一个基本的shader.在具有这些基础知识后,阅读简单的shader应该不会有太大问题,在继续教程之前简单阅读一下Un…
转载请注明出处:http://blog.csdn.net/candycat1992/article/details/39994049 写在前面 一直以来,Unity Surface Shader背后的机制一直是初学者为之困惑的地方.Unity Surface Shader在Unity 3.0的时候被开放给公众使用,其宣传手段也是号称让所有人都可以轻松地写shader.但由于资料缺乏,很多人知其然不知其所以然,无法理解Unity Surface Shader在背后为我们做了哪些事情. 前几天一直被…