[OpenGL] Wie kann ich .x laden?



  • @jester: ok das werde ich auch nochmal probieren^^

    ich will jetzt keinen thread aufmachen deswegen frag ich gleich hier:
    also, ich lade eine obj datei mit diesem code

    GLMModel* planeModel;
    planeModel=glmReadOBJ("plane.obj");
    glPushMatrix();
    glmDraw(planeModel,GLM_SMOOTH|GLM_TEXTURE|GLM_MATERIAL);
    glPopMatrix();
    

    aber wie kann ich nun die obj datei (z.b.) nach hinten (also -z auf koordinatensystem) bewegen?

    achja: das mit std::ifstream funktioniert bei mir, ist mir aber ein wenig zu lang, deswegen teste ich nochmal jesters version und wenn mir das auch nich so gefällt dann benutze ich nur obj dateien



  • aber wie kann ich nun die obj datei (z.b.) nach hinten (also -z auf koordinatensystem) bewegen?

    Um nicht die komplette Szene zu transformieren, pushte einfach ne neue Matrix und translantierst sie mit glTranslatef( x, y, z ).

    achja: das mit std::ifstream funktioniert bei mir, ist mir aber ein wenig zu lang

    Alternativ kannst du dir auch einen fertigen Loader ansehen:
    http://sourceforge.net/projects/objloader
    Einen Loader dafür zu schreiben, ist nicht die Welt, daher kannst du auf das OBJ-Format-Studium verzichten.



  • ok danke, ich hab nur noch ein problem: als ich heute meinen code noch einmal testen wollte habe ich folgende fehler bekommen:

    1>funktionen.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""void __cdecl glmDraw(struct _GLMmodel *,unsigned int)" (?glmDraw@@YAXPAU_GLMmodel@@I@Z)" in Funktion ""void __cdecl Starten(void)" (?Starten@@YAXXZ)".
    1>funktionen.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""struct _GLMmodel * __cdecl glmReadOBJ(char *)" (?glmReadOBJ@@YAPAU_GLMmodel@@PAD@Z)" in Funktion ""void __cdecl Starten(void)" (?Starten@@YAXXZ)".
    1>C:\Users\asd\Desktop\asd\Debug\asd.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.
    

    hier meine includes:

    #include <windows.h>
    #include <gl/gl.h>
    #include <gl/glm.h>
    #include <gl/glut.h>
    #pragma comment(lib, "OpenGl32.lib")
    #pragma comment(lib, "Glu32.lib")
    

    danke schonmal

    p.s.: platform sdk hab ich natürlich auf dem pc auch installiert



  • Die Funktion glmDraw( ) ist mir persönlich nicht bekannt, meinst du die glDraw( )? Wobei es schon glatt so aussieht, als sei glmDraw( ) und glmReadOBJ( ) von deinem OBJ-Loader. Falls das so ist, kann er nicht auf den Funktionsnamen verweisen. Hast du den Loader in einer extra Header+Cpp-Datei? Wenn ja, musst du den Header inkludieren, dass weisst du hoffentlich (-;.



  • Die Funktion glmDraw( ) ist mir persönlich nicht bekannt, meinst du die glDraw( )?

    hmm, ich habs jetzt mal ohne "m" gemacht, aber da sagt er dann: "Bezeichner nicht gefunden"

    Hast du den Loader in einer extra Header+Cpp-Datei? Wenn ja, musst du den Header inkludieren, dass weisst du hoffentlich (-;.

    hab ich gemacht (gehört ja zu den grundlagen 👍 )



  • Na dann schau doch einfach mal, ob die Funktionen überall die gleichen Funktionsnamen haben. Ansonsten schick mir eben den Code (E-Mail), dann sehe ich mir den eben an.



  • hast ´ne mail



  • Nochmal bitte, hatte eine falsche E-Mailadresse hinterlassen.



  • Hat's geklappt?



  • jo, jetzt hat dank dir alles geklappt


Anmelden zum Antworten