Normalenvektoren, Export aus Blender

Das Forum zum beliebten 3D-Modellierungsprogramm Blender und andere Foto-, Textur- und 3D-Software und -themen.
Nachricht
Autor
Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Normalenvektoren, Export aus Blender

#1 Beitrag von Johannes »

(Antwort auf diesen Beitrag)

Anhand der Solarleuchte koenntest du dich noch mit dem Thema Smooth Shading vs. Flat Shading in Blender auseinandersetzen. In echt ist der Mast ja komplett rund, waehrend man im Modell momentan die einzelnen Flaechen sieht.
Zuletzt geändert von Johannes am 24.08.2016 15:56:46, insgesamt 2-mal geändert.

Christian Marx
Beiträge: 542
Registriert: 12.03.2016 21:37:29
Wohnort: Forchheim

Re: Übersicht über im Bau befindliche Objekte

#2 Beitrag von Christian Marx »

Da hab ich mich auch schon gewundert. Ich hab das Shading der Faces bereits auf Smooth gestellt und in Blender wird der Mast auch rund dargestellt.
Hab ich vielleicht wieder ein Häkchen in den Exportoptionen vergessen?

Bild

Das Problem besteht auch bei den Rohrbügeln obwohl Shading ebenfalls auf Smooth steht. Irgendwie seltsam.
Zuletzt geändert von Christian Marx am 22.08.2016 22:01:47, insgesamt 2-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Übersicht über im Bau befindliche Objekte

#3 Beitrag von Johannes »

Wie exportierst du denn? Via .x-Format oder direkt nach .ls3?

Christian Marx
Beiträge: 542
Registriert: 12.03.2016 21:37:29
Wohnort: Forchheim

Re: Übersicht über im Bau befindliche Objekte

#4 Beitrag von Christian Marx »

Ich importiere via .x Datei. Scheinbar liegt es am Wert für den Grenzwinkel der Meshoptimierung. Ich habe den Wert nun testweise auf 50 erhöht und nun sieht der Mast schon deutlich runder aus.

Bild

Ich habe hier bisher immer mit einem Wert von 20 gearbeitet.
Welche Werte sind denn hier sinnvoll?
Zuletzt geändert von Christian Marx am 22.08.2016 22:12:56, insgesamt 1-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Übersicht über im Bau befindliche Objekte

#5 Beitrag von Johannes »

Wenn du in Blender das Smooth Shading aktiviert hast, sollten die Vertices nebeneinanderliegender Flaechen schon beim Export mit identischen Normalenvektoren versehen worden sein, daher sollte schon ein sehr kleiner Grenzwinkel genuegen (z.B. die standardmaessigen 4 Grad). Jemand mit mehr .x-Import-Erfahrung moege mich bedarfsweise korrigieren.

Die Meshoptimierung sollte man wirklich nur mit den vorgegebenen kleinen Werten nutzen. Der Versuch, auf Smooth Shading in Blender zu verzichten und den Effekt durch Rumtricksen mit dem Grenzwinkel zu erreichen, ist spaetestens bei texturierten Objekten zum Scheitern verurteilt. (Betrifft dich in dem Fall nicht, da du ja das Blender-Shading nutzt.)

Im Uebrigen empfehle ich ganz uneigennuetzig den direkten Export nach LS3 ohne Zwischenweg ueber .x :)
Zuletzt geändert von Johannes am 22.08.2016 22:22:01, insgesamt 1-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Übersicht über im Bau befindliche Objekte

#6 Beitrag von Johannes »

Christian Marx hat geschrieben:wenn in Blender die Faces auf Smooth gesetzt sind, sollten sie auch bei niedrigem Grenzwinkel im 3D-Editor Smooth ankommen?
Ja, genau. Sogar, wenn du die Meshoptimierung abschaltest, sollten sie korrekt ankommen.

Benutzeravatar
Christian Gründler
Beiträge: 2209
Registriert: 04.10.2003 13:27:48
Wohnort: Brühl (Baden)

Re: Übersicht über im Bau befindliche Objekte

#7 Beitrag von Christian Gründler »

Johannes hat geschrieben:Sogar, wenn du die Meshoptimierung abschaltest, sollten sie korrekt ankommen.
So ist es.

Christian Marx
Beiträge: 542
Registriert: 12.03.2016 21:37:29
Wohnort: Forchheim

Re: Übersicht über im Bau befindliche Objekte

#8 Beitrag von Christian Marx »

Bei mir ist es leider nicht so. Hat jemand eine Idee mit welchen Prüfschritten ich den Fehler eingrenzen kann?

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Übersicht über im Bau befindliche Objekte

#9 Beitrag von Johannes »

Konvertiere das Ganze mal mit dem LS3-Exporter. Wenn es damit immer noch falsch aussieht, liegt das Problem vermutlich an der Blender-Datei, ansonsten beim Export.

Christian Marx
Beiträge: 542
Registriert: 12.03.2016 21:37:29
Wohnort: Forchheim

Re: Übersicht über im Bau befindliche Objekte

#10 Beitrag von Christian Marx »

Ich habe als Test einen untexturieren 10 flächigen Zylinder in das .x Format exportiert. Dieser wurde Smooth in den 3D-Editor importiert. Also scheint der Export prinzipiell zu funktionieren.
Trotzdem gibt es mit meiner Lampe scheinbar ein Problem.

Mit dem ls3 Export Plugin funktioniert es. Allerdings landen hierbei alle Objekte in einem Mesh-Subset. Muss ich da noch etwas einstellen? Die Lampe besteht aus 2 Objekten.
Welche Werte sind bei dieser Vorgehensweise für die Meshoptimierung sinnvoll? Momentan sind folgende Werte vorbelegt:

Max. Abstand 0.001
Max. UV-Abstand 0.02
Max Winkel Normalen 0.17

Beim Export über das .x Format und das anschließende Importieren in den 3D-Editor wurde die Textur gleich in das DDS Format konvertiert. Wie gehe ich hier am besten vor?
Zuletzt geändert von Christian Marx am 23.08.2016 22:21:11, insgesamt 1-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Übersicht über im Bau befindliche Objekte

#11 Beitrag von Johannes »

Christian Marx hat geschrieben:Ich habe als Text einen untexturieren 10 flächigen Zylinder in das .x Format exportiert. Dieser wurde Smooth in den 3D-Editor importiert. Also scheint der Export prinzipiell zu funktionieren.
Trotzdem gibt es mit meiner Lampe scheinbar ein Problem.
Gut, was ist an deiner Lampe denn anders als am Zylinder? Irgendwelche Modifier? Sonstige spezielle Einstellungen? Das Shading wurde ganz normal mit "Shade Smooth"/"Shade Flat" im Edit-Mode gesetzt?
Christian Marx hat geschrieben:Mit dem ls3 Export Plugin funktioniert es. Allerdings landen hierbei alle Objekte in einem Mesh-Subset. Muss ich da noch etwas einstellen? Die Lampe besteht aus 2 Objekten.
Gibt es einen speziellen Grund, warum hier zwei Mesh-Subsets noetig sind? Der LS3-Exporter nutzt standardmaessig so wenige Subsets wie moeglich, weil das performancefreundlicher ist.
Christian Marx hat geschrieben:Welche Werte sind bei dieser Vorgehensweise für die Meshoptimierung sinnvoll? Momentan sind folgende Werte vorbelegt:
Die Standardwerte sind voellig sinnvoll und ausreichend. Im Normalfall sollte man daran nie etwas aendern muessen.
Christian Marx hat geschrieben:Beim Export über das .x Format und das anschließende Importieren in den 3D-Editor wurde die Textur gleich in das DDS Format konvertiert. Wie gehe ich hier am besten vor?
Der LS3-Exporter kann das derzeit leider nicht automatisch, da Blender und damit auch der Exporter kein DDS-Format schreiben kann. Ersatzweise kann aber die Zusi-Dateiverwaltung Dateien nach DDS konvertieren (unter "Dateioperationen"), man muss die DDS-Datei dann auch in Blender als Texturdatei eintragen.
Zuletzt geändert von Johannes am 23.08.2016 22:28:41, insgesamt 1-mal geändert.

Christian Marx
Beiträge: 542
Registriert: 12.03.2016 21:37:29
Wohnort: Forchheim

Re: Übersicht über im Bau befindliche Objekte

#12 Beitrag von Christian Marx »

Johannes hat geschrieben:Gut, was ist an deiner Lampe denn anders als am Zylinder? Irgendwelche Modifier? Sonstige spezielle Einstellungen? Das Shading wurde ganz normal mit "Shade Smooth"/"Shade Flat" im Edit-Mode gesetzt?
Ja. Außerdem gab es noch einen Bevel Modifier, dieser wurde aber applied.
Johannes hat geschrieben:Gibt es einen speziellen Grund, warum hier zwei Mesh-Subsets noetig sind? Der LS3-Exporter nutzt standardmaessig so wenige Subsets wie moeglich, weil das performancefreundlicher ist.
Das zweite Subset ist der Teil der Lampe der leuchten soll. Er bekommt statt der Textur eine Nachtfarbe.

Wenn es hilft kann ich die Blender-Datei auch mal irgendwo hochladen und zur Verfügung stellen.

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Übersicht über im Bau befindliche Objekte

#13 Beitrag von Johannes »

Christian Marx hat geschrieben:Das zweite Subset ist der Teil der Lampe der leuchten soll. Er bekommt statt der Textur eine Nachtfarbe.
Wenn man mit dem LS3-Exporter arbeitet, wuerde man ein zweites Material fuer die Nachtbeleuchtung anlegen (ohne Textur, dafuer mit Nachtfarbe -- das Plugin ruestet die passenden Eingabefelder in den Materialeinstellungen nach) und das den entsprechenden Faces zuweisen (im Edit-Mode "Assign" druecken weist den selektierten Faces das Material zu).
Christian Marx hat geschrieben:Wenn es hilft kann ich die Blender-Datei auch mal irgendwo hochladen und zur Verfügung stellen.
Waere ganz sinnvoll, denn ich kann gerade nicht erkennen, was hier schief laeuft.

Christian Marx
Beiträge: 542
Registriert: 12.03.2016 21:37:29
Wohnort: Forchheim

Re: Übersicht über im Bau befindliche Objekte

#14 Beitrag von Christian Marx »

Du hast Post.

Benutzeravatar
Christian Gründler
Beiträge: 2209
Registriert: 04.10.2003 13:27:48
Wohnort: Brühl (Baden)

Re: Übersicht über im Bau befindliche Objekte

#15 Beitrag von Christian Gründler »

Um das Thema "Normalenvektoren bei runden Objekten" mal etwas systematisch zu vertiefen:

Hier sieht man drei Masten, Durchmesser 20 cm, Höhe 4 m:

Bild

Annäherung als 12-Eck, 8-Eck und 6-Eck; unterer Deckel gelöscht (weil überflüssig), oberer Deckel gesplitted. Je nach Blickwinkel und Beleuchtung ist der Unterschied minimal oder überhaupt nicht zu erkennen.

Im Edit-Mode mit Anzeige der Normalen in den Vertices:

Bild

Wichtig für den runden Eindruck ist also weniger die Anzahl der Faces als die korrekte Ausrichtung der Normalenvektoren. Diese sollte man sich in Blender immer anzeigen lassen und beim Bau schon kontrollieren! ("Knöpfe" für die Anzeige der Normalen rot umrandet; der zweite ist für die Anzeige der Face-Normalen und für uns unineressant.)

Je nach Durchmesser und Entfernung eines runden Objekts können u.U. auch vier oder sogar nur drei Faces für den Umfang reichen. Wirklich auffällig ist der "Betrug" nur, wenn ich den Zylinder im Querschnitt sehe, was aus der Lokführerperspektive aber eher selten der Fall sein wird.

M.f.G. Christian
Zuletzt geändert von Christian Gründler am 24.08.2016 13:09:42, insgesamt 3-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Übersicht über im Bau befindliche Objekte

#16 Beitrag von Johannes »

Die blauen Vertex-Normalen sagen allerdings nichts ueber das Shading aus. Die sehen genauso aus, wenn die Faces als "Shade Flat" markiert sind. Nur werden in diesem Fall dann die Vertexnormalen beim Export ignoriert und stattdessen die (cyanfarbenen) Face-Normalen genommen.

Anstatt den oberen Deckel zu splitten (Taste Y), kann man auch nichtdestruktiv arbeiten, indem man die Edges als "sharp" markiert und dann auf das Objekt den "Edge Split"-Modifier anwendet:

Bild
Zuletzt geändert von Johannes am 24.08.2016 13:07:48, insgesamt 2-mal geändert.

Benutzeravatar
Christian Gründler
Beiträge: 2209
Registriert: 04.10.2003 13:27:48
Wohnort: Brühl (Baden)

Re: Übersicht über im Bau befindliche Objekte

#17 Beitrag von Christian Gründler »

Johannes hat geschrieben:Die blauen Vertex-Normalen sagen allerdings nichts ueber das Shading aus. Die sehen genauso aus, wenn die Faces als "Shade Flat" markiert sind. Nur werden in diesem Fall dann die Vertexnormalen beim Export ignoriert und stattdessen die (cyanfarbenen) Face-Normalen genommen.
Ich vermute, wir meinen das gleiche: damit ein runder Eindruck entsteht, müssen aneinander angrenzende Flächen in den Eckpunkten den gleichen Normalenvektor haben und "Shade smooth" muss für diese Flächen aktiviert sein.
Anstatt den oberen Deckel zu splitten (Taste Y), kann man auch nichtdestruktiv arbeiten, indem man die Edges als "sharp" markiert und dann auf das Objekt den "Edge Split"-Modifier anwendet
:wow Ehrlich gesagt, habe ich in Blender noch nie irgendwelche Operationen auf Objekte ausgeführt, weil ich von Anfang bis Ende innerhalb des gleichen (einzigen) Objekts arbeite. Tatsächlich scheint es sogar zu genügen, nur dem Deckel ein "Shade flat" zu verpassen ?( .

Ich habe halt Blender gelernt, als das richtige Zusammenfassen oder Splitten der Vertexnormalen entscheidend für den optischen Eindruck war. Dieser Baustil funktioniert heute auch noch, scheint aber nicht mehr erforderlich zu sein, weil die Exporter "Shade flat" und "Shade smooth" auswerten und die Vertexnormalen bei Bedarf korrigieren.

Benutzeravatar
Johannes
Beiträge: 3197
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Übersicht über im Bau befindliche Objekte

#18 Beitrag von Johannes »

Christian Gründler hat geschrieben:Ich vermute, wir meinen das gleiche: damit ein runder Eindruck entsteht, müssen aneinander angrenzende Flächen in den Eckpunkten den gleichen Normalenvektor haben und "Shade smooth" muss für diese Flächen aktiviert sein.
Genau. Das mit dem "gleichen Normalenvektor" bekommt man am besten hin, indem die beiden Flaechen einen Vertex gemeinsam nutzen.
Christian Gründler hat geschrieben:Tatsächlich scheint es sogar zu genügen, nur dem Deckel ein "Shade flat" zu verpassen ?( .
Das duerfte nicht genuegen, weil die Normalen der Seitenflaechen dann nicht in der XY-Ebene liegen, sondern schraeg nach oben zeigen. "Shade Flat" ist ausserdem keine wirkliche eigene Einstellung, sondern einfach das Gegenteil von "Shade Smooth" -- wenn man nicht explizit Smooth Shading aktiviert hat, bleibt es flach.

Langsam, aber sicher, koennte ein Admin das Thema mal abtrennen, glaube ich :)

Benutzeravatar
Christian Gründler
Beiträge: 2209
Registriert: 04.10.2003 13:27:48
Wohnort: Brühl (Baden)

Re: Übersicht über im Bau befindliche Objekte

#19 Beitrag von Christian Gründler »

Johannes hat geschrieben:
Christian Gründler hat geschrieben:Tatsächlich scheint es sogar zu genügen, nur dem Deckel ein "Shade flat" zu verpassen ?( .
Das duerfte nicht genuegen, weil die Normalen der Seitenflaechen dann nicht in der XY-Ebene liegen, sondern schraeg nach oben zeigen.
Ja hast recht.
Zuletzt geändert von Christian Gründler am 24.08.2016 15:01:45, insgesamt 1-mal geändert.

Benutzeravatar
Christian Gründler
Beiträge: 2209
Registriert: 04.10.2003 13:27:48
Wohnort: Brühl (Baden)

Re: Normalenvektoren, Export aus Blender

#20 Beitrag von Christian Gründler »

Nachdem das ja ziemlich in technische Details gegangen ist (und ich wieder einiges gelernt habe), möchte ich das Wesentliche noch mal zusammenfassen und dazu auf dieses Bild zurückkommen:

Bild

Man erkennt, dass der Mast zwölfeckig ist (wenn ich recht gezählt habe). Dazu ist zweierlei zu sagen:

a) Ein Sechseck genügt hier als Näherung.

b) Auch ein Sechseck kann in Zusi rund erscheinen.

Ich habe mich dann bemüht, den technischen Hintergrund dafür zu erläutern, weil solche unerwünschten Ecken von falschen Normalenvektoren herkommen können; hier unwahrscheinlich, weil die Darstellung in Blender ja richtig ist.

Bei der Gelegenheit möchte ich noch einmal betonen, was weiter oben schon gesagt worden ist:

c) Wenn ein Objekt in Blender korrekt gebaut ist, kommt es in Zusi auch ohne Meshoptimierung korrekt an. (Ich selber verwende sie nie.) Das gilt für den .ls3-Export ebenso wie für den .x-Export. Wenn man an den Parametern der Mesh-Optimierung schrauben muss, ist vorher schon etwas schief gelaufen.

M.f.G. Christian
Zuletzt geändert von Christian Gründler am 24.08.2016 18:17:52, insgesamt 4-mal geändert.

Antworten