美文网首页
OpenGLES5-光照

OpenGLES5-光照

作者: AlanGe | 来源:发表于2020-06-29 11:34 被阅读0次

光照基础

  1. 环境光照
  2. 漫反射光照
  3. 镜面光照


光照特性

1. 发射光:由物体自身发光

2. 环境光:就是在环境中充分散射的光,而且无法分辨它的方向

   在OpenGL中,全局环境光的强度(0.2,0.2,0.2,1.0)

3. 漫反射光:光线来自某个方向,但在物体上各个方向反射。

4. 镜面高光:光线来自一个特定的方向,然后在物体表面上以一个特定的方向反射出去

材质属性

  1. 泛射材质
  2. 漫反射材质
  3. 镜面反射材质
  4. 发射材质

光照计算

  1. 发射光的计算

    发射颜⾊色 = 物体的反射材质颜⾊

  2. 环境光的计算

    环境光 = 光源的环境光颜色 * 物体的环境材质颜⾊

  3. 漫反射光计算

漫反射颜⾊色 = 光源的漫反射颜色 * 物体的漫发射材质颜色 * DiffuseFactor
DiffuseFactor = max(0,dot(N,L))

漫反射因⼦子DiffuseFactor 是光线 与顶点法线向量的点积

材质

  1. 镜面反射

镜⾯面反射颜色 = 光源的镜面光的颜色 * 物体的镜面材质颜色 * SpecularFactor

SpecularFactor = power(max(0,dot(N,H)),shininess)

H :视线向量E 与光线向量L 的半向量

dot(N,H):H,N的点积几何意义,平方线与法线夹⻆角的cos值

H = normalise( l + E)

衰减因子

衰减因子 = 1.0/(距离衰减常量 + 线性衰减常量 * 距离 + 二次衰减常量 * 距离的平方) 距离衰减常量,线性衰减常量和二次衰减常量均为常量值

注意
环境光,漫反射光和镜面光的强度都会受距离的增大而衰减,只有发射光和全局环境光的强度不会受影响

聚光灯因子

聚光灯夹角cos值 = power(max(0,dot(单位光源位置,单位光线向量)),聚光灯指数);

单位光线向量是从光源指向顶点的单位向量 

聚光灯指数,表示聚光灯的亮度程度

公式解读:单位光源位置 * 单位光线向量点积的聚光灯指数次方。

聚光灯无过渡 与 有过渡处理

增加过渡计算

聚光灯因子 = clamp((外环的聚光灯⻆度cos值 - 当前顶点的聚光灯角度cos值)/ (外环的聚光灯角度cos值- 内环聚光灯的角度的cos值),0,1);


光照计算终极公式

光照颜色 = 发射颜色 + 全局环境颜色 + (环境颜色 + 漫反射颜色 + 镜面反射颜色) * 聚光灯效果 * 衰减因⼦

案例实战

Demo: 07-光照

相关文章

  • OpenGLES5-光照

    光照基础 环境光照 漫反射光照 镜面光照 光照特性 材质属性 泛射材质 漫反射材质 镜面反射材质 发射材质 光照计...

  • 光照

  • 光照

    物体的颜色 在现实生活中看到某一物体的颜色并不是这个物体的真实颜色,而是它所反射(Reflected)的颜色。那些...

  • 光照

    openGL光照 光的成分:由RGBA决定1.环境光:没有方向,向四周均匀发散,全局因素 ambient2.散射光...

  • 光照

    坐标系统Get知识点 1、模型视图投影变化可以设置成 Projection、viewMatrix、 modelM...

  • 光照

    光照我 在我执迷之时 救主大爱 如清泉沁入心脾 光照我 在我忧伤之时 无论过往 总把我心膏抹 光照我 在我随时随地...

  • 光照

    1.光照基础 OpenGL 提供了基本的光照情况(): 发射光 :由发光体自身发光 环境光照 :没有起点,没有方向...

  • 光照

    残烟的落日,点燃 倾城的云 微暖的秋风,拥抱过 谁的梦 想念的人儿,穿过身体 就像 被光照着的自己 四处有温暖

  • OpenGL光照(冯氏光照模型)

    1、OpenGL最容易理解和实现的就是冯氏光照模型了。冯氏光照模型的主要结构由3个元素组成:环境(Ambient)...

  • 光照-02.光照基础

    现实世界的光照是极其复杂的,而且会受到诸多因素的影响,这是以目前我们所拥有的处理能力无法模拟的。因此OpenGL的...

网友评论

      本文标题:OpenGLES5-光照

      本文链接:https://www.haomeiwen.com/subject/zkkofktx.html