我想要爲我的GUI渲染使用正射投影。當我使用我的常規變換矩陣繪製網格時,我得到了我期望的結果,但是當我使用正交投影時,我什麼也得不到。我的透視投影也很好。我的正矩陣:OpenGL:正投影
public Matrix4f initOrthographic(float left, float right, float bottom, float top, float near, float far)
{
m[0][0] = 2.0f/(right - left); m[0][1] = 0; m[0][2] = 0; m[0][3] = (left + right)/(left - right);
m[1][0] = 0; m[1][1] = 2.0f/(top - bottom); m[1][2] = 0; m[1][3] = (bottom + top)/(bottom - top);
m[2][0] = 0; m[2][1] = 0; m[2][2] = 2.0f/(near - far); m[2][3] = (far + near)/(far - near);
m[3][0] = 0; m[3][1] = 0; m[3][2] = 0; m[3][3] = 1;
return this;
}
我不能爲我的生活找出什麼是錯的。我將這個矩陣乘以正則變換,然後將該矩陣乘以着色器中的頂點位置。有任何想法嗎?如果需要,我可以發佈更多的代碼/信息。
我想我只是發現了這個問題。我在頂部0和底部720,當我把這些值翻到720頂部和0底部它工作得很好。唯一的是我想左上角是(0,0)。有沒有什麼辦法可以做到這一點,或者我堅持左下角是(0,0)?
看起來您的矩陣按行排列,而列主矩陣通常用於OpenGL。 –
我所有的其他矩陣都是以這種方式完成的,它們工作得很好。對不起,如果我不完全理解,我不知道我在做矩陣時做了什麼。 – redonkulasman
你有沒有考慮檢查你的視口設置? –