我正在嘗試爲我正在處理的小遊戲做一個簡單的文本呈現引擎。我試圖遵循各種教程,但我從未在Y座標上獲得過正確的位置。轉換freetype上的字形時出現奇怪的轉換
現在我下面這個教程: http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Tutorial_Text_Rendering_01
我知道字形正在正確加載,因爲我手動檢查他們。 問題是字形現在這個樣子:
白色的東西應該是我試圖繪製字形,但出現嚴重扭曲。
我認爲這個問題是在轉型,它看起來像這樣:
float x2 = x + g->bitmap_left * sx;
float y2 = -y - g->bitmap_top * sy;
float w = g->bitmap.width * sx;
float h = g->bitmap.rows * sy;
GLfloat box[4][4] = {
{x2, -y2 , 0, 0},
{x2 + w, -y2 , 1, 0},
{x2, -y2 - h, 0, 1},
{x2 + w, -y2 - h, 1, 1},
};
因爲它並沒有真正像不旋轉的轉變,我認爲它旋轉的字形和擴展他們的怪異方式。
但是,如果我嘗試使用GLM這樣
glm::mat4 MVP(glm::scale(glm::rotate(glm::translate(glm::mat4(1.0f), glm::vec3(x2, y2, 0.0f)), 0.0f, glm::vec3(0.0f, 0.0f, 1.0f)), glm::vec3(w, h, 0.0f)));
串看起來幾乎正確的,但它不具備正確的Y位置。
你能指點我正確的方向嗎?