第二十九章 颜色总结

这篇博客详细介绍了冯氏光照模型,包括环境光照、漫反射光照和镜面光照的计算过程。在漫反射光照中,讲解了如何计算法向量、光源方向向量及其点乘影响值。镜面光照部分解释了观察方向、反射向量的计算,并讨论了高光反光度的设定。整个光照模型结合物体颜色和光源属性,用于生成逼真的渲染效果。
摘要由CSDN通过智能技术生成

创建一个白色光源,将其和物体颜色值相乘,得到的是物体被人所感知的颜色。

一个物体作为被投光对象,另一个物体代表光源的位置。冯氏光照模型:环境,漫反射,镜面光照组成

环境光照添加到场景里:用光的颜色乘以一个很小的常量环境因子,再乘以物体的颜色,然后将最终结果作为片段的颜色:
float ambientStrength = 0.1;
vec3 ambient = ambientStrength * lightColor;

vec3 result = ambient * objectColor;
FragColor = vec4(result, 1.0);
漫反射光照:需要指定光纤和片段的角度,使用法向量:两个单位向量夹角越小,点乘越接近1。则角度越大,光对片段的影响越小。
1.法向量:垂直于片段的向量
2.定向的光纤:是光源位置和片段位置之间向量差的方向向量。
计算漫反射光照:首先在片段着色器中声明uniform vec3(作为光源的位置),其次使用lightingShader.setVec3进行赋值,最后需要片段的世界位置:
通过把顶点位置属性乘以模型矩阵,就可以变换到世界空间坐标中了。下面需要在片段着色器中计算光照:
首先计算光源和片段位置之间的方向向量,把法线和最终的方向向量都进行标准化:
vec3 norm = normalize(Normal);
vec3 lightDir = normalize(lightPos - FragPos);————光源位置减去片段位置得到光源指向
其次,通过对法向量norm和光源的方向向量lightDir进行点乘&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值