DirectX11编程8 红龙书第七章练习

环境:VS2017  语言:C++

 

第七章的习题量少,也比较简单,不过我们还是来仔细研究一下

 

先附上工程的链接:https://github.com/anguangzhihen/Dx11

1.这边的程序都是以win64运行的;

2.如果没有找到Common脚本,请到工程/属性/VC++目录中添加包含目录“../Common”;

3.如果没有找到libs,请到工程/属性/链接器添加附加库目录“../Common/libs”

4.所有的练习都在工程中,全局搜索“练习7”关键字就能找到,想要运行打开注释即可。

 

有任何错误,请大佬们指正。

 

1.在Lighting Demo中改变光源的颜色,使直射光为红色、点光源为绿色、聚光灯为蓝色,查看效果?

答:

 

2.在Lighting Demo中改变高光的指数参数,查看效果?

答:

高光使用的指数来自于Material的a位参数,而rgb位仍代表的是颜色。该位值越大,高光衰减的就越厉害。

 

3.实现卡通渲染效果?

答:

 

该解答在LightHelper.fx中,根据书上提供的公式来实现就好。最终效果真的特别有感觉。

 

4.实现聚光灯可以动态改变其椎体范围的功能?

答:

if (GetAsyncKeyState('1') & 0x8000)
{
	mSpotLight.Spot += 1;
}
if (GetAsyncKeyState('2') & 0x8000)
{
	mSpotLight.Spot -= 1;
}

if (mSpotLight.Spot < 50.0f)
	mSpotLight.Spot = 50.0f;
else if (mSpotLight.Spot > 1000.0f)
	mSpotLight.Spot = 1000.0f;

 

通过上一章我们知道聚光灯原理实际和高光一样,所以我这边动态改变的高光计算时指数的大小,指数越大衰减的越厉害灯照亮范围就越小,指数越小衰减的越弱照亮范围就越大。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值