US3S1L6——Blinn-Phong式高光反射光照模型
US3S1L6——Blinn-Phong式高光反射光照模型 Blinn-Phong式高光反射光照模型 公式: 高光反射光照颜色=光源的颜色×材质高光反射颜色×max(0, 标准化后顶点法线方向→⋅标准化后半角向量方向→)光泽度高光反射光照颜色 = 光源的颜色 \times 材质高光反射颜色 \times \max(0,\ \overrightarrow{标准化后顶点法线方向} \cdot \overrightarrow{标准化后半角向量方向})^{光泽度} 高光反射光照颜色=光源的颜色×材质高光反射颜色×max(0, 标准化后顶点法线方向⋅标准化后半角向量方向)光泽度 标准化后顶点法线方向→⋅标准化后半角向量方向→\overrightarrow{标准化后顶点法线方向} \cdot \overrightarrow{标准化后半角向量方向}标准化后顶点法线方向⋅标准化后半角向量方向 得到的结果就是 cosθ\cos\thetacosθ 半角向量方向→=视角单位向量→+入射光单位向量→\overrightarrow{半角向量方向} =...
US3S1L5-2——Phong光照模型的逐片元光照
US3S1L5-2——Phong光照模型的逐片元光照 知识回顾 Phong光照模型公式: 物体表面光照颜色=环境光颜色+兰伯特光照模型所得颜色+Phong式高光反射光照模型所得颜色物体表面光照颜色 = 环境光颜色 + 兰伯特光照模型所得颜色 + Phong式高光反射光照模型所得颜色 物体表面光照颜色=环境光颜色+兰伯特光照模型所得颜色+Phong式高光反射光照模型所得颜色 其中: 环境光颜色 = UNITY_LIGHTMODEL_AMBIENT(或者:unity_AmbientSky、unity_AmbientEquator、unity_AmbientGround) 漫反射光颜色 = 兰伯特光照模型 计算得到的颜色 高光反射光颜色 = Phong式高光反射光照模型 计算得到的颜色 利用Phong式光照模型实现光照效果(逐片元光照) 关键步骤: 计算兰伯特光照模型 123456789101112fixed4 _MainColor; //属性设置的漫反射颜色//计算兰伯特光照模型 颜色相关函数(逐片元)//参数:// wNormal:...
US3S1L5-1——Phong光照模型的逐顶点光照
US3S1L5-1——Phong光照模型的逐顶点光照 知识回顾 Phong光照模型公式: 物体表面光照颜色=环境光颜色+兰伯特光照模型所得颜色+Phong式高光反射光照模型所得颜色物体表面光照颜色 = 环境光颜色 + 兰伯特光照模型所得颜色 + Phong式高光反射光照模型所得颜色 物体表面光照颜色=环境光颜色+兰伯特光照模型所得颜色+Phong式高光反射光照模型所得颜色 其中: 环境光颜色 = UNITY_LIGHTMODEL_AMBIENT(或者:unity_AmbientSky、unity_AmbientEquator、unity_AmbientGround) 漫反射光颜色 = 兰伯特光照模型 计算得到的颜色 高光反射光颜色 = Phong式高光反射光照模型 计算得到的颜色 利用Phong式光照模型实现光照效果(逐顶点光照) 关键步骤: 计算兰伯特光照模型 12345678910111213fixed4 _MainColor; //属性设置的漫反射颜色//计算兰伯特光照模型 颜色相关函数(逐顶点)//参数:// objNormal:...
MIL1——模拟面试题
MIL1——模拟面试题 问题 C# 装箱和拆箱是什么? 值和引用类型在变量赋值时的区别是什么? 委托和事件在使用上的区别是什么? 有两个接口IA和IB,他们中有一个同名方法Test(),一个类同时继承这两个接口,应该如何处理他们的同名方法? 请说明C#中的List是如何扩容的 Unity Unity中点乘和叉乘对于我们来说的作用是什么? Unity中多线程执行下面哪些代码会报错? A. Application.persistentDataPath B. File.Exists(“文件名”) C. transform.Translate D. Object.Destroy(对象) Application.streamingAssetsPath 和 Application.persistentDataPath...
MI——模拟面试题整理
MI——模拟面试题整理 笔记代号MI——即Mock Interview的缩写 模拟面试题归纳(按照时间排序) MIL1——模拟面试题 MIL2——模拟面试题 MIL3——模拟面试题 MIL4——模拟面试题 MIL5——模拟面试题 MIL6——模拟面试题 MIL7——模拟面试题 MIL8——模拟面试题 MIL9——模拟面试题 MIL10——模拟面试题
US3S1L5——Phong光照模型
US3S1L5——Phong光照模型 本章代码关键字 1234UNITY_LIGHTMODEL_AMBIENT //当光面板的环境光光源选择天空盒或者固定颜色时,通过该变量获取环境光unity_AmbientSky //当光面板的环境光光源选择渐变时,通过该变量获取天空环境光unity_AmbientEquator //当光面板的环境光光源选择渐变时,通过该变量获取赤道环境光unity_AmbientGround //当光面板的环境光光源选择渐变时,通过该变量获取地面环境光 Phong光照模型 Phong光照模型公式: 物体表面光照颜色=环境光颜色+兰伯特光照模型所得颜色+Phong式高光反射光照模型所得颜色物体表面光照颜色 = 环境光颜色 + 兰伯特光照模型所得颜色 + Phong式高光反射光照模型所得颜色 物体表面光照颜色=环境光颜色+兰伯特光照模型所得颜色+Phong式高光反射光照模型所得颜色 其中: 环境光颜色 =...
US3S1L4-2——Phong式高光反射光照模型的逐片元光照
US3S1L4-2——Phong式高光反射光照模型的逐片元光照 知识回顾 公式: 高光反射光照颜色=光源的颜色×材质高光反射颜色×max(0, 标准化后观察方向向量→⋅标准化后的反射方向→)光泽度高光反射光照颜色 = 光源的颜色 \times 材质高光反射颜色 \times \max(0,\ \overrightarrow{标准化后观察方向向量} \cdot \overrightarrow{标准化后的反射方向})^{光泽度} 高光反射光照颜色=光源的颜色×材质高光反射颜色×max(0, 标准化后观察方向向量⋅标准化后的反射方向)光泽度 标准化后观察方向向量→⋅标准化后的反射方向→\overrightarrow{标准化后观察方向向量} \cdot \overrightarrow{标准化后的反射方向}标准化后观察方向向量⋅标准化后的反射方向 得到的结果就是...
US3S1L4-1——Phong式高光反射光照模型的逐顶点光照
US3S1L4-1——Phong式高光反射光照模型的逐顶点光照 知识回顾 公式: 高光反射光照颜色=光源的颜色×材质高光反射颜色×max(0, 标准化后观察方向向量→⋅标准化后的反射方向→)光泽度高光反射光照颜色 = 光源的颜色 \times 材质高光反射颜色 \times \max(0,\ \overrightarrow{标准化后观察方向向量} \cdot \overrightarrow{标准化后的反射方向})^{光泽度} 高光反射光照颜色=光源的颜色×材质高光反射颜色×max(0, 标准化后观察方向向量⋅标准化后的反射方向)光泽度 标准化后观察方向向量→⋅标准化后的反射方向→\overrightarrow{标准化后观察方向向量} \cdot \overrightarrow{标准化后的反射方向}标准化后观察方向向量⋅标准化后的反射方向 得到的结果就是...
US3S1L4——Phong式高光反射光照模型
US3S1L4——Phong式高光反射光照模型 本章代码关键字 123_WorldSpaceCameraPos //观察者的位置(摄像机的位置)UNITY_MATRIX_M //从模型空间转换到世界空间的矩阵,在这里用于将模型顶点从模型空间转换到世界空间参与计算unity_ObjectToWorld //同样是从模型空间转换到世界空间的矩阵,与上面的等价的,在这里用于将模型顶点从模型空间转换到世界空间参与计算 Phong式高光反射光照模型 来历:高光反射光照模型没有单一的发明者,因为有多种计算的方式 和半兰伯特光照模型一样,是经过很多从业者的研究和发展而演化出来的 其中比较关键的几位贡献者为 Phong光照模型的提出者:裴祥风(Bui-Tuong Phong,越南裔美国计算机学家) Blinn-Phone光照模型的提出者:吉姆·布林(Jim...
US3S1L3-2——半兰伯特光照模型的逐片元光照
US3S1L3-2——半兰伯特光照模型的逐片元光照 利用半兰伯特光照模型实现光照效果(逐片元光照) 半兰伯特光照模型的逐片元实现,和兰伯特一模一样,唯一的区别就是公式: Color漫反射光照=Color光源×Color材质的漫反射×((标准化后物体表面法线向量→⋅标准化后光源方向向量→)×0.5+0.5)Color_{漫反射光照} = Color_{光源} \times Color_{材质的漫反射} \times ((\overrightarrow{标准化后物体表面法线向量} \cdot \overrightarrow{标准化后光源方向向量}) \times 0.5 + 0.5) Color漫反射光照=Color光源×Color材质的漫反射×((标准化后物体表面法线向量⋅标准化后光源方向向量)×0.5+0.5) 具体Shader实现: 要注意,尽管半兰伯特光照模型改进了背光面的显示效果,我们为了光照效果更加自然还是会使用...