昨天开始在我的dx小demo里边加ui,其实十分顺利的加上了……然而出了点小问题,ui无法显示在窗口的正中间……只好发到了微信群里边问了下。同事说了四个字,“正交投影”……当时我的表情是这样的:( ⊙ ▽ ⊙ )。然而同事说完就不见了!然而经过一晚上我忽然悟出了什么!然而就在我今天兴高采烈发信息说我悟出来的时候同事说什么鬼!然后给了我一个函数 D3DXMatrixOrthoLH ……
但是我还是不懂……因为这个函数。。。貌似也并没有什么用啊啊啊。。。所以我把它写出来。。。万一以后懂了呢。。了呢。。呢。。。
问题描述
用dx做一个界面
问题分析
大方向上应该有多种:
1. 界面专用的api。。。
2. 普通的顶点缓存,用两个三角形面片来模拟,然后变换到恰到的世界坐标(摄像机面前)
3. 刚看到还没开始实际用的点精灵,赶脚貌似也可以试试。不过肯定也要变换世界坐标同上
现在先只考虑第一种……所以以下写的所有内容都是第一种的变换世界坐标问题的解决方案
方案一
这是我第一个眼想到的方案。。。
步骤:
1. 将顶点缓存设置为 z = 0.f 平面上, xy遍历正负1一遍的那四个顶点
2. 向z轴平移 z_near + 0.00001f 的矩阵 trans_mat
3. 观察矩阵的逆矩阵 inv_view_mat
4. world_mat = trans_mat * inv_view_mat
方案一 *
后来才想起来。