哈喽,上次我们有分享过Diffuse漫反射的基本光照原理,现在我们来聊一下另外一个反射,Unity中specular镜面高光反射解析。
在OpenGL中,光照使用的是简化的模型,即对现实的情况进行近似,这样处理起来会容易一些而且看起来效果也差不多。而这些光照模型都是基于我们对光的物理特性的理解。
要处理光照模型,我们有常见的三种多边形的着色方法,分别是Flat Shading,Gouraud Shading和Phong Shading。三种效果图如下:
1、Flat Shading
Flat shading是最简单的着色模型,打光时每个多边形只会呈现一个颜色,这个颜色由面法向量和光照计算得来。
在该模型中,每个多边形中只有多边形的面存在法向量,而其各个顶点没有。所以早期的flat shading计算是按照面为单位来进行计算的,计算结果并不很准确。
2、Gouraud Shading
Gouraud shading着色器模型,多边形的每个顶点都有一个法向量,它在着色时对每个法向量进行点乘反射计算,再通过双线性插值计算三角形区域中其它像素的颜色(比如中间像素的颜色)。
3、Phong Shading
Phong shading是三者之中最复杂的着色方法。它的特点是结合了多边形物体表面反射光的亮度,并以特定位置的表面法线作为像素参考值,以插值方式来估计其他位置像素的色值。在这种情况下,多边形中每个顶点都有一个法向量,通过这些法向量与光照计算,来得到每个点的颜色。在使用有限数量的多边形时,对顶点法向量进行插值可以给出近似平滑的曲面效果,所以phong会计算更多的点乘反射,运行也比上面两种更加复杂。
相比之下,flat着色模型比较简单,但是后面两种计算方法虽然都需要应用多边形的法向量计算出其公共顶点的法向量,也都需要计算各顶点处的光强,但在逐像素计算上还是有所区别。
Phong shading在计算的时候会将插值以后的像素点对应的法向量再次与光照进行计算,得到其着色,而gouraud shading的计算只是对多边形的每个顶点计算好着色,然后再使用双线性插值方法对上面像素进行计算,不会再将其与光照进行反射计算。
4、Obj File计算
上述三种模型在计算的时候法向量是从哪里来的呢,我们打开一个简单的obj格式的box文件如下;
V(Geometric vertices),表示物体中各个顶点的信息;
Vt(Texture vertices),表示贴图坐标点;
Vn(Vertex normals),顶点法线;
F(Face),所有顶点组成的面的信息
而这些数据中没有面法线的值,所以flat shading在计算光照的过程中,需要单独根据点法线对面法线进行计算。对GouraudShading 和 Phong Shading来说,就只需要取值然后一顿猛算就对了.
5、Specular高光反射
Phong shading的模型主要由三个分量组成:环境(Ambient),漫反射(Diffuse)和镜面或者高光反射(Specular),所以下面这张图中,前三个加起来就会得到最后一个的效果。
环境光照指的是即使在黑暗的情况下,环境中也仍然有一些光亮,所以物体几乎永远不会是完全黑暗的,所以我们用这个环境光照来给物体一些颜色。
而diffuse已经在上次分享过原理以及计算过程了,所以只需要加上我们这次探讨的specular就可以完成phong的实现。
Specular是模拟光泽物体上面出现的亮点,而镜面光照的颜色相比于物体的颜色会更倾向于光的颜色。
如果我们的物体是一面镜子,无论从哪个方向去看,都会看到镜面光照的最大值,真相如图:
对于specular,我们计算的是反射向量和视线方向的角度差,如果夹角越小,那么镜面光的影响就会越大。它的作用效果就是,当我们去看光被物体所反射的那个方向的时候,我们会看到一个高光。而具体在shader graph中的计算过程,我留着下一节来聊叭。
来源:Thepoly 公众号
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答在数字技术重构创意产业的浪潮中,武汉虚幻引擎培训正成为从业者拥抱未来的重要通道。作为华中地区科技创新核心城市,武汉依托雄厚的工......
在数字经济快速发展的当下,北京UI设计培训正成为连接数字产品与用户的重要桥梁。作为全国互联网企业最集中的城市,北京UI设计师岗......
在影视创作的数字化浪潮中,每一帧画面的诞生都是技术与艺术的共生成果。作为全国影视产业的核心引擎,上海影视后期培训领域正以年均1......
在数字经济与视觉科技深度交织的当下,武汉这座长江经济带核心城市正悄然打造三维视觉产业高地。作为全国重要的科教基地,武汉依托百万......
在数字经济蓬勃发展的今天,UI设计作为连接用户与产品的视觉桥梁,已成为影视、互联网等领域的核心岗位。武汉这座"设计之都"凭借中......
在数字经济蓬勃发展的今天,北京UI设计培训作为连接用户与产品的核心技能,持续为影视、互联网、智能设备等领域输送专业人才。作为全......
同学您好!