繁体   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