J'ai créé un Cube dans openGl et j'ai besoin de fournir 6 textures avec des résolutions différentes les unes des autres. Actuellement, j'utilise glTexImage2D pour fournir des textures avec la même résolution, mais évidemment ne peut pas être utilisé pour mon nouvel objectif.
Le code suivant est similaire à ce que j'ai fait pour avoir chaque visage avec la même résolution (juste le canal de luminance) :
glGenTextures(3, m_cubemapTexture);
glPixelStorei(GL_UNPACK_ROW_LENGTH, cube_size);
glBindTexture(GL_TEXTURE_CUBE_MAP, m_cubemapTexture[0]);
for (int face = 0; face < 6 face++){
glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, GL_LUMINANCE, cube_size, cube_size, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, m_uYdata[face]);
}
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);
glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_BORDER);
glBindTexture(GL_TEXTURE_CUBE_MAP, 0);
Modifier
Je pense que l'utilisation de mipmap n'est pas la bonne méthode car je ne peux pas simplement sous-échantillonner la texture avec une résolution plus élevée. Si je change simplement la largeur et la hauteur dans glTexImage2D() pour la texture de plus haute résolution, le cube disparaît.
Pouvez-vous me suggérer comment modifier le code ?