W20 Normalen berechnen oder gehts auch anders?



  • danke, hab eben festgestellt das ich den Vektor nicht normalisiert habe über die MAGNITUDE... jetzt gehts... 😃



  • aber mal noch ne andere Frage...
    ich hab mal wo gelesen wenn man ein Polygon im Linksdrehsinn beschreibt so wird von OpenGL der Normalenvektor automatisch in die Richtung des Betrachters gesetzt?! Oder hab ich da jetzt was falsch verstanden? 🙄

    de Gortosch...



  • Da es Splat nicht ganz eindeutig gesagt hat: es reicht einmal normalisieren nachdem das Kreuzprodukt berechnet ist. Und es müsste eigentlich auch irgendwo ein Flag zu setzen sein (sogar bei OpenGL, oder?) wo er dann automatisch normalisiert.

    @gortosch: Nein das kann ich mir nicht vorstellen. Es könnte ja Absicht sein.

    Und Würfel haben definitionsgemäß 6 Seiten! (SCNR 😉

    Bye, TGGC \-/



  • TGGC schrieb:

    Und Würfel haben definitionsgemäß 6 Seiten! (SCNR 😉

    Na, ein Ikosaeder halt! 🤡



  • jup ein Ikosaeder... hab ihn blos W20 genannt weil es
    1. einfacher zu schreiben ist 😉
    2. ich mir das so aus DSA-Spielen angewöhnt habe
    3. öhm s. Punkt 1.

    de Gortosch...

    Ps.: Is schon klar das, dass Kreuzproduktes nur einmal Normalisiert werden muss. Hab das auch so verstanden. 🕶



  • Ja, wenn mich nicht alles täuscht, normalisiert OGL mit dem Flag GL_NORMALIZE automatisch.
    D.h. du könntest in der Initialisierung auch schreiben: glEnable(GL_NORMALIZE);
    (bin mir aber nicht 100%ig sicher, braucht man doch eh nicht 😉 )



  • ich denke mal, dass einmal normalisieren ein wenig performanter sein wird...
    automatisches normalisieren is was für faule.



  • [quote="dot"]ich denke mal, dass einmal normalisieren ein wenig performanter sein wird...
    automatisches normalisieren is was für faule.[/quote]

    vor ein paar jahren war gl_normalize noch todsünde, heute empfehlen nvidia und co. sogar, daß man das im zweifelsfall einfach aktiviert und fertig (kann ja mal jemand testen, wie groß der unterschied wirklich ist, aber in zeiten, wo normalen aus ner normalmap kommen spielt sowas ohnehin bald keine rolle mehr).

    theorie: in the mitte jeder fläche entspricht die normale der kugelnormalen.
    weitere theorie: für ein gleichschenkliges dreieck bekommt man den mittelpunkt durch mitteln der drei eckpunkte.
    voraussetzung: ein model wird um den ursprung entworfen (sonst eben mittelpunkt abziehen).
    vereinfachung: eine anständige vektor-klasse für lesbaren syntax wird angenommen
    ergebnis:

    n = (v0+v1+v2)/3;
    n.normalize();

    bei soviel theorie ist aber sicher ein denkfehler inklusive ,-)



  • Das /3 kann man gleich sparen.

    Bye, TGGC (Zu viele Primitive hier.)



  • [quote="TGGC"]Das /3 kann man gleich sparen.[/quote]

    *hust* peinlich. da will man möglichst aufwand sparen und flickt noch ne sinnlose division rein. wobei ich jetzt zweifel bekomme, wenn ich mir das "von oben" vorstelle. aber an jedem eckpunkt wäre der positionsvektor auch (richtungsmäßig) der normalenvektor.. also eigentlich.. hätte ich in mathe wirklich besser aufpassen sollen *g*


Anmelden zum Antworten