簡體   English   中英

LWJGL OpenGL使用紋理圖集UV坐標繪制文本

[英]LWJGL OpenGL drawing text using texture atlas UV coordinates

我正在嘗試使用紋理四邊形在我的OpenGL程序中繪制文本。 我的紋理尺寸為256x32,每個字符大約6個像素大。 (每個“行”有42個字符,有5行。)

當我們為左上角的字符生成UV坐標時,我這樣做:

float textureDelta = 1.0f / 42.0f //0.0238
float u = 0;
float v = 0;

glBegin(GL_QUADS);
glTexCoord2f(u,1-v); glVertex2f(0,0);
glTexCoord2f(u+textureDelta, 1-v); glVertex2f(16,0);
glTexCoord2f(u+textureDela, 1-v + textureDelta); glVertex2f(16,16);
glTexCoord2f(u, 1-v+textureDelta); glVertex2f(0,16);
glEnd();

我得到的問題是我的V坐標似乎完全錯誤,並且V坐標似乎總是在底部,我該如何解決?

另外,我該如何處理空格?

對於u坐標,看起來不錯。 但是,由於在v方向上只有5行,因此您需要基於行數計算出的該坐標的不同增量:

float uDelta = 1.0f / 42.0f;
float vDelta = 1.0f / 5.0f;

glTexCoord2f(u, 1.0f - v); ...
glTexCoord2f(u + uDelta, 1.0f - v); ...
glTexCoord2f(u + uDelta, 1.0f - v + vDelta); ...
glTexCoord2f(u, 1.0f - v + vDelta); ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM