【发布时间】:2021-08-27 04:59:54
【问题描述】:
我对理解和使用 glBitmap 函数有疑问。 我从this example 开始并尝试绘制一个 40x40 的“位图”并避免使用situation like this 我试过这个:
40 x 40 是 1600 位 -> 所以我需要 200 字节的信息 (1600/8)
GLubyte rasters[ 200 ] =
{
0xff, 0xff, //.. and so on 200 times
};
// main code calling the function below
void display(x, y)
{
float size = 40.0;
glColor3f( 0.0, 1.0, 0.0 );
glRasterPos2i(x, y );
glBitmap(size, size, 0.0, 0.0, 0.0, 0.0, rasters );
}
我希望绘制一个 40 x 40 像素的全绿色正方形。原来我遇到了unwanted situation,而不是广场的肮脏上部。似乎raster[200] 仅足以绘制 32 x 32 位图。所以我想问的是:
- 我的数学有什么问题(或理解示例)?
- 我需要在我的光栅中绘制 40x40 的东西(为什么,下一步我需要绘制一些玩比特的东西,所以现在如何定位像素 (x,y))
- 最终目标是从 GLubyte 数组开始绘制一些东西,有没有办法用 glTexImage2D 做同样的事情? (我尝试关注this suggestion,但失败了)
【问题讨论】:
-
对不起,我没有回答你的问题,但我建议你不要尝试理解这个 API,因为它在很多年前就被弃用了。尝试使用现代 OpenGL。
-
@MichaelIV 你能指出正确的方向告诉我一个等效的“现代”OpenGL 函数吗?
-
现代 API 中没有这样的功能,因为它在即时模式下不起作用。您必须创建纹理、着色器程序、一些几何体(在您的情况下为四边形)和渲染。是的,它比旧的具有更多的手动设置,但它也为您提供了更多的功能和灵活性来渲染东西。你可以从这里开始opengl-tutorial.org/beginners-tutorials/…
标签: opengl bitmap byte raster opengl-compat