2013-04-22 4 views
1

У меня возникают проблемы с загрузкой текстуры с помощью PVR SDK. Я знаю, что обе мои текстуры имеют линейный фильтр выборок. Однако он вызывает мое сообщение, которое я установил, если сбой текстурной нагрузки. Это, как я загрузить свои текстуры в.Текстура не загружается OpenGL ES 2.0 PowerVR SDK

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; 
} 

и после я называю LoadTextures в моем методе initView()

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; 
     } 
    ... 
    } 
+1

Могут быть 2 типа заголовков PVR-файлов - новые и устаревшие заголовки. Вы можете попробовать повторно сохранить текстуры в обоих направлениях. Пожалуйста, зайдите в Google для «PVRTextool save as legacy» для получения дополнительной информации. – keaukraine

ответ

0

Извините, моя вина. Причина в том, что я использовал инструмент PVR FileWrap, и поскольку контент уже привязан к приложению и автоматически сгенерировал файл .cpp, я забыл добавить обратно .cpp обратно в проект.

Смежные вопросы