2011-01-02 5 views
1

salut je suis en train de charger une texture (image .bmp) ...texture de chargement avec openGL et C#

avec le débogage je vois qu'il a été chargé ... mais APPEAR rien d'écran! voici mon code:

int front_ID = Terrain.LoadGLTextures(@"C:\Users\Ruba\Desktop\our project graphic2\our project graphic\images\top.bmp"); 
     int back_ID = Terrain.LoadGLTextures(@"C:\Users\Ruba\Desktop\our project graphic2\our project graphic\images\top.bmp"); 
     int right_ID = Terrain.LoadGLTextures(@"C:\Users\Ruba\Desktop\our project graphic2\our project graphic\images\top.bmp"); 
     int left_ID = Terrain.LoadGLTextures(@"C:\Users\Ruba\Desktop\our project graphic2\our project graphic\images\top.bmp"); 
     int top_ID = Terrain.LoadGLTextures(@"C:\Users\Ruba\Desktop\our project graphic2\our project graphic\images\top.bmp"); 
     int down_ID = Terrain.LoadGLTextures(@"C:\Users\Ruba\Desktop\our project graphic2\our project graphic\images\top.bmp"); 

     Terrain.draw_skybox(520, front_ID, back_ID, right_ID, left_ID, top_ID, down_ID); 

et la méthode (draw_skybox):

public static void draw_skybox(float size, int front, int back, int right, int left, int up, int bottom) 
    { 
     float scale = 1; // important 

     Gl.glPushMatrix(); 

     Gl.glScalef(size, size, size); 


     //Front Face 
     //Gl.glEnable(Gl.GL_CULL_FACE); 
     Gl.glCullFace(Gl.GL_BACK); 
     Gl.glBindTexture(Gl.GL_TEXTURE_2D, front); 

     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(0, 0, 1); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(-0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(0.5f, 0.5f, -0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(-0.5f, 0.5f, -0.5f); 
     Gl.glEnd(); 
     //Gl.glCullFace(Gl.GL_BACK); 
     // Gl.glDisable(Gl.GL_CULL_FACE); 
     //Back Face 
     Gl.glBindTexture(Gl.GL_TEXTURE_2D, back); 
     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(0, 0, -1); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(-0.5f, -0.5f, 0.5f); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(0.5f, -0.5f, 0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(0.5f, 0.5f, 0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(-0.5f, 0.5f, 0.5f); 
     Gl.glEnd(); 

     //right face 
     Gl.glBindTexture(Gl.GL_TEXTURE_2D, right); 
     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(1, 0, 0); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(0.5f, 0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(0.5f, 0.5f, 0.5f); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(0.5f, -0.5f, 0.5f); 
     Gl.glEnd(); 

     //Left Face 
     Gl.glBindTexture(Gl.GL_TEXTURE_2D, left); 
     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(-1, 0, 0); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(-0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(-0.5f, 0.5f, -0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(-0.5f, 0.5f, 0.5f); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(-0.5f, -0.5f, 0.5f); 
     Gl.glEnd(); 

     //Top Face 
     Gl.glBindTexture(Gl.GL_TEXTURE_2D, up); 

     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(0, 1, 0); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(-0.5f, 0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(0.5f, 0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(0.5f, 0.5f, 0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(-0.5f, 0.5f, 0.5f); 
     Gl.glEnd(); 


     //Bottom Face 

     Gl.glBindTexture(Gl.GL_TEXTURE_2D, bottom); 
     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(0, -1, 0); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(-0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(0.5f, -0.5f, 0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(-0.5f, -0.5f, 0.5f); 
     Gl.glEnd(); 

     Gl.glPopMatrix(); 


    } 


public static void draw_skybox(float size, int front, int back, int right, int left, int up, int bottom) 
    { 
     float scale = 1; // important 

     Gl.glPushMatrix(); 

     Gl.glScalef(size, size, size); 


     //Front Face 
     //Gl.glEnable(Gl.GL_CULL_FACE); 
     //Gl.glCullFace(Gl.GL_BACK); 
     Gl.glBindTexture(Gl.GL_TEXTURE_2D, front); 

     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(0, 0, 1); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(-0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(0.5f, 0.5f, -0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(-0.5f, 0.5f, -0.5f); 
     Gl.glEnd(); 
     //Gl.glCullFace(Gl.GL_BACK); 
     // Gl.glDisable(Gl.GL_CULL_FACE); 
     //Back Face 
     Gl.glBindTexture(Gl.GL_TEXTURE_2D, back); 
     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(0, 0, -1); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(-0.5f, -0.5f, 0.5f); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(0.5f, -0.5f, 0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(0.5f, 0.5f, 0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(-0.5f, 0.5f, 0.5f); 
     Gl.glEnd(); 

     //right face 
     Gl.glBindTexture(Gl.GL_TEXTURE_2D, right); 
     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(1, 0, 0); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(0.5f, 0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(0.5f, 0.5f, 0.5f); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(0.5f, -0.5f, 0.5f); 
     Gl.glEnd(); 

     //Left Face 
     Gl.glBindTexture(Gl.GL_TEXTURE_2D, left); 
     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(-1, 0, 0); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(-0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(-0.5f, 0.5f, -0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(-0.5f, 0.5f, 0.5f); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(-0.5f, -0.5f, 0.5f); 
     Gl.glEnd(); 

     //Top Face 
     Gl.glBindTexture(Gl.GL_TEXTURE_2D, up); 

     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(0, 1, 0); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(-0.5f, 0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(0.5f, 0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(0.5f, 0.5f, 0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(-0.5f, 0.5f, 0.5f); 
     Gl.glEnd(); 


     //Bottom Face 

     Gl.glBindTexture(Gl.GL_TEXTURE_2D, bottom); 
     Gl.glBegin(Gl.GL_QUADS); 
     Gl.glNormal3f(0, -1, 0); 
     Gl.glTexCoord2d(0, 0); Gl.glVertex3f(-0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 0); Gl.glVertex3f(0.5f, -0.5f, -0.5f); 
     Gl.glTexCoord2d(1, 1); Gl.glVertex3f(0.5f, -0.5f, 0.5f); 
     Gl.glTexCoord2d(0, 1); Gl.glVertex3f(-0.5f, -0.5f, 0.5f); 
     Gl.glEnd(); 

     Gl.glPopMatrix(); 


    } 

s'il vous plaît aidez-moi

Répondre

2

Quelques choses que vous devriez vérifier.

Le texturage est-il activé?

Gl.glEnable(Gl.GL_TEXTURE_2D); 

appelez-vous Gl.glGenTextures(...) et Gl.glTexImage2D(...) à l'intérieur Terrain.LoadGLTextures(...);?

L'ordre de remontage de l'arrière, droite & quads inférieurs est faux. L'enroulement doit être dans le sens contraire des aiguilles d'une montre. Puisque vous activez la sélection, ces quads ne seront pas visibles depuis le volume du cube. Il suffit d'échanger les premiers sommets &, et le troisième & quatrième.

Assurez-vous de visionner la scène depuis l'intérieur du volume.

Voulez-vous vraiment utiliser le framework Tao? Le framework Tao n'a pas été mis à jour depuis mai 2008 et est effectivé depuis juillet 2010. Peut-être que vous devriez jeter un oeil à l'OpenTK Framework: http://www.opentk.com/

+0

est-ce que openTK a toutes les méthodes dont j'ai besoin .. J'aime charger les textures ??? – Ruba

+0

Jetez un oeil à ces: http://www.opentk.com/doc/faq & http://www.opentk.com/doc/graphics/textures/loading –

+1

Tao n'a pas besoin d'être mis à jour depuis 2008. – nathanchere