我正在使用OpenGL开发一个简单的3D模型加载器,我想添加纹理支持。但是,由于不想不必要地重写映像库,我下载了我在关于纹理映射的OpenGL教程中学到的SOIL (简单的NeHe图像库)。它有一些非常有用的函数,可以处理多次加载图像并将它们传递给OpenGL。
问题是:在NeHe教程代码中,土壤函数
SOIL_load_OGL_texture(char *, param,param,param) 就像承诺的那样,多边形被映射成正确的图片。但是,我已经创建了一个类来加载OBJ和MTL文件(3D模型文件)。当我尝试使用SOIL函数在这个类中加载纹理时,我的程序就崩溃了。
发布于 2012-08-29 17:27:35
在调用该函数时,听起来几乎没有一个有效的OpenGL上下文。
您确定只在初始化opengl上下文之后才调用SOIL吗?(例如,在程序初始化时构造的对象没有静态构造)。检查这一点的一个快速方法是在opengl初始化中放置一个断点,看看是否命中了BP,或者程序是否首先崩溃。
另外,确保SOIL调用与opengl上下文位于同一个线程上。
https://stackoverflow.com/questions/12179464
复制相似问题