美文网首页OpenGL学习笔记
【四十,光照-光照基础_03镜面反射光照】

【四十,光照-光照基础_03镜面反射光照】

作者: Woodlouse | 来源:发表于2019-12-05 23:06 被阅读0次

镜面反射光照

镜面光照

依赖因素:

  1. 光的方向向量;
  2. 物体的法向量;
  3. 观察者的观察方向;

计算过程

  1. 计算反射向量;
  2. 计算视线向量和发射向量的夹角,夹角越小,镜面光的作用越大;

观察向量的计算
使用观察者世界空间位置和片段位置来计算

实现

镜面光照的实现主要是修改片段着色器,在片段着色器中:

  • 加入观察者位置,以摄像机位置为观察者位置
uniform vec3 viewPos;
  • 在片段着色器中计算观察者视线方向,光线反射向量,两者之间的夹角,根据夹角值计算光线对物体的影像
    //Specular
    float specularStrength = 0.5f;
    vec3 viewDir = normalize(viewPos - FragPos);
    vec3 reflectDir = reflect(-lightDir, Normal);
    float spec = pow(max(dot(viewDir, reflectDir), 0.0), 128);
    vec3 speclular = specularStrength * spec * lightColor;

运行效果

镜面反射

这个效果图和文章示例中的差很远呢,看不到一个比较亮的光斑


镜面反射

相关文章

  • 【四十,光照-光照基础_03镜面反射光照】

    镜面反射光照 依赖因素: 光的方向向量; 物体的法向量; 观察者的观察方向; 计算过程 计算反射向量; 计算视线向...

  • OpenGLES5-光照

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

  • LearnOpenGL 基础光照

    光照-冯氏光照模型 环境 ambient 漫反射 diffuse 镜面反射 specular 环境光照(Ambie...

  • 光照-02.光照基础

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

  • 光照-07.复习

    在你这几个教程中,学习了有关颜色,冯氏光照模型(包括环境,漫反射,镜面反射光照),对象材质,可配置的光照属性,漫反...

  • LearnOpenGL 概念词汇表

    在你学过的最后几个教程中,你学习了有关颜色,冯氏光照模型(包括环境,漫反射,镜面反射光照),对象材质,可配置的光照...

  • OpenGL ES 光照计算

    光照基础 1.环境光照(ambient) 2.漫反射光照(diffuse) 3.镜面光照(specular) 光照...

  • OpenGL学习26——Blinn-Phong光照模型

    Blinn-Phong Shading Model 冯氏光照模型虽然能很好且高效的模拟光照,但是模型的镜面反射在特...

  • 【四十一,光照-光照基础_04习题移动光源】

    习题 目前,我们的光源时静止的,你可以尝试使用sin和cos函数让光源在场景中来回移动,此时再观察光照效果能让你更...

  • OpenGL ES--关于光照计算

    光照基础 环境光照 漫反射光照 镜面光照 image.png 光照特性 发射光:由物体自身发光。 环境光:就是在环...

网友评论

    本文标题:【四十,光照-光照基础_03镜面反射光照】

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