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——模拟面试题 MIL11——模拟面试题 MIL12——模拟面试题 MIL13——模拟面试题 MIL14——模拟面试题 MIL15——模拟面试题 MIL16——模拟面试题 MIL17——模拟面试题 MIL18——模拟面试题 MIL19——模拟面试题 MIL20——模拟面试题 MIL21——模拟面试题 MIL22——模拟面试题 MIL23——模拟面试题 MIL24——模拟面试题 MIL25——模拟面试题 MIL26——模拟面试题 MIL27——模拟面试题 MIL28——模拟面试题 MIL29——模拟面试题 MIL30——模拟面试题
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实现: 要注意,尽管半兰伯特光照模型改进了背光面的显示效果,我们为了光照效果更加自然还是会使用...
