光影实时渲染总结
1.1 直接光照实时渲染
(直接光照:表示直接从光源发射出来照射到物体表面后,光线经过物体表面的一次反射后直接进入摄像机)
1.1.1Lambert光照模型
(光照模型:模拟物体表面的光照明物理现象的数学模型)
(1)概念:
lambert光照模型属于经验模型,主要用来模拟粗糙物体表面的光照现象。模型假设物体为理想的漫反射体,只产生漫反射。
(2)出处:
1970年,Lambert光照模型作为第一个光反射模型由Bouknight提出。并发表文章在Communication of ACM上。
(3)特点:(环境光 + 方向光)
(4)理解:
兰伯特光照模型是一个经验模型,其中只存在环境光和漫反射,不考虑高光反射。
(5)公式:(Lambert 定律:漫反射光的光强与入射光的方向和入射点表面法向量夹角的余弦值成正比)
1.1.2 Phong光照模型
(1)概念:
Phong光照模型是真实感图形学中提出的一个计算镜面反射光强的经验模型,生成图像的真实度已经达到可以接受的程度。是用来模拟光从物体表面到观察者眼睛的反射。尽管这种方法符合一些基本的物理法则,但它更多的是基于对现象的观察,所以被看成是一种经验式的方法。
(2)出处:
1975年,Phong Bui Tuong提出图形学中第一个最有影响的光照明模型Phong模型,在漫反射模型的基础上加进了高光项。
(3)特点:(环境光 + 漫反射光 + 镜面反射光)
(4)理解:
Phong光照模型是一个经验模型,与兰伯特光照模型相比加入了高光反射这一项,可以对物体光照做近似地模拟。
(5)公式:(Phong认为镜面反射的光强与反射光线和视线的夹角相关)
1.1.3 Blinn_Phong光照模型
(1)概念:
Blinn-Phong 光照模型,又称为 Blinn-phong 反射模型(Blinn–Phong reflection model)或者 phong 修正模型(modified Phong reflection model)。
(2)出处:
由 Jim Blinn于 1977 年在文章“Models of light reflection for computer synthesized pictures”中对传统 phong 光照模型基础上进行修改提出的。
(3)特点:
混合了 Lambert 的漫射部分和标准的高光,与Phong相比使用半角向量替代了反射向量,速度相当快,渲染效果有时比Phong高光更柔和、平滑,是许多 CG 软件中默认光照渲染方法。
(4)理解:
BlinnPhong光照模型与Phong模型相比,拥有更快的效率,但是对光照的模拟真实程度不如Phong。
(5)公式:(在BlinnPhong中用N·H的值取代了V·R)
1.1.4 CookTorrance
(1)概念:
它是一个比Phong 或 BlinnPhong模型更加接近真实的物理模拟。它通常用来描述一个物体的高光部分。这个模型将物体描述为由无数的微表面组成的整体。在粗糙的物体上,微表面之间的夹角变化大,光滑的物体上则更趋近一致。
(2)出处:
它是一个由Robert L. Cook 和 Kenneth E.Torrance 开发的光照模型。
(3)特点:
它是一个基于物理渲染的光照模型,因此是基于微表面的,渲染效果要优于传统的兰伯特、Phong、BlinnPhong光照模型。
(4)理解:
Cook Torrance模型是一个基于物理渲染的光照模型
(5)公式:
高光部分:
F项:菲涅尔反射:(我们在观察水面的时候,垂直看下去,清澈见底,看远处的水面,向镜子一样,这个就是菲涅尔效应)
D项:微平面法线分布函数:(该项模拟物体表面是由无数微小的像镜子一样的平面组成)
G项:几何项:(该项用于计算微平面中反射光重合部分的修正)
1.1.5 PBR
(1)概念:
基于物理的渲染(PBR)是计算机生成的图像的一个子集,其目的是在利用基于经验阴影模型的基于物理的阴影的情况下产生图像。
(2)特点:
所有的PBR技术都是基于微表面的,相比于传统基于Lambert以及Phong模型的渲染管线,PBR采用更加真实的材质模型,能够更好地表现物体表面不同粗糙度带来的不同反射效果,从而能够更贴近真实地模拟各种不同的材质。
1.1.6 Disney
(1)概念:
是一种基于物理的渲染模型,迪士尼将这一方法应用到他们的电影渲染中。采用更加真实的材质模型,能够更好地表现物体表面不同粗糙度带来的不同反射效果,从而能够更贴近真实地模拟各种不同的材质,而Lambert 模型并不能很好的表现出这一特点
(2)出处:
源于2012年Siggraph图形大会上,由迪士尼公司分享的关于PBR技术的报告。
(3)特点:
基于微表面,能够表现不同程度的粗糙度表面的反射效果。
(4)理解:
Disney模型也是一个基于物理渲染的光照模型,基于微表面,可以表现出不同的粗糙度和金属度,主要应用在迪士尼公司的电影动画角色模型渲染中。
(5)公式:
Disney光照公式:(采用了微表面模型的通用形式,该通用形式最早出现在Cook-Torrance模型中)
漫反射函数:
D项:微表面分布函数(α的取值为 roughness 的平方,c为一个常数用于调节整体缩放)
F项:菲涅尔项
G项:几何项(采用了 Walter 在其论文中根据 GGX 推导的 G 公式)
1.1.7 所有效果对比
(1)只有环境光
(2)只有漫反射光
(3)只有高光反射
(4)环境光 + 漫反射(Lambert)
(5)环境光 + 漫反射 + 高光反射(Phong)
(6)BlinnPhong(高光范围比Phong要大)
(7)漫反射 + 高光反射(CookTorrance)
(8)Disney(使用与CookTorrance相同的D项进行计算)
1.2间接光照实时渲染
(间接光照:表示光线从光源发射出来后,经过不止一次的物体反射后进入摄像机)
(1)概念:
间接照明(Indirect lighting),也称为反射照明(Reflected lighting),是指灯具或光源不是直接把光线投向被照射物,而是通过墙壁,镜面或地板反射后的照明效果。
(2)特点:
表示光线从光源发射出来后,经过不止一次的物体反射后进入摄像机。
1.3 硬阴影实时渲染
(令理想点光源的半影消失,也称为Hard Shadow。)
1.3.1 虚拟阴影
1.3.2 Shadow Map
(1)概念:
ShadowMap技术是从灯光空间用相机渲染一张RenderTexture,把深度值写入其中所以称之为 深度图 ,在把接受阴影的物体从模型空间转换到灯光空间中,获取深度图里的深度进行比较,如果深度值比深度图中取出的值大就说明该点为阴影。
(2)出处:
这个概念的引入Lance Williams在 1978 年的论文《Casting curved shadows on curved surfaces 》, 它用于在预渲染、实时场景在很多 PC 和控制台游戏。
(3)特点:
把该像素的深度值跟深度图里取出来的值进行比较,如果比深度图大,该点就为阴影。
(4)理解:
通过阴影深度图进行阴影判断的过程是:先在光源处设置一台摄像机,然后将拍摄到物体的点转换到投影齐次空间形成一张纹理图,然后将纹理图中的深度信息用rgba分量进行存储,得到一张深度纹理图。在使用另外一台摄像机进行观察时,将看到的物体先转化到先前的光源处摄像机的齐次空间中,然后将得到的深度与深度纹理图存储的深度信息进行比较,深度小于深度纹理图时不在阴影中,反之则处于阴影中。
1.3软阴影实时渲染
(1).概念:
有限大光源产生半影,使得阴影的边沿柔和化,也称作Soft Shadow。主要涉及到光线的处理、走样与反走样、硬阴影算法、软阴影算法等。
1.lit(lighted):直接接受光照的区域
2.Umbra:中文为“本影”,是某个光源完全被遮挡的局域
3.Penumbra:中文为“半影”,是仅能接受到有限大光源部分光照的区域。
本文作者:香菇0_0
本文链接:https://www.cnblogs.com/Xiang-gu/p/16512366.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!