OpenGl



  • Bei den heutigen Rechnern soll es keinen Unterschied machen. Unterumständen sogar schneller sein.

    [ Dieser Beitrag wurde am 05.03.2003 um 11:33 Uhr von Netzwerk-Latenz editiert. ]



  • Hallo,

    ich habe eine andere Lösung gefunden:

    GLdouble eqn[4] = {0.0,1.0,0.0,0.0};
    glClipPlane(GL_CLIP_PLANE0,eqn);
    glEnable(GL_CLIP_PLANE0);
    glutWireSphere(2.0,20,20);
    glDisable(GL_CLIP_PLANE0);

    Kann mir bitte Jemand mal erklären, was da passier und warum das funktioniert?



  • Original erstellt von <Anfänger>:
    **Hallo,

    ich habe eine andere Lösung gefunden:

    GLdouble eqn[4] = {0.0,1.0,0.0,0.0};
    glClipPlane(GL_CLIP_PLANE0,eqn);
    glEnable(GL_CLIP_PLANE0);
    glutWireSphere(2.0,20,20);
    glDisable(GL_CLIP_PLANE0);

    Kann mir bitte Jemand mal erklären, was da passier und warum das funktioniert?**

    gute Loesung! Die obigen Vorschlaege (Sinen, Cosinen, Sinustabellen) in opengl zu machen ist Nonsens. mit glClipPlane spezifizierst Du einfach ne zusaetzliche Clipping plane. Verhaelt sich aehnlich wie z.B. die near/far-Clipping plane nur hier eben so, wie Du die Ebene spezifizierst. ~tOmUsA

    [ Dieser Beitrag wurde am 05.03.2003 um 13:22 Uhr von tOmUsA editiert. ]



  • Das Problem ist nur dass ich das aus nem Buch abgeschrieben habe , welches diese zeilen nicht erkärt!

    Also was hab ich da eigentlich gemacht?



  • Mit dem 1. Argument spezifizierst Du, welche Clip.Plane Du haben moechtest.
    Mit dem 2. Argument spezifiezierst Du die Clipping plane.

    Alle Punkte (x,y,z,w) die (A B C D)M^-1(x,y,z,w) erfuellen, liegen in im Halbraum, der durch die Ebengleichung definiert wurde. Alle anderen werden "weggeclippt".

    ~tOmUsA



  • Original erstellt von <Anfänger>:
    **Hallo,

    ich habe eine andere Lösung gefunden:

    GLdouble eqn[4] = {0.0,1.0,0.0,0.0};
    glClipPlane(GL_CLIP_PLANE0,eqn);
    glEnable(GL_CLIP_PLANE0);
    glutWireSphere(2.0,20,20);
    glDisable(GL_CLIP_PLANE0);

    Kann mir bitte Jemand mal erklären, was da passier und warum das funktioniert?**

    du hast die kugel in der mitte durchgesägt und nur die eine hälfte dargestellt
    eine clipplane schneidet einfach einen teil(angegeben durch GLdouble eqn[4] = {0.0,1.0,0.0,0.0};) der darstellung weg.

    glEnable und glDisable stellst du sicher, dass die Clipping Plane nur für die Kugel giltet.



  • Original erstellt von Netzwerk-Latenz:
    Bei den heutigen Rechnern soll es keinen Unterschied machen. Unterumständen sogar schneller sein.

    Kannst Du das mit irgendwelchen Messungen belegen? Würde mich doch sehr wundern...



  • @nman
    Ist doch bei den neueren Rechnern eigentlich klar. Solange die Table nicht im Cache liegt, und auch da bleibt ist sie langsamer. Denn der Zugriff kostet um einiges mehr als die Taktzyklen, die die CPU benötigt, um das zu berechnen.

    Wenn du Tests willst, kann ich ja schnell einen machen ( auf Anforderung 😉 )



  • jo, fänd ich mal net schlecht, wenn du das machen könntest 🙂
    das würde mich nämlich auch mal interessieren und wir hätten endlich Klarheit!



  • Original erstellt von SnorreDev:
    **@nman
    Ist doch bei den neueren Rechnern eigentlich klar. Solange die Table nicht im Cache liegt, und auch da bleibt ist sie langsamer. Denn der Zugriff kostet um einiges mehr als die Taktzyklen, die die CPU benötigt, um das zu berechnen.

    Wenn du Tests willst, kann ich ja schnell einen machen ( auf Anforderung 😉 )**

    Es geht hier IMHO aber darum, die Ergebnisse in einen VB abzulegen, und Rendern aus'm statischen VB ist schneller als die Punkte jedes Mal dynamisch berechnen zu wollen.



  • @TGCC:
    Dann hab ich das wohl falsch verstanden. Klar ist dynamisches erzeugen langsamer.
    Vorallem wenn man VAO oder VAR in GL benutzt, dann rockts erst richtig.

    Ich schau mal, ob ich meinen alten Test noch habe. Da hab ich alle möglichen Renderarten getestet, um mir selbst Klarheit zu verschaffen.



  • Ja, würde mich ernsthaft interessieren! 🙂

    btw: Weiß jemand, wie man den gprof über optimierten Code jagen kann? 😕



  • Nicht wirklich. Beim AMD Code Analyst kannste ja leider auch nur Debug code durch jagen 😞
    Das finde ich echt sch.... - weil mich ja gerade der fertige code interessiert, und ob ich da mit ASM oder anderen Optimierungen noch was machen kann


Anmelden zum Antworten