opengl 不同光源下三种反射光的计算

光源种类

平行光源:如太阳光源,类似于灯源在无穷远处,照射物体的各个地方光照强度相同,光照方向也相同。

点光源:离物体有限距离,且灯光会随着距离衰减,物体表面光照方向不同。

聚光灯:如 手电筒照在一个圆圈上,周围衰减。(这里光照计算暂不介绍)

环境光ambient

上一篇给大家讲了,opengl光照模型得设置 灯源环境光  材质环境光。物体反射的环境光为这两者的乘积, 2种光源计算方法一

vec4 ambientColor=U_LightAmbient*U_AmbientMaterial;

漫反射光diffuse

1、平行光源

     

由图可见,太阳是平行光源,我们的反光照强度与入射光与法向量的夹角有关,因此可以利用向量AB 和 AN的乘积(绿色箭头向量,入射方向的反方向)来表示反射光大小,当然 最小值为0,即没有反射光。

unitform vec4 U_ligthtPos;
uniform vec4 u_diffuseLightColor;
uniform vec4 UdiffuseMaterial;

varying vec4 V_diffuseColor;

void main(){

vec3 L = U_lightPos.xyz;
L = normalize(L);

vec3 n = normalize(mat3(NM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值