Historique des modifications - Message

Message #9305

Sujet: OpenGL: nombre de canaux de textures


TypeDateAuteurContenu
Création du message10-01-2011 18:58:13tmyke
comment perdre un temps fou pour pas grand chose.

Cherchant à transformer un shader de DirectX pour OpenGL (que je connais très peu il faut dire) employant 8 canaux
de textures, j'ai fini par comprendre qu'en fait Irrlicht me limitait à 4 canaux de textures avec le driver OpenGL, alors
que pourtant j'avais bien spécifié à Irrlicht que je souhaitais travailler sur 8 canaux max (chose qui se passe très bien avec DX9).

En cherchant, le forum officiel est venu conforter mes soupçons de bug sur la partie driver OGL.

Donc, si vous souhaiter monter au dessus de 4 canaux avec OGL, voici une partie de code à
modifier au niveau du code source du moteur:

pour les version 1.7.x

Code c++ :

diff -rupN irrlicht-1.7.x/source/Irrlicht/COpenGLExtensionHandler.cpp 
@@ void COpenGLExtensionHandler::initExtens
    {...
        glGetIntegerv(GL_MAX_TEXTURE_UNITS, &num);
        MaxTextureUnits=static_cast<u8>(num);
+        glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS_ARB, &num);
+        if (MaxTextureUnits<static_cast<u8>(num))
+            MaxTextureUnits=static_cast<u8>(num);
    }
 #endif
    glGetIntegerv(GL_MAX_LIGHTS, &num);

pour la version 1.8.0

Code c++ :

diff -rupN irrlicht-1.8.x/source/Irrlicht/COpenGLExtensionHandler.cpp 
@@ void COpenGLExtensionHandler::initExtens
    {...
        glGetIntegerv(GL_MAX_TEXTURE_UNITS, &num);
        MaxSupportedTextures=static_cast<u8>(num);
+        glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS_ARB, &num);
+        if (MaxSupportedTextures<static_cast<u8>(num))
+            MaxSupportedTextures=static_cast<u8>(num);
    }
 #endif
    glGetIntegerv(GL_MAX_LIGHTS, &num);

noubliez pas quand même de changer la valeur de #define _IRR_MATERIAL_MAX_TEXTURES_ 8

wink

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
35 invités en ligne
membre en ligne: -
RSS Feed