OpenGL 光照

一、颜色

        现实世界中看到物体的颜色并不是物体本身的颜色而是,物体将光照颜色(白色)吸收过后反射出来的颜色。所以可以理解为正常情况下(全局白色光照,全局的含义是光是四面八方全方位的光照)物体颜色就是物体的对颜色的反射系数。

        由于物体的反射系数是不变的。所以当光照颜色变化时,能被放射的颜色就变了,所以看到的物体颜色变化了。

        物体看到颜色 = 光照颜色*物体反射系数

glm::vec3 lightColor(1.0f, 1.0f, 1.0f); //光照颜色
glm::vec3 toyColor(1.0f, 0.5f, 0.31f);  //物体反射系数,即物体默认的颜色
glm::vec3 result = lightColor * toyColor; // = (1.0f, 0.5f, 0.31f); //最终看到的物体颜色

二、基础光照

        由于现实世界中光是能够反射,折射,这样就会导致光照是很复杂的,由各种光线直接照射到物体,经过N(1~无限)次物体反射间接照射到物体上的。如果要用计算机模拟这个过程是计算量很大也很难的。所以为了简化计算中大部分都是用的是经验模型的方案较多。常见的有 1、Phong Lighting Model  2、Blin Phong Lighting Model 3、Physically Base Rendering (PBR) 。

 2.1 Phong Lighting Model (冯氏光照模型)

        Phong模型主要由三个部分组成 环境光(Ambient)、漫反射光(Diffuse)、镜面光(Specular)。

        环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值