【发布时间】:2014-11-13 02:19:56
【问题描述】:
我正在尝试实现正交相机。当我使用 DirectX 时,可以通过某种方式确定正交投影矩阵。一个普通的带纹理的矩形可能表示如下:
auto l = -screenWidth / 2 + rectPosition.X;
auto r = l + rectWidth;
auto t = screenHeight / 2 - rectPosition.Y;
auto b = t - rectHeight;
float vx [] =
{
l, t, 0, 1, 0, 0, // x y z w u v
r, b, 0, 1, 1, 1,
l, b, 0, 1, 0, 1,
l, t, 0, 1, 0, 0,
r, t, 0, 1, 1, 0,
r, b, 0, 1, 1, 1,
};
可以这样设置正交矩阵:
ortho(screenWidth,screenHeight,0.1f,1000.f);
我可以通过将相机的投影矩阵设置为正交矩阵来获得可见图像,而无需更改相机的更新代码。 所以,我认为这种方法必须奏效。但我看到的只是黑屏。该怎么办?
【问题讨论】:
标签: opengl