[updateNormals] manuell berechnen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Ava

Gast

Betreff: [updateNormals] manuell berechnen

BeitragMo, Nov 01, 2004 14:01
Antworten mit Zitat
Hi ihrs!

Ja, also wie stell ich das an?
Kann mir jemand sagen, wie genau updateNormals arbeitet? Wie errechnen es die normalCoords?

Ich möchte diese Funktion für mich erweitern, damit sie auf verschiedene Objekte gleichzeitig anwendbar wirdt. Rolling Eyes

Lieben Gruss,
+ Ava +
 

Dreamora

BeitragMo, Nov 01, 2004 15:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Zuerst werden die Flächennormalen berechnet.
Danach mit Hilfe von diesen die Vertexnormalen.

Flächennormalen:

Normalenvektor ist das Vektorprodukt von n = (v0-v2) x (v0-v1)
Diesen danach noch auf Länge 1 bringen, also n = n / sqrt(nx^2 + ny^2 + nz^2 )



Vertexnormalen:

Durchschnittsvektor aus den Flächenvektoren aller anliegenden Triangles.
also:

( n1 + n2 + n3 + n4 + n5 + ... + nX ) / X



+- sind hierbei vektoroperationen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Ava

Gast

BeitragMo, Nov 01, 2004 15:30
Antworten mit Zitat
Oha, na mal schauen, ob ich das hinbekomme. Wink

Thnx,
+ Ava +

Markus2

BeitragDi, Nov 02, 2004 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Und dran denken das man in BB nur einem Vertex eine Normale geben
kann , also wenn die Flächen sich die Punkte teilen , kann deine rechnerei
trotzdem schei*e aussehen .
 

Dreamora

BeitragDi, Nov 02, 2004 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
warum sollte es scheisse aussehen?

Ein Vertex kann immer nur eine Normale haben egal ob in B3D oder sonst wo.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Markus2

BeitragDi, Nov 02, 2004 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
@Dreamora
Wenn du die Normale von nem Dreieck ausrechnest
und diese bei den Vertices setzt und beim nächsten Dreieck wird
ein Vertex von dem davor benutzt was machste denn dann ?
Andere Prog. haben eine Normale je Dreieck damit man eben
die Eckpunkte doppelt benutzen kann .
In BB sollte man aber nie bei harten Kanten die Punkte doppelt
verwenden weils eben Ka**e aussieht .

wunderkind

BeitragDi, Nov 02, 2004 20:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Deshalb ja auch die durchschnittliche / mittlere Normale zu allen angrenzenden Flächen. Wurde aber oben auch schon so geschrieben.
 

Dreamora

BeitragDi, Nov 02, 2004 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Du brauchst keine einzelnen Vertices in Blitz3D
Du kannst das System die Facenormals nutzen lassen, EntityFX "FlatShade" lässt grüssen.

Ansonsten ist es dennoch so, dass alle Vertices nur 1 Normale haben können, andere Engines unterstützen einfach getrennte Facenormals, was Blitz3D glaub nicht hat.
wenn du verschiedene Smoothing Groups hat, werden übrigens keine Vertices zwischen verschiedenen Groups geteilt -> wenn 2 dreiecke eine scharfe Kante haben, dann haben die Triangles dort auch jeweils eigene Vertices.

Allerdings gehört das hier nicht mehr zum Thema, wir können ja gerne per PM oder so weiter diskutieren Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Markus2

BeitragDi, Nov 02, 2004 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
Du brauchst keine einzelnen Vertices in Blitz3D
Du kannst das System die Facenormals nutzen lassen, EntityFX "FlatShade" lässt grüssen. ...


Oh, wo du das gerade erwähnst , dieses Fx Flag habe ich noch nie benutzt bzw. war ich mir nicht im klaren wofür es gut ist ! Embarassed

@wunderkind
ja, kommt halt auf das Objekt an ...
 

Ava

Gast

BeitragMi, Nov 03, 2004 2:33
Antworten mit Zitat
Markus2 hat Folgendes geschrieben:
ja, kommt halt auf das Objekt an ...


Es geht um mein Terrain. Es ist in mehrere Objekte zerteilt und ich möchte halt die Beleuchtungsfehler an den Kanten entfernen, die durhc updateNormals entstehen.
 

Dreamora

BeitragMi, Nov 03, 2004 4:26
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ich mich recht entsinne ist das relativ einfach wenn du bei den 2 zusammentreffenden bereichen jeweils die idtentischen vertices suchst, die beiden normalenvektoren addierst und dann /2 machst ... bin mir aber nimmer 100%ig sicher ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Ava

Gast

BeitragMi, Nov 03, 2004 15:07
Antworten mit Zitat
Okay, also das werde ich gleich mal probieren !! Das ist ja schnell gemacht. Danke ! Smile
 

Ava

Gast

BeitragDo, Nov 04, 2004 9:27
Antworten mit Zitat
Dreamora hat Folgendes geschrieben:
wenn ich mich recht entsinne ist das relativ einfach wenn du bei den 2 zusammentreffenden bereichen jeweils die idtentischen vertices suchst, die beiden normalenvektoren addierst und dann /2 machst ... bin mir aber nimmer 100%ig sicher ...



So wirklich befriedigend ist das Ergebnis leider nicht Also es sieht dann schon etwas besser aus, aber ein schöner, fliessender Übergang entsteht dabei nicht. Sad Dann muss ich später doch nochmal deinen ersten Vorschlag ausprobieren ... *kompliziert* Confused


[/edit]

Okay, es klappt doch !! ich bin soo blöd. Razz Wink
 

Dreamora

BeitragDo, Nov 04, 2004 10:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Das freut mich zu hören, dass es klappt Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group