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??