OpenGL学习笔记(十)

这篇博客详细介绍了OpenGL的光照模型,包括环境光、散射光、镜面光和发射光的概念。文章强调了单位法线的重要性,并讲解了如何启用光照、创建光源、设置光照模型以及定义材料属性的步骤。此外,还提及了多光源对性能的影响和镜面颜色的处理方式。
摘要由CSDN通过智能技术生成

光照

OpenGL的光照模型把光分成4种独立的成分:环境光、散射光、镜面光和发射光。

环境光(ambient light)

环境光并不来自任何特定的方向。它来自某个光源,但光线却是在房间或场景中四处反射,没有方向可言。

散射光(diffuse light)

OpenGL的散射光具有方向性,来自于一个特定的方向,它根据入射光线的角度在表面上均匀地反射开来。因此,如果光线直接指向物体表面,它看上去就更亮一些。如果光线是从一个较大的角度照射到物体表面上,它看上去就显得暗一些。

镜面光

和散射光一样,镜面光也具有很强的方向性,但它的反射角度很锐利,只沿一个特定的方向反射。高强度的镜面光趋向于在它所照射的表面上形成的一个亮点,称为镜面亮点。

为了在场景中增加光照,需要执行如下步骤:

1.   定义每个物体的每个顶点的法线向量。这些法线决定了物体相对于光源的方向

2.   创建和选择一个或多个光源,并设置它们的位置

3.   创建和选择一种光照模型,它定义了全局环境光的层次以及观察点的有效位置

4.   定义场景中物体的材料属性

单位法线

物体的法线向量决定了它相对于光源的方向。对于物体的每个顶点,OpenGL使用法线判断这个顶点从每个光源接收的光线数量。为了进行正确的光照计算,表面法线必须为单位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值