?? 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扩展库,扩展库在使用前需要初始化,不然就会找不到函数指针。
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;
}