OpenGl:ää väännän SDL:n kanssa, ja syvyys "ei toimi". Nimittäin kun esim. piirrän neliön muotoisen polygonin, niin jos sen verteksien z-arvo on yli 1 tai alle -1, niin polygon "katoaa". Sama juttu translaten kanssa. Mikä mahtaisi olla pielessä? Olenko asettanut/jättänyt asettamatta asetuksen, joka aiheuttaisi sen? Täsää mitä olen asettanut:
SDL_Init(SDL_INIT_VIDEO); SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 16); SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 16); SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 16); SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 32); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); glViewport(0, 0, (GLsizei) screen.width, (GLsizei) screen.height); glMatrixMode(GL_PROJECTION); gluPerspective(60, 800.0/600.0, 1, 100); glMatrixMode(GL_MODELVIEW); glEnable(GL_CULL_FACE); glEnable(GL_DEPTH_TEST); screen.screen=SDL_SetVideoMode(screen.width, screen.height, screen.colordebth, SDL_OPENGL|SDL_GL_DOUBLEBUFFER|SDL_HWPALETTE|SDL_HWSURFACE);
Edit:Lisäksi kohdan syvyyden muuttaminen ei vaikuta palikan sijaintiin.
SDL_GL_DOUBLEBUFFER ei kuulu SDL_SetVideoMode-funktion lippuihin, sitä käytetään vain GL-parametrien asettamisessa. Se voi siis tuolla tavalla saada periaatteessa aikaan ties mitä kummia SDL:n puolella. Muillakaan noista lipuista ei luultavasti ole mitään merkitystä, kun OpenGL on käytössä. Olet myös kirjoittanut väärin: ei "colordebth" vaan "colordepth".
Eipä tuossa muuta erityistä vikaa näy. Kummalliselta kuulostaa kyllä, koska noiden asetusten mukaan vain välillä 1–100 olevien asioiden pitäisi näkyä. Kokeilepa vielä kutsua glLoadIdentity-funktiota kummankin glMatrixModen jälkeen ja asettaa glDepthFunc(GL_LESS) ja glClearDepth(1.0) ja tarkista, että glClear-funktiolle on annettu myös GL_DEPTH_BUFFER_BIT.
Kiitos avusta, nyt toimii. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.