Gå til innhold

Quinzo

Medlemmer
  • Innlegg

    6
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av Quinzo

  1. :blush:

     

    Ok. Jeg ser nå at det var veldig dårlig forklart. Her er en bedre forklaring:

     

     

    Har du problemer med rendringen av teksturer?

    Ja.

     

    Har du problemer med at du laster samme teksturen flere ganger?

    Hvis ikke OGL hindrer det å skje automatisk, har jeg nok det. :)

     

    Vet du at texturene blir korrekt lastet?

    Nei, men jeg vet ikke hvordan jeg får testet det, siden jeg ikke har laget en annen lastekode i spillet.

     

    Har du testet med glerror?

    Nei, skal søke på det.

     

    Hvorfor legger du teksturene i en vector?

     

    Jeg bruker to klasser i dette tilfellet. CObject og CRenderer.

    I CRenderer har jeg en vektor av GLuint som skal holde alle teksturobjektene.

    I tillegg har jeg en annen vektor som er av std::string. Denne holder filnavnet til teksturene i den andre vektoren, dvs textNames[0] holder navnet til textures[0] osv.(Jeg har prøvd std::map, men den pep om noe med "read/write" restrictions, så jeg droppet det)

     

    I CObject har jeg en gluint* som kalles texture og en std::string som er filnavnet på teksturen.

     

    Konstruktøren til CObject er slik:

     

    gå gjennom CRenderer::textNames og se om det er en match med filnavnet i CObject.

    {

    Hvis det er det, setter jeg texture(GLuint* en ) til CRenderer::texture[posisjonen hvor jeg fant en match mellom filnavnene]

     

    Hvis det ikke er en match, legger jeg til filnavnet i CRenderer::textNames og legger til en GLuint i CRenderer::textures.

    }

     

    Her genererer jeg teksturene(glGenTextures(vektorsize, &CRenderer::textures).

    Når jeg da skal rendre, kaller jeg render() fra CObject som gjør:

     

    glBindTexture(GL_TEXTURE_2D, this->texture);

    //Rendering her

     

     

    Nei, dette ble veldig komplisert :no: , jeg håper inderlig dere skjønner.

    Hvis ikke kan jeg bare gjøre det mindre komplisert og se om det funker, jeg har en rar tendens til å gjøre ting verre en det de er :(

  2. Nei, det er mer som at jeg har en texture i hvert game object og jeg gjør slik:

     

     

    setup:

     

    if(this.texturepath == noen i texure vektoren)

    set this.texture til det texturet i texturevektor som hadde lik path

    else

    legg til en ny texture objekt i texturevektor med this.texturepath som path

     

    så generere.

     

    så:

    glBindTexture(GL_TEXTURE_2D, this->texture);

    Render();

     

     

    Jeg håper du forstår. :)

     

    EDIT: Takk for koden, men jeg bruker SDL og i tillegg har jeg koden mer "dynamisk" altså slik at jeg kan ha så mange objekter jeg vil uten at jeg trenger å hardkode det. Men tusen takk, jeg skal se om jeg kan bruke det :)

  3. Heisann,

     

    Jeg har holdt på med "spillprogrammering" en liten stund, men jeg har ikke helt skjønt hvordan man kan forhindre at det finnes flere kopier av samme OGL textur. Dvs. slik at flere objekter med samme bilde/tekstur bruker samme OGL texture objekt , hvis dere skjønner?

     

    Jeg har eksperimentert litt, men jeg får bare hvite firkanter uten noe tekstur på(og ja, jeg har GL_ENABLE(GL_TEXTURE_2D) på :) )

     

    Tusen tusen tusen takk for all hjelp jeg måtte få!

×
×
  • Opprett ny...