目录
一、简述 Cubemap
Cubemap 是一种自从 Direct3D 7 开始就存在的古老技术,其一般用于环境映射贴图、点光源的 ShadowMap 等技术场景。
Cubemap 工作原理大体就是先把 Cubemap 当成 RenderTarget ,把场景渲染到 Cube 的 6 个面上,然后再把 Cubemap 当成 Texture 等待被使用。其中把场景渲染到 Cubemap 的步骤实际上就是把场景中需要渲染的每个物体分别渲染到 Cube 的 6 个 Face 上,这样每一个 Cube Face 都相当于是一个 Camera ,渲染物体的时候都需要变换到对应的 Camera 中, 也就是乘以其对应 View Matrix。今天我们就来说说这 6 个 View Matrix 的制作。
首先说明一下 Cubemap 6 个 Face 的顺序是 +X/-X /+Y/-Y/+Z/-Z,其中 XYZ 的方向和 D3D 的坐标轴一样(如图)。
二、制作 View Matrix
1. 制作 +Z 的 View Matrix
我们仔细观察可以发现选择 Cubemap 中任意一个面,通过旋转都可以变换成其他的 5 个面&#x