D3D11 简单光照

本文介绍了在Direct3D 11中如何实现简单光照,特别是定向光照。讲解了光照类型如环境光、漫反射光、镜面反射光和自发光,以及光源类型包括定向光源、点光源和聚光灯。还详细讨论了法线向量、法线平均技术以及在像素着色器中处理光照的方法。示例代码展示了在D3D11中实现光照的具体步骤。
摘要由CSDN通过智能技术生成

有四种类型光照以及三种光源。本章将介绍使用一个“定向”光源如何实现简单光照。在随后的章节会介绍其他两种类型的光源和镜面光照。

光照对于视频游戏的真实外观和感觉是非常重要的。

由于固定功能管线从directx10中删除了,因此现在需要人工实现光照了。一般地,光照模型越精确,计算量就越大以及越复杂。在视频游戏中,在保持游戏运行在30fps及以上同时,需要找到一种方式来实现光照。当为一个电影做场景模型时,由于每一帧都是提前渲染好的,能够承担只花费数小时而不是好几天来渲染一帧。本节将会学习到如何实现简单光照,定向光照,也叫做平行光照。

当为了找到光击中的像素颜色而做计算时,在颜色变量中的颜色值可能比1大或比0小。为了解决这个问题,就要使用HLSL语言中叫做saturate的函数。

光照类型

可将不同种类的光照分为以下四组:

环境光:

环境光是场景的一部分,它不是由光源直接照射但是也不是漆黑一片,它可以由其他物体反射或折射的光构成。环境光一般来说是场景中的最低量的光。在现实生活中,环境光就是各种界面反射的光线,它会点亮整个空间,但它不是由光源直射造成的。就像之前所说,动画能够承担复杂的光照模型,且能够计算空间中的所有的光线并点亮整个空间,但是在视频游戏中,没有时间来做这些计算,因此,可以使用一个简单的示例来确保场景部分获得一点能够看清所有事物的光即可。为了获得这个值,做了一个叉乘,是由光的环境颜色和材质的漫反射颜色分量进行叉乘。

比如,LightAmbient(0.5,0.5,0.5)*MaterialDiffuse(0.75,1.0,0.5)=(0.375,0.5,0.25)

漫反射光:

当光撞击物体表面时,在屏幕上所

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值