Introduction to 3D Game Programming with Directx12 Chapter11

(一)、习题答案

1、EXERCISE3

  本习题是模拟不使用stencil的情况下物体会绘制到反射面的后面,但是我们启用了深度测试,因此深度测试是有效的。

这里写图片描述

2、EXERCISE4

  本习题是在不启用stencil计数时会导致的Bouble Blending。这会导致局部阴影被多次绘制出现黑斑。

这里写图片描述

3、EXERCISE5

这里写图片描述

  这是第一种情况下绘制的场景,反射的骷髅浮在了墙上(为了简单,我们没有单独对墙进行处理,这导致与墙在同一层的非反射骷髅绘制出现了不正常的现象),原因是,在绘制墙时我们禁用了深度,墙的深度信息没有写入到深度缓冲区,所以在后续绘制物体时就像之前没有绘制任何场景一样,会覆盖掉(非反射骷髅也一样,后写入的像素颜色会覆盖之前写入的颜色导致绘制错误)。

这里写图片描述

  这是启用了深度测试,结果则是正常的。

4、EXERCISE6

  本题有一点点小错误,reflected teapot 应该是 reflected skull。不对三角形环绕方向进行处理会导致三角面法线反向,得到的光照肯定是不正确的。如下:

这里写图片描述

5、EXERCISE7

  为了简单,我们将bmp图像转成了纹理数组。然后用时间值对纹理数据进行采样形成动画。本题中我们没有绘制其他场景,因些最终结果与书上截图有些不一样,但原理是一样的。

这里写图片描述

6、EXERCISE8

  本题处理思路与流程与提示一致,结果如下:

这里写图片描述

7、EXERCISE9

  本题也是用颜色叠加的方法处理,结果如下:

这里写图片描述

8、EXERCISE11

  本题将地板也放到反射层里绘制即可。

这里写图片描述

9、EXERCISE12

  去掉偏移值就会出现z-fighting问题,这是由于硬件精度引起的问题。

这里写图片描述

(二)、习题源码下载

  本章第七题使用到的资源太大了,csdn给的空间又太小,为了给以后的文章附件留点空间,第七题用到的图片资源不上传,如果读者需要,请留言留邮件联系索取。

第11章习题源码下载 习题源码

猜你喜欢

转载自blog.csdn.net/yolon3000/article/details/80012156