我开始了一个新项目,想要在其中使用多重纹理。我以前做过多重纹理,并且我的OpenGL版本支持它。
在头文件中我有:
GLuint m_TerrainTexture[3];//heightmap, texture map and detail map
GLuint m_SkyboxTexture[5]; //left, front, right, back and top textures
PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB;
PFNGLACTIVETEXTUREARBPROC glActiveTexture;
在构造函数中,我有以下内容:
glActiveTexture = (PFNGLACTIVETEXTUREARBPROC) wglGetProcAddress((LPCSTR)"glActiveTextureARB");
glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC) wglGetProcAddress((LPCSTR)"glMultiTexCoord2fARB");
if(!glActiveTexture || !glMultiTexCoord2fARB)
{
MessageBox(NULL, "multitexturing failed", "OGL_D3D Error", MB_OK);
}
glActiveTexture( GL_TEXTURE0_ARB );
...
这会显示一个名为“多重纹理失败”的消息框,以及glActiveTexture的内容为0x00000000。
当执行glActiveTexture( GL_TEXTURE0_ARB );时,我遇到了访问冲突错误。
我正在实现MVC图示,因此所有这些都在我的地形视图类中。