OpenGL Skybox
-
Ist position.xyz in [0,1]? Wenn du nen Wuerfel um den Ursprung zeichnest sind die Koordinaten in [-1,1] und du musts vorher in texcoord-gebrauchliche Koordinaten transformieren
TexCoord0 = (Position+1.0)/2.0;
-
TravisG schrieb:
Ist position.xyz in [0,1]? Wenn du nen Wuerfel um den Ursprung zeichnest sind die Koordinaten in [-1,1] und du musts vorher in texcoord-gebrauchliche Koordinaten transformieren
Er verwendet eine Cube Map...
-
Also die Textgurdaten werden richtig geladen. Zumindest funktionieren die Texturen bei "normalen" Objekten und nciht als Cubemap.
Was genau meinst du mit die TextCords als Farbe ausgeben? Wäre das nicht einfach zum Beispiel
FragColor = vec4(1.0, 0.0, 0.0, 1.0)
?
-
Ich seh gerade, du machst folgendes:
m_pCubemapTex->Bind(GL_TEXTURE0);
Das schaut mir irgendwie nicht ganz richtig aus, was genau macht diese Bind() Methode!? Du musst deine Cube Map natürlich an das GL_TEXTURE_CUBE_MAP target binden...
Was sagt glGetError()?
-
Das ist folgendes:
void CubemapTexture::Bind(GLenum TextureUnit) { glActiveTexture(TextureUnit); glBindTexture(GL_TEXTURE_CUBE_MAP, m_textureObj); }
glGetError() gibt mir 1280. Ich bin mir aber nicht sicher an welcher Stelle man das testen sollte. Ich habe es jetzt nach dem binden gemacht
-
Also einen GL_INVALID_ENUM. Teste eben mal nach jedem gl* Aufruf, um zu sehen, welcher Aufruf genau den Fehler erzeugt...
-
Okay ich habs ausprobiert und der Fehler scheint hier nach zu kommen:
glTexImage2D(types[i], 0, GL_BGR, m_textures[i]->getWidth(), m_textures[i]->getHeight(), 0, GL_BGR, GL_UNSIGNED_BYTE, m_textures[i]->getData());
-
Okay es lag wohl an
GL_BGR
. Habe es durch
GL_RGB
ersetzt und es funktioniert...zumindest habe ich jetzt Texturen. Aber leider habe ich das mit der Matrix versaut. Ich bin davon ausgegangen dass ich die Model*View*Projection Matrix brauche aber dann sieht das ganze doch ein wenig komisch aus
-
Nee, projection*modelview..
-
Oh okay, danke