1

現在、PVR 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;
}

initView method() で LoadTextures を呼び出した後

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

1 に答える 1

0

申し訳ありませんが、私のせいです。その理由は、PVR FileWrap ツールを使用したことと、コンテンツが既にアプリケーションにバインドされていて、.cpp ファイルが自動的に生成されていたため、.cpp をプロジェクトに戻すのを忘れていたためです。

于 2013-04-24T18:54:02.513 に答える