Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Vertexnormalenvektor berechnen Übungsaufgabe 1 aus Kapitel 2.9.5
Hallo
kann mir irgend jemand verraten wie ich den vertexnormalenvektor fuer einen Wuerfel berechne. Ich komm mit der uebungsaufgabe 1 aus Kapitel 2.9.5 nicht zurecht evtl kann mir vielleicht jemand die Loesung zu Aufgabe 1 posten oder verraten ob es einen link für die Loesungen gibt. Bin für jede hilfe dankbar
gruss joerg
Ich kenne das Buch leider nicht....
Kann auch nur raten, was Dein Problem ist:
Vertexnormale sind Normale sich aus der Fläschenormale des durch die Vertex definierte Fläsche ergeben.
Sprich bei zB einem Würfel:
- es gibt 6 Seiten
- jede Seite besteht ja aus 2 Dreiecken
- du müsstest jetzt zu jedem dieser Dreiecke die Fläschennormale ausrechnen Google findet genug Treffer dazu
- so, nun hast du einen Normalvektor, der gleich den Vertextnormalen der Vertices ist, der das Dreieck definiert.
Versteh ich noch nicht so ganz ?
Muss ich zu jedem an den vertex grenzenden Dreieck den normalenvektor berechnen, diese dann alle addieren und das Ergebnis normieren oder wie bilde ich den normierten Mittelwert ?
Ist das wirklich der weg um einen vertexnormalenvektor auf einem verhex zu berechnen ?
Hat da vielleicht mal jemand ein Code Schnipsel ?
Naja bei einem Würfel wirst du ja eher scharfe Kanten haben wollen also musst du jedem Vertex seinen eigenen Normalvektor, nämlich den der Seitenfläche zu der er gehört, geben...
Aber zu jedem vertex gehören doch mindestens 3 Dreiecke oder sehe ich das falsch?
Und wie ist das nun mit dem normierten Mittelwert aller normalenvektoren der zu einem vertex gehörenden dreiecke
Kann hier vielleicht mal jemand erklären wie die berechnet werden?
Und was hat das ganze mit scharfen Kanten oder weichen Kanten zu tun ?
Ich bin mit directx gerade erst angefangen und blick mit den bisher gegebenen infos jedenfalls nicht durch,
Vielleicht kann mal jemand die Katze aus dem Sack lassen und ein klein wenig auf meine fragen eingehen ?
Aber zu jedem vertex gehören doch mindestens 3 Dreiecke oder sehe ich das falsch?
Nur wenn du deinen Würfel so aufbaust. Dann hast du aber eben genau das Problem dass du eigentlich 3 verschiedene Normalen pro Vertex bräuchtest was eben nicht geht. Im Prinzip kannst du die Normalen mitteln (das macht Sinn wenn du stetige Oberflächen haben willst, z.B. eine Kugel) oder eben nicht. Wenn du nicht mittelst musst du den Vertex eben entsprechend oft mit jeweils verschiedenen Normalen duplizieren...
Und wie ist das nun mit dem normierten Mittelwert aller normalenvektoren der zu einem vertex gehörenden dreiecke
Kann hier vielleicht mal jemand erklären wie die berechnet werden?
Und was hat das ganze mit scharfen Kanten oder weichen Kanten zu tun ?
Danke, das ist endlich mal ne Info mit der ich was anfangen kann
jetzt ist die Sache klar
Eine Frage noch:
Wie bilde ich den Mittelwert der normalenvektoren ?
Muss ich zu jedem an den vertex grenzenden Dreieck den normalenvektor berechnen, diese dann alle addieren und das Ergebnis normieren oder muss ich die Summe noch durch die Anzahl der vektoren teilen und dann normieren oder wie bilde ich den normierten Mittelwert ?
Muss ich zu jedem an den vertex grenzenden Dreieck den normalenvektor berechnen, diese dann alle addieren und das Ergebnis normieren [...]
Jap, genau so. Eine sehr gängige Variante ist die einzelnen über das Kreuzprodukt der Kantenvektoren berechneten Dreiecksnormalen nicht zu normalisieren, aufzuaddieren und erst zum Schluss alle Vertexnormalen zu normieren. Das coole daran ist dass die Länge des Kreuzproduktes proportional zur Fläche des Dreiecks ist. D.h. anstatt einem einfachen Mittelwert bekommst du so eine nach der Fläche der beteiligten Dreiecke gewichtete Summe und das alles sogar noch mit ein bisschen weniger Rechenaufwand als das normale Mittel bräuchte.