本文主要是介绍龙书D3D11章节习题答案(第七章),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
以下答案仅供参考,有错欢迎留言。
Chapter 7 : Lighting
这一章的内容相对来说比较简单,没有什么复杂的步骤,但也需要多尝试得到不同的视觉效果。
1. Modify the lighting demo of this chapter so that the directional light only emits red light, the point light only emits
green light, and the spotlight only emits blue light. Using colored lights can be useful for different game moods;
for example, a red light might be used to signify emergency situations.
在LightApp::LightApp中按要求修改mDirLight, mPointLight, mSpotLight的值即可,具体改哪些要根据实际情况。
例如,修改方向光为红光,是修改ambient为红光还是修改diffuse为红光,还是specular?
视觉效果上,ambient设为红光,山岭红色要深很多且比较均匀,而且拖动鼠标左键绕y轴旋转场景时,山岭的所有面都是红的(原色为绿色)。
再把ambient改回为原先的值,试试设置diffuse为红光,这时由于漫反射还需要根据郎伯余弦定律来决定每个方向反射回光的强度,所以拖动鼠标左键绕y轴旋转场景时,山背向的一面仍然是绿的,且红光照射到的部分红色显然是扩散开的,非均匀,显然修改diffuse比较有现实感,而diffuse呢则次要一点,你如果想把整个场景调得更红一点就可以改diffuse为淡红色。
而specular的值呢,对山岭这样的粗糙表面没什么影响,但影响到光照射到水面上反射过来的颜色,所以还需要specular模拟光照在水面上的效果。
只修改diffuse为红光的效果图如下:
这篇关于龙书D3D11章节习题答案(第七章)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!