Salut tout le monde,
Je suis en train de faire un moteur 3D et j'ai fait un shader pour un rendu de terrain qui utilise 13 textures,
1 pour le terrain, 4 pour les colors map, 4 pour les masques et 4 pour les normals map.
Mon problème est que openGL detecte une erreur de type GL_INVALID_OPERATION dans glClientActiveTextureARB(GL_TEXTUREX_ARB) à partir de GL_TEXTURE8_ARB jusqu'a GL_TEXTURE12_ARB. ce qui fait que des zones noires correspondant aux textures non affichées son sur mon rendu
quand j' utilise glGetIntegerv(GL_MAX_TEXTURE_UNITS, & m_nNBTextureMax));
Pour connaitre le nombre de texture max OpenGL me retourne 4.
Pourtant les indices de texture vont de GL_TEXTURE0_ARB à GL_TEXTURE31_ARB
Ma carte graphique est plutôt ressente c'est une NVidia 8700 GT 512 Mo, elle devrai permettre plus que 4 ou 8 textures.
J'utilise aussi SFML comme bibliothèque de fenêtrage
Ce qui est très bizzard c'est qu'avec la démo précédente de mon moteur j'ai les mêmes erreurs venant d'openGL (GL_INVALID_OPERATION et textureMAx = 4) mais le shader fonctionne parfaitement. Le probleme ne vient donc pas de celui-ci.![]()
Partager