美文网首页OpenGL学习笔记
【四十九,投光物-02点光源】

【四十九,投光物-02点光源】

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

点光源

我们生活中最常见的电灯泡就是点光源,点光源的特点:
1. 在空间中有一个位置;
2. 向所有方向发光;
3. 光线随距离增加逐渐变暗;

在前面教程中使用的简单的点光源,只是没有实现随着距离的增加光线变暗的功能。

衰减

随着光线穿越距离的变远使得亮度也相应减少的现象,称之为衰减(Attenuation)
衰减有两种实现方式:
1. 光亮度的减少是线性的,这样的方式体现的效果比较假;
2. 开始的时候减少的非常快,之后随着距离的增减,减少的速度会慢下来;

计算公式

光衰减计算公式.png

为了计算衰减值,定义了三个可配置项:常数项Kc,一次项Kl和二次项Kq

  • 常数项:保证分母大于分子,一般取值为1;
  • 一次项用于与距离值相乘,以线性的方式减少亮度;
  • 二次项用于与距离的平方相乘,为光源设置一个亮度的二次递减。二次项在距离比较近的时候相比一次项会比一次项更小,但是当距离更远的时候比一次项更大。

实现衰减

修改片段着色器中的光源的定义,加入三个系数的定义:

struct Light
{
    vec3 position;
    
    vec3 ambient;
    vec3 diffuse;
    vec3 specular;
    
    float constant;
    float linear;
    float quadratic;
};
uniform Light light;

衰减计算:

//Attenuation 衰减
float distance = length(light.position - FragPos);
float attenuation = 1.0f / (light.constant + light.linear*distance + light.quadratic*(distance*distance));

vec3 result = ambient*attenuation + diffuse*attenuation + speclular*attenuation;
color = vec4(result, 1.0f);

在代码中设置衰减系数

// 衰减系数
m_pShader->setFloat("light.constant", 1.0f);
m_pShader->setFloat("light.linear", 0.09);
m_pShader->setFloat("light.quadratic", 0.032);

运行效果

衰减系数为0 VS 衰减系数非0

点光源衰减代码

相关文章

  • 【四十九,投光物-02点光源】

    点光源 我们生活中最常见的电灯泡就是点光源,点光源的特点:1. 在空间中有一个位置;2. 向所有方向发光;3. 光...

  • 【四十八,投光物-01定向光】

    投光物 投光 : 光源把光照射到物体上; 定向光 当光源被设置为无限远时,它被称为定向光(Directional ...

  • 重新自学学习openGL 之光照投光物

    概念 将光投射(Cast)到物体的光源叫做投光物(Light Caster) 分类 定向光(Directional...

  • 投光物

    一个光源把光投射到物体上,叫做投光(Light casters)。 定向光 当一个光源很远的时候,来自光源的每条光...

  • 阴影的生成

    Light Source光源:分为点光源和面光源(下面会详细介绍)occluder遮挡物umbra本影:光完全找不...

  • OpenGL ES for Android多光源

    在学习过光照,材质,投光物之后,现在我们把这些效果结合起来。我们显示这样的效果:在阳光照射下,有几个点光源,同时有...

  • LearnOpenGL 投光物

    定向光 当一个光源很远的时候,来自光源的每条光线接近于平行。这看起来就像所有的光线来自于同一个方向,无论物体和观察...

  • 设计基础--色彩构成(色彩与光)

    色彩与光的关系 光源与光源色 光与色 物体色

  • 详解Threejs中的光源对象

    光源的分类 AmbientLight(环境光),PointLight(点光源),SpotLight(聚光源) 和 ...

  • 小白学PS的笔记~今日

    色彩模式 1,光源光:RGB模式 反射光:不发光物,CMYK模式 2,单色光:三基色光(红,绿,蓝,RGB)...

网友评论

    本文标题:【四十九,投光物-02点光源】

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