सभी को नमस्कार, मैं OpenGL का उपयोग करके एक बनावट (सामान्य मानचित्र) लोड करने का प्रयास कर रहा हूं।

GLuint loadTexture(const char* fileName) {
    GLuint textureID;
    glGenTextures(1, &textureID);

    // load file - using core SDL library
    SDL_Surface* tmpSurface;
    tmpSurface = SDL_LoadBMP(fileName);
    if (tmpSurface == nullptr) {
        std::cout << "Error loading bitmap" << std::endl;
    }

    // bind texture and set parameters
    glBindTexture(GL_TEXTURE_2D, textureID);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tmpSurface->w, tmpSurface->h, 0,
        GL_BGR, GL_UNSIGNED_BYTE, tmpSurface->pixels);
    glGenerateMipmap(GL_TEXTURE_2D);

    SDL_FreeSurface(tmpSurface);
    return textureID;
}

तो अगर मैं इसे प्रस्तुत करने का प्रयास करता हूं, तो यह मुझे देता है: यहां छवि विवरण दर्ज करें

के बजाए :

enter image description here

लेकिन मैं इसे सामान्य रूप से प्रस्तुत कर सकता हूं: यहां छवि विवरण दर्ज करें

क्या आपके पास कोई विचार है ? जो काम नहीं कर रहा है उसके लिए रंग गहरा 32 है और काम करने वाले के लिए 24 है

1
axel axel 1 पद 2019, 17:15

1 उत्तर

सबसे बढ़िया उत्तर

SDL_ConvertSurfaceFormat का उपयोग सतह प्रारूप को बदलने और परिवर्तित कर्व को लोड करने के लिए करें:

SDL_Surface* tmpSurface = SDL_LoadBMP(fileName);
SDL_Surface* formattedSurface = SDL_ConvertSurfaceFormat(
                                tmpSurface, SDL_PIXELFORMAT_ABGR8888, 0);
SDL_FreeSurface(tmpSurface);

// [...]

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tmpSurface->w, tmpSurface->h, 0,
             GL_RGBA, GL_UNSIGNED_BYTE, formattedSurface->pixels);
SDL_FreeSurface(formattedSurface);

Rupanya R dapat melakukan ini dengan lebih elegan dengan factor() dan model.matrix() dan tentunya banyak cara lain juga. Masalah saya adalah bahwa pada tahap karir R saya ini, saya tidak dapat mengadaptasi solusi untuk masalah serupa yang diposting di stackoverflow ke masalah khusus saya.

1
Rabbid76 1 पद 2019, 18:29