一、【标准光照模型】
1、自发光emissve:描述一个表面本身会发散多少光。在没有使用全局光照时,这些自发光是不会真正照亮周围物体。
自发光就是直接由发光体发射进入摄像机,不经过任何反射,在标准光照模型中直接使用该材质的自发光颜色。
        计算公式:Cemissive = Memissive

2、高光反射specular:当光线从光源照射到模型表面时,该表面会向完全镜面反射方向散发的光照强度
标准光照模型中的高光反射是一种经验模型,它并不是完全符合真实世界中的高光反射现象。它可用于计算那些
沿着完全镜面反射方向发射的光线,这可以让物体看起来是有光泽的。
  (1)计算高光需要知道4个矢量:光照方向L、视角方向V、表面法线N和反射方向R。这4个数据只要知道3个就可以
反射方向可以通过计算得到:R = 2(N*L)N - L;
  计算高光Phong模型:Cspecular = (Clight*Mspecular)max(0,V * R)^Mshiniess
  Mshiniess是指反光度,用于控制亮点的大小。

  (2)另外:不同于Phong模型,Blinn模型在跟符合实验结果。Blinn模型的思想是,避免计算反射方向R,为此引入
了一个新的矢量H,它是通过V和L的取平均之后再归一化得到。即H = (V+L)/|V+L|然后计算N和H的夹角。
  计算高光Blinn模型:Cspecular = (Clight*Mspecular)max(0,N*H)^Mshiniess

3、漫反射diffuse:当光线从光源照射到模型表面时,该表面会想每个方向散发的光照强度
漫反射光是用于那些被物体表面随机散发到各个方向的辐射度进行建模的。因此视角位置不重要,因为反射
是完全随机的,可以看做在任何反射方向上光的强度是一样的。但是,入射光线的角度很重要.
漫反射光照符合兰伯特定律(Lambert‘s Law):反射光线强度与表面法线和光源方向之间夹角的余弦值成
正比。因此,漫反射部分的计算如下:
      Cdiffuse = (Clight * Mdiffuse)max(0,N * L)

4、环境光ambient:用于描述其他所有的间接光照强度
标准光照模型的重点是在描述直接光照,但是真实世界中,物体也可以被间接光照所照亮。间接光照
就是指,光线在多个物体之间经过多次反射最后进入摄像机,这种间接光照在标准光照模型中被称为环境
光。
      计算公式:Camnient = Gambient

【Unity Shader】---基础光照的更多相关文章

  1. Unity Shader基础

    Unity Shader基础 先上代码,代码一般是这样的. void Initialization(){ //先从硬盘加载代码再加载到GPU中 string vertexShaderCode = Lo ...

  2. Unity Shader 基础(4) 由深度纹理重建坐标

    在PostImage中经常会用到物体本身的位置信息,但是Image Effect自身是不包含这些信息的,因为屏幕后处其实是使用特定的材质渲染一个刚好填满屏幕的四边形面片(四个角对应近剪裁面的四个角). ...

  3. Unity3D学习(六):《Unity Shader入门精要》——Unity的基础光照

    前言 光学中,我们是用辐射度来量化光. 光照按照不同的散射方向分为:漫反射(diffuse)和高光反射(specular).高光反射描述物体是如何反射光线的,漫反射则表示有多少光线会被折射.吸收和散射 ...

  4. Unity Shader入门精要学习笔记 - 第3章 Unity Shader 基础

    来源作者:candycat   http://blog.csdn.net/candycat1992/article/ 概述 总体来说,在Unity中我们需要配合使用材质和Unity Shader才能达 ...

  5. 第二章 Unity Shader基础

    [TOC] 1. Unity Shader 的基础: ShaderLab 学习和编写着色器的过程一直是一个学习曲线很陡峭的过程,通常情况下为了自定义渲染效果往往要和很多文件和设置打交道,这些设置很容易 ...

  6. Unity Shader 基础

    推荐: https://www.cnblogs.com/nanwei/p/7277417.html 上面链接作者的整个系列都写的不错 https://www.cnblogs.com/nanwei/ca ...

  7. Unity Shader 基础(3) 获取深度纹理

    Unity提供了很多Image Effect效果,包含Global Fog.DOF.Boom.Blur.Edge Detection等等,这些效果里面都会使用到摄像机深度或者根据深度还原世界坐标实现各 ...

  8. Unity Shader 基础(1): RenderType & ReplacementShader

    很多Shader中都会定义RenderType这个类型,但是一直搞不明白到底是干嘛的,官方文档是这样结解释的:Rendering with Replaced Shaders Rendering wit ...

  9. Unity Shader基础(1):基础

    一.Shaderlab语法 1.给Shader起名字 Shader "Custom/MyShader" 这个名称会出现在材质选择使用的下拉列表里 2. Properties (属性 ...

  10. Unity Shader 基础(2) Image Effect

    Unity中 Image Effect 是Post Processing的一种方,Unity自身也提供很多Effect效果供使用.Image Effect的使用官方文档做了很多介绍,这里重点Post ...

随机推荐

  1. XPath语法以及谓语的结合使用

    /* XPath 术语 节点(Node) 在 XPath 中,有七种类型的节点:元素.属性.文本.命名空间.处理指令.注释以及文档(根)节点.XML 文档是被作为节点树来对待的.树的根被称为文档节点或 ...

  2. Zabbix--06主动模式和被动模式、低级自动发现、性能优化、

    目录 一. Zabbix主动模式和被动模式 1.克隆模版 2.修改克隆后的模版为主动模式 3.修改监控主机关联的模版为主动模式 4.修改客户端配置文件并重启 5.查看最新数据 二.Zabbix低级自动 ...

  3. CentOS7 安装 Mysql5.6.40

    CentOS7.5二进制安装MySQL-5.6.40 安装之后登陆不上,mysql.user 表是空的时: Mysql User表为空 mysql创建用户报错ERROR 1364 (HY000): F ...

  4. VCL界面控件DevExpress VCL Controls发布v18.2.7|附下载

    DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包.所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速 ...

  5. Django【第24篇】:JS实现的ajax和同源策略

    JS实现的ajax和同源策略 一.回顾jQuery实现的ajax 首先说一下ajax的优缺点 优点: AJAX使用Javascript技术向服务器发送异步请求: AJAX无须刷新整个页面: 因为服务器 ...

  6. Spring源码--Bean的管理总结(一)

    前奏 最近看了一系列解析spring管理Bean的源码的文章,在这里总结下,方便日后复盘.文章地址https://www.cnblogs.com/CodeBear/p/10336704.html sp ...

  7. postman-关联

    1.提取 在Tests提取接口1的值如:userid //将获取的json数据赋给变量 var jsonData=pm.response.json(); //获取返回的userid值 user_id= ...

  8. Linux文件及目录查找

    Linux文件及目录查找 一which——显示命令的完整路径 [root@centos71 ~]# which ls alias ls='ls --color=auto' /usr/bin/ls [r ...

  9. php array_keys()函数 语法

    php array_keys()函数 语法 作用:返回包含数组中所有键名的一个新数组.直线电机选型 语法:array_keys(array,value,strict) 参数: 参数 描述 array ...

  10. HDU 2296 Ring ( Trie图 && DP && DP状态记录)

    题意 : 给出 m 个单词,每一个单词有一个权重,如果一个字符串包含了这些单词,那么意味着这个字符串拥有了其权重,问你构成长度为 n 且权重最大的字符串是什么 ( 若有权重相同的,则输出最短且字典序最 ...