gpt4 book ai didi

c - openGL glDrawPixels

转载 作者:太空宇宙 更新时间:2023-11-04 02:36:40 25 4
gpt4 key购买 nike

我是图形编程新手。我正在尝试使用 glDrawPixels 进行绘图,但我的程序没有任何输出。我在网上进行了研究,关于我应该将哪些数据传递给 glDrawPixels,我不断得到不同的答案。我看过 data[w*h*3]data[w*h][3]data[w][h][3] 哪个最好?

到目前为止,我将我的 RGB 值存储在显示函数下:

float pixels[1024][768][3];
int i,j;

//Should give me all red
for (i = 0; i < 768; i++) {
for (j = 0; j < 1024; j++) {
pixels[j][i][0] = 255.0;
pixels[j][i][1] = 0.0;
pixels[j][i][2] = 0.0;
}
}
glDrawPixels(1024,768,GL_RGB,GL_FLOAT,pixels);

我的主程序:

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE);
glutInitWindowSize (1024, 768);
glutCreateWindow (argv[0]);

glutDisplayFunc(display);
glutMainLoop();
return 0;
}

我得到的输出只是一个空窗口,我做错了什么?

提前致谢。

最佳答案

您需要指定您希望像素在视口(viewport) 中的位置(根据您提供的内容,这与您的窗口相同)。

尝试在调用 glDrawPixels 之前调用 glWindowPos2i(0, 0)。这应该将所谓的光栅位置定位在窗口的左下角。

关于您关于声明像素的最佳方式的问题,您建议的任何形式都足够了,因为它们会创建一个传染性内存阵列来存储您的像素数据。您声明的数组维数不同只会影响您对数组进行索引的方式。

关于c - openGL glDrawPixels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36381519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com