标签:define 结构体 com oat 图片 bsp position intro png
1.《新东方考研英语》 俞敏洪/乱序版 2015年2月第1版
1个list的单词
2.《c++语言程序设计》郑莉 董渊 何江舟 编著 清华大学出版社 2010年7月第4版
复习第十二章异常处理
3.网站https://learnopengl-cn.github.io/intro/
学习光照部分第五节多光源。
心得:
OpenGL
1.多光源
当在场景中使用多个光源时,通常使用以下方法:需要有一个单独的颜色向量代表片段的输出颜色。
对于每一个光源,它对片段的贡献颜色将会加到片段的输出颜色向量上。所以场景中的每个光源都
会计算它们各自对片段的影响,并结合为一个最终的输出颜色。
2.定向光
需要定义一个定向光源最少所需要的变量。我们可以将这些变量储存在一个叫做DirLight的结构体中,
并将它定义为一个uniform
struct DirLight
{
vec3 direction;
vec3 ambient;
vec3 diffuse;
vec3 specular;
};
uniform DirLight dirLight;
接下来将dirLight传入一个有着以下原型的函数
vec3 CalcDirLight(DirLight light, vec3 normal, vec3 viewDir);
函数具体实现
3.点光源
和定向光相似,定义一个用于计算点光源对相应片段贡献,以及衰减的函数。同样定义一个包含了点光
源所需所有变量的结构体。
struct PointLight
{
vec3 position;
float constant;
float linear;
float quadratic;
vec3 ambient;
vec3 diffuse;
vec3 specular;
};
#define NR_POINT_LIGHTS 4
uniform PointLight pointLights[NR_POINT_LIGHTS];
然后带入函数中
3.合并结果
每个光源类型都将它们的贡献加到了最终的输出颜色上,直到所有的光源都处理完了。最终的颜
色包含了场景中所有光源的颜色影响所合并的结果。
标签:define 结构体 com oat 图片 bsp position intro png
原文地址:https://www.cnblogs.com/jingrui/p/9527535.html