D3D11 点光源

本文介绍了如何在D3D11中创建和使用点光源,包括点光源的位置、范围和衰减因子的设置。通过实例展示了点光源的计算过程,包括光线方向向量、距离计算、向量规范化、表面光照因子以及衰减因子的运用,最终实现场景中物体的光照效果。示例代码展示了具体的实现细节。
摘要由CSDN通过智能技术生成

本章节会讲解如何创建一个简单的点光源,它会获取第一个立方的位置并绕着第二个立方体中心旋转。

点光源是定向光源的一个进步,意味着它要进行更多的计算,以及更真实的场景。

点光源因子

当创建一个点光源时要声明一对值。要定义它 位置,范围以及衰减

位置

它由一个叫pos的3d向量组成,第一个值为x轴,第二个为y轴,第三个为z轴。但是点光源没有像定向光源和聚光灯一样的一个方向。由于它是向各个方向发散的,但是必须要有一个位置。

范围

范围由一个叫做range的float值声明。来自点光源的光线不会像平行光一样永远延续。因此,我们必须给它一个范围,在该范围之外的任何像素或物体不会被点亮。

衰减

它有一个名为att的3D向量构成。它三个值分别为att0,att1,att2。衰减Attenuation也叫做衰减因子,用于控制光的强度变化,或随着光源距离的越来越远就越低。衰减计算公式如下:

Attenuation = att0 + (att1 * d) + (att2 * d²)

d表示光源和像素之间的距离。下面解释每个因子的详细信息:

att0 - 常量

由于该值不会被任何值相乘,它叫做常量,也就是说它不会随着像素和光源的距离的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值