[solved] OpenGL: 3D Grafik einbinden (.mtl / .obj)


  • Mod

    erlaube die frage, kannst du ueberhaupt schon die grundlagen von c++? wenn mir hier nichts entgeht 'treagt' man das doch so ein wie bei jeder anderen membervariable auch.
    falls du die grundlagen noch nicht kennst, schalte einen gang zurueck und arbeite ein paar c++ tutorials durch, sonst koennte es in frust ausarten und du hast am ende garkeinen spass dran.

    nicht boese gemeint 😉

    zum eintragen.

    in privat bereich deiner klasse mit dem richtigen typen kannst du deine variable deklarieren

    class CSonstwas
    {
    priavte:
      MeinDatentyp   Variable;
    };
    

    zur not vor der klasse ein include zur typendeklaration, pass auch drauf auf ob's nicht zufaellig ein pointer ist 😉



  • rapso schrieb:

    erlaube die frage, kannst du ueberhaupt schon die grundlagen von

    in privat bereich deiner klasse mit dem richtigen typen kannst du deine variable deklarieren

    class CSonstwas
    {
    priavte:
      MeinDatentyp   Variable;
    };
    

    zur not vor der klasse ein include zur typendeklaration, pass auch drauf auf ob's nicht zufaellig ein pointer ist 😉

    hehe..war wohl zu überfächig formuliert.
    meine frage zielt auf den Datentyp, weil ich als Datentyp von -GLMmodel- ausgegangen bin, welches es aber nicht laufen lässt!


  • Mod

    laut source:

    GLMmodel* pmodel = NULL;
    

    was meinst du mit

    welches es aber nicht laufen lässt

    ? compiliert nicht? linkt nicht? stuerzt ab? fehlermeldung?



  • rapso schrieb:

    laut source:

    GLMmodel* pmodel = NULL;
    

    dies führt zur fehlermeldung

    ´pmodel´was not declared in this scope
    

    😉


  • Mod

    auf welche zeile bezieht sich der compilefehler?
    sicher dass du die member in der richtigen klasse deklariert hast?

    [cpp]void CSonstwasKlasse::
    drawmodel(void)[/cpp]



  • rapso schrieb:

    auf welche zeile bezieht sich der compilefehler?
    sicher dass du die member in der richtigen klasse deklariert hast?

    [cpp]void CSonstwasKlasse::
    drawmodel(void)[/cpp]

    sicher bin ich mir nicht.

    void GLWidget::drawmodel()void
    

    der Fehler bezieht is auf

    if (!pmodel) {
    

    und der gleiche fehler meldet sich auch zu

    glmDraw(pmodel, GLM_SMOOTH | CLM_MATERIAL);
    

    deklariert ist es mit

    GLMmodel* pmodel = NULL;
    

    in glwidget.h



  • mit

    GLMmodel* pmodel;
    

    bleibt der Fehler aus sprich es lässt sich Deklarieren.

    jetzt hat sich jedoch eine neue unbekannte fehlerquelle gemeldet welche je eine ´undefinied reference to`:
    * glmReadOBJ
    * glmUnitize
    * glmFacetNormals
    * glmVertexNormals
    * glmDraw

    ausspuckt. Wie löseich dieses Problem?



  • glm.c deinem projekt hinzufuegen?



  • hellihjb schrieb:

    glm.c deinem projekt hinzufuegen?

    ist drin 😞



  • extern "C"
    {
    #include "glm.h"
    }
    


  • AndiLatte schrieb:

    void
    drawmodel(void)
    {
        if (!pmodel) {
            pmodel = glmReadOBJ("data/al.obj");
            if (!pmodel) exit(0);
            glmUnitize(pmodel);
            glmFacetNormals(pmodel);
            glmVertexNormals(pmodel, 90.0);
        }
        
        glmDraw(pmodel, GLM_SMOOTH | GLM_MATERIAL);
    }
    

    folgende fhlerausgabe habe ich erhalten:

    ´pmodel´was not declared
    

    Wie trage ich pmodel in meine header datei ein !!?

    Die Fehlermeldung ist hier wohl eindeutig: 'pmodel' ist nicht deklariert.

    Du ermittelst (if) ob 'pmodel' einen Wert (true, false, 0, 1, äpfel, birnen, bananen) hat, obwohl 'pmodel' eben an dem Punkt, wo du es zu ermitteln versuchst, gar nicht existiert. Ich gehe mal davon aus, das 'pmodel' keine globale Variable ist.

    Lösung:

    Entweder du definierst/deklarierst pmodel in der Funktion wo du es verwenden willst, in einem höheren Scope oder (lass es!) global.

    Grüße... Heiko



  • hellihjb schrieb:

    extern "C"
    {
    #include "glm.h"
    }
    

    den Kniff kannte ich noch nicht !! Danke für die Hilfe - es funktioniert
    Hab grad ein paar Glückshormone ausschütten dürfen 👍


Anmelden zum Antworten