Opengl es 纹理不会加载OpenGL ES 2.0 PowerVR SDK
我目前在使用PVR SDK加载纹理时遇到问题。我知道我的两种纹理都有一个线性样本过滤器。但是,如果纹理加载失败,它将触发我设置的消息。这就是我加载纹理的方式Opengl es 纹理不会加载OpenGL ES 2.0 PowerVR SDK,opengl-es,opengl-es-2.0,powervr-sgx,Opengl Es,Opengl Es 2.0,Powervr Sgx,我目前在使用PVR SDK加载纹理时遇到问题。我知道我的两种纹理都有一个线性样本过滤器。但是,如果纹理加载失败,它将触发我设置的消息。这就是我加载纹理的方式 const unsigned int NoTex = 3; // PVR texture files const char* const TextureFile[NoTex] = { "n_Map1.pvr", "DUDV_map.pvr", "Skybox.pvr"}; 这是我加载纹理的方法 bool OGL
const unsigned int NoTex = 3;
// PVR texture files
const char* const TextureFile[NoTex] =
{ "n_Map1.pvr",
"DUDV_map.pvr",
"Skybox.pvr"};
这是我加载纹理的方法
bool OGLES2Skybox2::LoadTextures(CPVRTString* const pErrorStr)
{
for(int i = 0; i < 2; ++i)
{
if(PVRTTextureLoadFromPVR(TextureFile[i], &TextureID[i]) != PVR_SUCCESS){
*pErrorStr = CPVRTString("ERROR: Could not open texture file ") + TextureFile[i];
return false;
}
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
}
// Load cube maps
if(PVRTTextureLoadFromPVR(TextureFile[2], &TextureID[2]))
{
*pErrorStr = CPVRTString("ERROR: Could not open texture file ") + TextureFile[2];
return false;
}
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
return true;
}
对不起,是我的错。原因是我使用了PVR FileWrap工具,因为内容已经绑定到应用程序,并且自动生成了一个.cpp文件,所以我忘记了将.cpp文件添加回项目中。PVR文件的头可以有两种类型-新头和旧头。您可以尝试以两种方式重新保存纹理。有关更多信息,请在谷歌上搜索PVRTextool另存为旧版
bool OGLES2Skybox2::InitView()
{
// Sets the clear colour
glClearColor(0.6f, 0.8f, 1.0f, 1.0f);
// Enables depth test using the z-buffer
glEnable(GL_DEPTH_TEST);
CPVRTString ErrorStr;
/*
Load textures
*/
if(!LoadTextures(&ErrorStr))
{
PVRShellSet(prefExitMessage, ErrorStr.c_str());
return false;
}
...
}