(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~)
Cube Mapping应用非常广泛,除了上节中介绍的用来实现天空盒之外,另一个很常见的用途就是实现不规则物体表面的反射效果。
在前面的一篇文章中介绍过平面镜反射的基本原理及d3d11的实现。对于平面反射,由于平面有精确的数学表示,因此反射过程可以通过数学变换的方法直接求得。但对于不规则的物体来说,其表面法线不一,因而不再能够通过统一的数学反射公式来实现了。这一节的主要内容即使用另一种方法来实现不规则物体表面的反射。
有关平面反射的相关实现,请参考平面镜反射的实现。
1. 反射基本原理
物体表面反射的物理原理非常简单,如下图所示:
e点的人眼观察点,O点为场景中一点。由O点发出的光线经过某物体表面P点反射后,被人眼接收。n为p点处的法线。由p点到e点和o点的两向量和法线n之间