OpenGL的环境光、点光源、聚光灯、方向光、材质的定义。

一个模型受光照后最终呈现的颜色,由三种因素决定:光的种类、物体表面的材质

对以上三种影响因素进行分类:常见的光被分为4种、物体表面的材质通常受3种因素影响(漫反射、镜面反射、表面纹理)。

光的定义有很多参数可以调整,而且一个三维场景中还可以放入很多种类的光、影响材质的漫反射和镜面反射也有很多参数可以调整。所以,最终呈现出的效果是可以有很多种情况的。

4种常见光分别为:

  • 环境光:影响因素为强度颜色。这种类型的光源来自空间中的任何地方,并以相同的方式照亮所有物体。
  • 点光源:影响因素为强度颜色位置衰减因素
  • 聚光灯:影响因素为强度颜色位置衰减因素方向夹角。(聚光灯就是在点光源的基础之上加上了方向和夹角的概念)
  • 方向光:影响因素为颜色方向强度

在这里插入图片描述

下面基于joml(Java OpenGL Math Library)对上面的光进行抽象:

在对各种光进行抽象时,有一些属性被定义为向量,有一些属性被定义为float类型的常数,是由于光的数学定义。

环境光

环境光就是一个三维的向量Vector3f类型的变量,可以直接传给着色器程序。

点光源
public class PointLight {
   

	//点光源的颜色
    private Vector3f color
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值