frustration CubeMapping_OpenGL
-
hey everybody... I hope someone can help me caus I'm trying to implement this cube mapping thing for two days now... I've been to all those websites... There must be some small mistake in my code and I just can't find it...
... (InitGL) CubeMappingAvailable = CheckOpenGLExtension("GL_ARB_texture_cube_map"); myTextureLoader.LoadCubeMap("right.jpg", "left.jpg", "bottom.jpg", "top.jpg", "front.jpg", "back.jpg", &myCubeMap); // ... // TextureLoader::LoadCubeMap(char* fileRight, char* fileLeft, char* fileTop, char* fileBottom, char* fileFront, char* fileBack, CubeMap* dest) // dest is my CubeMap-Class-Object glGenTextures(1, &dest->TextureID); glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, dest->TextureID); glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); LoadFromFile(fileRight, &dest->right, 1); // no just represents the face LoadFromFile(fileLeft, &dest->left, 2); LoadFromFile(fileTop, &dest->top, 3); LoadFromFile(fileBottom, &dest->bottom, 4); LoadFromFile(fileFront, &dest->front, 5); LoadFromFile(fileBack, &dest->back, 6); // Loading (LoadFromFile) looks like this: (...) glTexParameterf(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameterf(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR); // cube is the int from above (face) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB+(cube-1), 0, components, pTexture->Width, pTexture->Height, 0, pTexture->Type, GL_UNSIGNED_BYTE, pImgData); // My drawing looks like this: glDisable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_CUBE_MAP_ARB); glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T); glEnable(GL_TEXTURE_GEN_R); glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, desCube->TextureID); // Drawing object Here... glDisable(GL_TEXTURE_GEN_S); glDisable(GL_TEXTURE_GEN_T); glDisable(GL_TEXTURE_GEN_R); glDisable(GL_TEXTURE_CUBE_MAP_ARB);
Sorry for not posting more... but I think It's more a general mistake and I put everything in different classes and methods, so posting more might make everything more complicated... thanx in advance zqueezy -
hey everybody... I hope someone can help me caus I'm trying to implement this cube mapping thing for two days now... I've been to all those websites... There must be some small mistake in my code and I just can't find it...
... (InitGL) CubeMappingAvailable = CheckOpenGLExtension("GL_ARB_texture_cube_map"); myTextureLoader.LoadCubeMap("right.jpg", "left.jpg", "bottom.jpg", "top.jpg", "front.jpg", "back.jpg", &myCubeMap); // ... // TextureLoader::LoadCubeMap(char* fileRight, char* fileLeft, char* fileTop, char* fileBottom, char* fileFront, char* fileBack, CubeMap* dest) // dest is my CubeMap-Class-Object glGenTextures(1, &dest->TextureID); glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, dest->TextureID); glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); LoadFromFile(fileRight, &dest->right, 1); // no just represents the face LoadFromFile(fileLeft, &dest->left, 2); LoadFromFile(fileTop, &dest->top, 3); LoadFromFile(fileBottom, &dest->bottom, 4); LoadFromFile(fileFront, &dest->front, 5); LoadFromFile(fileBack, &dest->back, 6); // Loading (LoadFromFile) looks like this: (...) glTexParameterf(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameterf(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR); // cube is the int from above (face) glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB+(cube-1), 0, components, pTexture->Width, pTexture->Height, 0, pTexture->Type, GL_UNSIGNED_BYTE, pImgData); // My drawing looks like this: glDisable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_CUBE_MAP_ARB); glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T); glEnable(GL_TEXTURE_GEN_R); glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, desCube->TextureID); // Drawing object Here... glDisable(GL_TEXTURE_GEN_S); glDisable(GL_TEXTURE_GEN_T); glDisable(GL_TEXTURE_GEN_R); glDisable(GL_TEXTURE_CUBE_MAP_ARB);
Sorry for not posting more... but I think It's more a general mistake and I put everything in different classes and methods, so posting more might make everything more complicated... thanx in advance zqueezydamn, I found it finally... I had to add:
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_EXT); glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_EXT); glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP_EXT);
after glTexImage2D I cannot see really why, and many tuts left that out...