首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

? OpenGL红宝书有关问题

2012-08-02 
?? OpenGL红宝书问题我在运行texture3d.c程序时,运行到glTexImage3D(GL_TEXTURE_3D, 0, GL_RGB, iWidth, i

?? OpenGL红宝书问题
我在运行texture3d.c程序时,运行到
glTexImage3D(GL_TEXTURE_3D, 0, GL_RGB, iWidth, iHeight, iDepth, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
时出现这个错误:
Unhandled exception at 0x00000000 in redbook.exe: 0xC0000005: Access violation reading location 0x00000000.

有人知道是为什么么?附:这个程序是官方网的源程序。

[解决办法]
看下代码呢
[解决办法]
从错误信息看是典型的指针问题。你查一下image指向的图像数据是否正确呢?
[解决办法]
因为glTexImage3D是1.2版本才支持的,而用了glew扩展库,扩展库在使用前需要初始化,不然就会找不到函数指针。

C/C++ code
int main(int argc, char** argv){  glutInit(&argc, argv);  glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);  glutInitWindowSize(250, 250);  glutInitWindowPosition(100, 100);  glutCreateWindow("texture3D");[color=#993300]  GLenum err = glewInit();  if (GLEW_OK != err)  {    return -1;  }[/color]  init();  glutReshapeFunc(reshape);  glutDisplayFunc(display);  glutKeyboardFunc (keyboard);  glutMainLoop();  return 0;  }
[解决办法]
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(250, 250);
glutInitWindowPosition(100, 100);
glutCreateWindow("texture3D");
GLenum err = glewInit();
if (GLEW_OK != err)
{
return -1;
}
init();
glutReshapeFunc(reshape);
glutDisplayFunc(display);
glutKeyboardFunc (keyboard);
glutMainLoop();
return 0;
}

热点排行