brauche hilfe mit opengl



  • hi leute ich habe ein problem mit openGL.
    folgendes:
    ich habe mir eine Polygon und Textureklasse geschrieben. wenn ich nun aber mit der Render() funktion aus der Polygon-Klasse das Polygon anzeigen will zeigt er nichts an.
    weis einer woran das liegen könnte?
    hier der code
    CPolygon.h:

    class CPolygon :	public Texture
    {
    	private:
    		float PosX[3], PosY[3], PosZ[3];
    		...
    		...
    	public:
    		...
    		void Render();
    };
    

    CPolygon.cpp

    void CPolygon::Render()
    {
    	// Texture
    	if( bTexture )
    		Use( alpha );
    
    	// Polygon
    	glVertex3f( PosX[0], PosY[0], PosZ[0] );
    	glVertex3f( PosX[1], PosY[1], PosZ[1] );
    	glVertex3f( PosX[2], PosY[2], PosZ[2] );
    }
    

    und nun die OPenGL-Szene:

    bool Initialize (GL_Window* window, Keys* keys)
    {
    	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    	glClearDepth(1.0f);
    	glDepthFunc(GL_LEQUAL);
    	glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
    	glEnable(GL_DEPTH_TEST);
    	glEnable(GL_BLEND);
    	glEnable(GL_TEXTURE_2D);
    	glEnable(GL_CULL_FACE);
    	glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    
    	Point3 dat;
    
    	dat.X[0] = 0.0f;	dat.Y[0] = 0.0f;	dat.Z[0] = 0.0f;
    	dat.X[1] = 1.0f;	dat.Y[1] = 0.0f;	dat.Z[1] = 0.0f;
    	dat.X[2] = 0.0f;	dat.Y[2] = 1.0f;	dat.Z[2] = 0.0f;
    
    	Poly = new CPolygon( &dat );                   //geht habe ich getestet.
    
    	return true;
    }
    
    void DrawScene( void )
    {
    	glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );Buffer
    	glLoadIdentity();
    	glTranslatef( 0.0f, 0.0f, -5.0f );
    
    	glRotatef( rot[0], 1, 0, 0 );
    	glRotatef( rot[1], 0, 1, 0 );
    	glRotatef( rot[2], 0, 0, 1 );
    
    	glBegin( GL_TRIANGLES );
    		Poly->Render();                                //geht nicht
    		/*glVertex3f( 0.0f, 0.0f, 0.0f );           // das gleiche als statische
    		glVertex3f( 1.0f, 0.0f, 0.0f );              // eingabe geht logischer-
    		glVertex3f( 0.0f, 1.0f, 0.0f );*/           // weise, als externe func. auch.
    	glEnd();
    
    	glFlush();
    }
    

    weis einer rat??



  • Sind die Vertex-Variablen der Klasse auf gefuellt, wenn du Render() aufrufst? Also erfolgt die Uebergabe im Konstruktor der Klasse problemlos?
    MfG Aoeke



  • ja das geht alles wie es soll.
    er rendert die halt einfach nur nicht noch nichtmal das richtungskreutz das ich drinne habe. also die 3 achsenpfeile.



  • fehler im konstruktor??


Log in to reply