Directx11教程十之LighhtMap(光照贴图)

首先贴出本次教程的构架图,其实上第九个教程是一样的结构






第一,LightMap(光照贴图)的简介和概念

     LightMap经常是用来模拟在照射物体表面的光,可以比直接用光节省效率,可以说LightMap就是模拟光暗程度,大名鼎鼎的UE4游戏引擎导入的3D模型中就有两层UV坐标,第一层为基础纹理,第二层UV就是LightMap(光照贴图的),UE4的构建功能就是生产静态阴影,这个静态阴影是不会随着游戏中的光改变而改变的,这个静态阴影效果就是光照贴图做出来的,总之一句话,光照贴图可以模拟明暗效果(阴影,聚光灯,等等).
来看看光照I贴图一般长什么样子,



不难看出颜色一般是黑,白,灰色三种颜色 ,假设光照贴图上的每个像素颜色为Color(r,g,b,a);
则一般下 0.0<=r=g=b<=1.0
给出我的PixelShader
Texture2D ShaderTexture[2];  //纹理资源数组
SamplerState SampleType:register(s0);   //采样方式


float4 PS(VertexOut outa) : SV_Target
{
	float4 BasePixel;
    float4 ColorPixel;
	float4 color;
    BasePixel = ShaderTexture[0].Sample(SampleType, outa.Tex);
	ColorPixel= ShaderTexture[1].Sample(SampleType, outa.Tex);
	color = BasePixel*ColorPixel;
	color = saturate(color);
	return color;
}

我的第一张纹理图为基础纹理图:

第二张为光照贴图,为上面给出的黑白色相间的纹理图.

程序运行结果为:

这样聚光灯的效果是不是就出来了,明暗相间,哈哈哈哈.


下面是我的源代码链接:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值