Bonjour,

j'ai quelques soucis lors de l'initialisation de ma texture array (du moins je suppose), car quand j'essaye d'utiliser l'une des textures de cet array, j'obtiens une texture noire.
Voici le code d'initialisation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
bool Texture::charger(std::string fichier)
{
	sf::Image image;
	if (!image.loadFromFile("Textures/Terre.png"))
	{
		std::cout << "[ERREUR] Initialisation texture\n";
		return false;
	}
 
	sf::Image image2;
	if (!image2.loadFromFile("Textures/Herbe.png"))
	{
		std::cout << "[ERREUR] Initialisation texture\n";
		return false;
	}
 
	if (glIsTexture(m_identifiant) == GL_TRUE)
		glDeleteTextures(1, &m_identifiant);
	glGenTextures(1, &m_identifiant);
 
	glBindTexture(GL_TEXTURE_2D_ARRAY, m_identifiant);
	glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, image.getSize().x, image.getSize().y, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
	glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, 0, image.getSize().x, image.getSize().y, 1, GL_RGBA, GL_UNSIGNED_BYTE, image.getPixelsPtr());
	glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, 1, image2.getSize().x, image2.getSize().y, 1, GL_RGBA, GL_UNSIGNED_BYTE, image2.getPixelsPtr());
 
	glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
	glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	glBindTexture(GL_TEXTURE_2D_ARRAY, 0);
 
	return true;
}
Voici le fragment shader
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
#version 330 compatibility
#extension GL_EXT_texture_array : enable
 
in vec2 coordonneesTexture;
 
uniform sampler2DArray textures;
 
out vec4 out_couleurs;
 
void main()
{
	out_couleurs = texture2DArray(textures, vec3(coordonneesTexture, 0));
}
Je ne vois vraiment pas où se trouve l'erreur, sachant que j'ai essayé de faire comme ici.
Voyez-vous où pourrait se situer mon erreur ?
Merci d'avance.