3D图形学编程基础-基于Direct3D11-学习记录(二)光照模型的实现

为了让绘制出的物体更接近真实世界,此章引入光照,光照章节不少都是概念论述以及少量的计算方式

和光照有关几个小概念,1,光照:方向,强度,衰弱      2.物体材质:光滑度,折射率,反射率和发光度等;3.顶点法线:我们处理物体被光照是按顶点处理的(绘制物体是按顶点绘制的)顶点法线求法:取所有共享此顶点的面的法线的平均值  

在directx中我们需要知道顶点的法线,法线决定了光照射平面的角度。光线会被应用到每个顶点,并且根据面法线和光照方向的点积去调,光线颜色的强度。那么怎么计算顶点法线呢?下面的图介绍的很清楚了:

   

  

第一部分:

物体受到光照时要考虑的三种现象,

1.环境光(ambient)

现实中在有光情况下就会产生颜色,物体对每种颜色的吸收程度不同,所以产生不同的颜色,环境光公式:

Cambient =Iambient *Mambient(I为照射到物体的光照,M是物体对每种光的吸收率)

2.漫反射光(diffuse)

物体对光照产生的漫反射效果,实际情况中由于物体见面的不光滑,漫反射效果是不一样的,我们这里假设漫反射效果一样:

Cdiffuse = Idiffuse *Mdiffuse * cosθ(I为光照,M是漫反射率,θ是光源方向和顶线法向量夹角)当θ小于0时,没有漫反射

3.镜面反射(specular)

物体对光照产生的镜面反射效果

Cspecular =Ispecular *Mspecular * cosθ(I为光照,M是镜面反射率,θ是反射后光方向和观察点方向夹角) 当θ小于0时,没有镜面反射

第二部分:

光源类型:

1.平行光:模拟太阳光照效果,光只有方向,而且方向不变,没有衰减。

因为平行光没有衰减,计算平行光效果只需要将环境光,漫反射和镜面反射相加即可

Idir =Cambient+

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值