【四十五,光照-材质04使用变化的光属性】

光属性随时间变化

目前为止,我们使用的是固定的光源颜色照射物体,改变的是光的颜色强度,并没有影响物体的真实颜色。通过上节将光属性的封装现在我们可以很容易的访问光的属性了,我们可以随着时间改变它们的颜色来获得一些不同的效果。

如何改变光的属性呢?之前我们一直用的是singlfwGetTime函数来做随着时间改变一些属性值得方法,这次,我们依旧使用这两个函数随着时间的改变简单的改变光源的颜色:

    glm::vec3 lightColor;
    lightColor.x = sin(glfwGetTime() * 2.0f);
    lightColor.y = sin(glfwGetTime() * 0.7f);
    lightColor.z = sin(glfwGetTime() * 1.3f);
    
    // 设置光源的属性
    m_pShader->setVec3("light.position", lightPos);
    m_pShader->setVec3("light.ambient", lightColor*glm::vec3(0.5f));
    m_pShader->setVec3("light.diffuse", lightColor*glm::vec3(0.2f));
    m_pShader->setVec3("light.specular", 1.0f, 1.0f, 1.0f);

运行效果

随机截取两个时间点的运行效果:


运行效果01
运行效果02

随机光源颜色代码

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容