Schnelleinstieg (für Fortgeschrittene): Unterschied zwischen den Versionen
HW1 (Diskussion | Beiträge) |
HW1 (Diskussion | Beiträge) |
||
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | + | <br> | |
− | |||
− | |||
− | |||
+ | Der Schnelleinstieg mit der sich anschließenden praktischen Übung richtet sich in erster Linie an Anwender, die mit den grundlegenden Techniken wie dem Zeichnen von Drahtgittern und dem Auftragen von Texturen (dem sogenannten UV-Mapping) vertraut sind. Auch wenn der Aufbau der Menüs, der Dialogfenster und die Werkzeuge zum Zeichnen des Drahtgitters weitgehend selbsterklärend sind, gibt es doch Besonderheiten und konzeptionelle Anforderungen, die in der folgenden Übersicht aufgelistet und erläutert werden. | ||
== Unterschiede und Neuerungen im Vergleich zu früheren Programmversionen vom Home-Nostruktor == | == Unterschiede und Neuerungen im Vergleich zu früheren Programmversionen vom Home-Nostruktor == | ||
− | + | Da wir versuchen, dieses Wiki aktuell zu halten mit den Funktionen der jeweilig aktuellsten Version, finden Sie hier Neuerungen der einzelnen Versionen. Wenn Sie also (noch) nicht die aktuelle Version besitzen, können Sie hier überprüfen, ob die im Wiki beschriebene Funktion in Ihrer Version bereits enthalten ist. | |
+ | <br> | ||
+ | === Neues im Home-Nostruktor 15 === | ||
+ | * Beschriftungsfunktion für Modelle | ||
+ | * Neue Lichtfunktionen wie Veränderung der Helligkeit beim fertigen Modell | ||
+ | * Neue Systemachsen: PingPong, _DriveDir (Fahrtrichtungsposition) und MoorRPM (Drehzahlmesser, Antriebsableitung) | ||
+ | <br> | ||
== Projekte im ''"Projects"''-Ordner == | == Projekte im ''"Projects"''-Ordner == | ||
− | + | <br> | |
− | + | Um eine bessere Übersicht und ein möglichst einfaches Verfahren bei der Datensicherung zu gewährleisten, werden 3D-Modelle mitsamt ihren Konstruktionsdateien sowie allen weiteren für den Betrieb notwendigen Komponenten als Projekte im Projects-Ordner gespeichert. Die Konstruktionsdateien entsprechen jeder einzelnen Ansicht, ähnlich wie Layer in anderen Programmen. Die einzelnen Projektordner können auf externe Laufwerke oder USB-Sticks kopiert und auch von dort geöffnet werden. | |
− | Um eine bessere Übersicht und ein möglichst einfaches Verfahren bei der Datensicherung zu gewährleisten, werden 3D-Modelle mitsamt ihren Konstruktionsdateien sowie allen weiteren | + | <br><br> |
− | + | <font size="5">[[#top|▲]]</font> | |
− | |||
== Speicherung der Fenster in der zuletzt eingestellten Größe und Ansicht == | == Speicherung der Fenster in der zuletzt eingestellten Größe und Ansicht == | ||
− | + | <br> | |
− | + | Bei der Speicherung von Projekten wird jedes einzelne Fenster in der jeweiligen Lage, Größe und Ansicht separat mitgespeichert. Wird ein gesichertes Projekt erneut geladen, öffnen sich die einzelnen Fenster automatisch in der zuletzt genutzten Ansicht. Dies ist vor allem bei Projekten mit sehr vielen Konstruktionsdateien zeitsparend und hilfreich, da Sie die Arbeitsoberfläche so wiederfinden, wie Sie diese bei der letzten Sitzung verlassen haben. Die Fenster von neu angelegten und noch nicht gespeicherten Projekten zeigen sich in einer Standardansicht, die Sie nach Belieben verändern und anpassen können. | |
− | + | <br><br> | |
− | Bei der Speicherung von Projekten wird jedes einzelne Fenster in der jeweiligen Lage, Größe und Ansicht separat mitgespeichert. Wird ein gesichertes Projekt erneut geladen, öffnen sich die einzelnen Fenster automatisch in der zuletzt genutzten Ansicht. Dies ist vor allem bei Projekten mit sehr vielen Konstruktionsdateien zeitsparend und hilfreich, da Sie die Arbeitsoberfläche so wiederfinden wie Sie diese bei der letzten Sitzung verlassen haben. Die Fenster von neu angelegten und noch nicht gespeicherten Projekten zeigen sich in einer Standardansicht, die Sie nach Belieben verändern und anpassen können. | + | <font size="5">[[#top|▲]]</font> |
− | |||
− | |||
== Vertikale Ausrichtung in der Normalprojektion == | == Vertikale Ausrichtung in der Normalprojektion == | ||
− | + | <br> | |
− | + | Neu erzeugte KON-Dateien der [https://de.wikipedia.org/wiki/Normalprojektion Normalprojektion] erhalten automatisch eine Ausgangsdrehung um die X-Achse von 270°, was im Instanzen-Dialog der KON-Dateien zu beachten ist und dort geändert werden kann. | |
− | |||
− | |||
− | |||
− | |||
<center>[[Datei:lage_270_grad.jpg]]</center> | <center>[[Datei:lage_270_grad.jpg]]</center> | ||
− | + | Die gezeichneten Konstruktionen werden also senkrecht aufgerichtet, so dass Sie das Objekt in der 3D-Projektion in seiner (uns natürlich erscheinenden) Ausrichtung betrachten können. Neu angelegte Instanzen, die einer KON-Datei hinzugefügt werden, "erben" automatisch die Parameter der zuletzt aufgerufenen Instanz, d.h. die Position, die Drehung, die Skalierung und alle weiteren Einstellungen wie z.B. das Backface-[https://de.wikipedia.org/wiki/Culling Culling], die Ausleuchtung und das Z-Offset. | |
− | Die gezeichneten Konstruktionen werden also senkrecht aufgerichtet, so dass Sie das Objekt in der 3D-Projektion in seiner (uns natürlich erscheinenden) Ausrichtung betrachten können. Neu angelegte Instanzen, die einer KON-Datei hinzugefügt werden, "erben" automatisch die Parameter der zuletzt aufgerufenen Instanz, d.h. die Position, die Drehung, die Skalierung und alle weiteren Einstellungen wie z.B. das | + | <br><br> |
− | + | <font size="5">[[#top|▲]]</font> | |
== Zeichnen im Raster == | == Zeichnen im Raster == | ||
− | + | <br> | |
− | + | Alle [https://de.wikipedia.org/wiki/Vertex Vertices] und alle Außen- und Unterteilungslinien werden innerhalb der Kästchen des Rasters gezeichnet. | |
− | |||
− | |||
− | |||
− | |||
<center>[[Datei:vertex_im_raster.jpg]]</center> | <center>[[Datei:vertex_im_raster.jpg]]</center> | ||
− | + | Dies ist insofern logisch, als ein [https://de.wikipedia.org/wiki/Vertex Vertex] – ebenso wie ein Pixel – keine Ausdehnung besitzt und somit unteilbar ist. Dieser Überlegung folgend beschreibt ein Vertex einen ganz bestimmten Punkt und nicht einen Zwischenraum im Koordinatensystem. Ein Vertex liegt also nicht etwa zwischen dem 46. und 47. Punkt des Koordinatensystems, sondern fällt exakt auf einen der beiden Punkte. | |
− | Dies ist insofern logisch, als ein Vertex | + | <br><br> |
− | + | <font size="5">[[#top|▲]]</font> | |
== Zeichnen und Abspeichern in 1cm-Rastereinteilung == | == Zeichnen und Abspeichern in 1cm-Rastereinteilung == | ||
− | + | <br> | |
− | + | Das Zeichnen und vor allem das Abspeichern der Geometrie in den Konstruktionsdateien wird in 1 cm-Rastereinteilung abgetastet. Wenn eine feinere Teilung im Modell gewünscht wird, kann man ein mehrfaches der Einteilung verwenden und im Instanzen-Dialog um den entsprechenden Faktor wieder herunterskalieren (Beispiel: 10 Rasterpunkte auf der X-Achse sollen 1 cm darstellen, dann wird der Wert der X-Skalierung auf 0.1 gesetzt). | |
− | Das Zeichnen und vor allem das Abspeichern der Geometrie in den Konstruktionsdateien wird | + | <br><br> |
− | + | <font size="5">[[#top|▲]]</font> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
− | |||
− | < | ||
− | |||
− | |||
== Texturabbildung in den Formaten DDS, PNG und TGA == | == Texturabbildung in den Formaten DDS, PNG und TGA == | ||
− | + | <br> | |
− | + | Für das [https://de.wikipedia.org/wiki/UV-Koordinaten UV-Mapping] , d.h. die Texturabbildung der Modelle, werden im Home-Nostruktor die unkomprimierten Dateiformate DDS-, PNG- oder TGA angewendet. Diese Formate verfügen über einen integrierten [https://de.wikipedia.org/wiki/Alphakanal Alphakanal], der das Ausblenden der [https://de.wikipedia.org/wiki/Texel_(Bildsynthese) Texel] durch Alpha-Werte erheblich vereinfacht und die Anfertigung von Texturen beschleunigt. Die Aktualisierungsfunktion [F5] arbeitet in Echtzeit, so dass Sie das 3D-Modell im Home-Nostruktor und die dazugehörige Textur in Ihrem Grafikbearbeitungsprogramm simultan begutachten und editieren können. | |
− | Für das | + | <br><br> |
− | + | <font size="5">[[#top|▲]]</font> | |
− | == Texturierung für alle Vertices | + | == Texturierung für alle Vertices == |
− | + | <br> | |
− | + | Bedingt durch die konsequente Arbeitsweise der [https://de.wikipedia.org/wiki/Pixel-Shader Pixel-Shader] und die Notwendigkeit, eine möglichst hohe Rendering-Geschwindigkeit zu gewährleisten, müssen prinzipiell alle Vertices in den [https://de.wikipedia.org/wiki/Drahtgittermodell Drahtgittermodellen] texturiert sein und damit eine gültige Belegung mit einer Texturen-ID aufweisen. Bliebe in einem Modell nur ein einziger Vertex untexturiert, würde dies zur Bildung eines weiteren RGD, d.h. eines zusätzlichen Konstruktes innerhalb des Objekts, führen. Dies wiederum hätte zur Folge, dass das Rendern des Modells in der [https://de.wikipedia.org/wiki/Grafikpipeline Rendering-Pipeline] unterbrochen und ein neuer Befehlssatz – speziell für untexturierte Vertices – geladen werden müsste.<br> | |
− | + | Um eine solche Situation zu vermeiden, überwacht der Home-Nostruktor die Belegung aller Vertex-Listen beim Modellexport. Vertices, die keine gültige Textur-ID aufweisen, weil diese vergessen oder übersehen wurden, werden automatisch mit einer Art "Notfall"-Textur überzogen – einer kleinen weißen Textur, die auf die "nackten" Vertices aufgetragen wird, um den Renderingsprozess nicht zu unterbrechen. Auch wenn dieser "Notfalleinsatz" immer greift, sind Sie besser beraten, wenn Sie das Textur-Mapping konsequent und sorgfältig kontrollieren. | |
− | Bedingt durch die konsequente Arbeitsweise der | + | <br><br> |
− | + | <font size="5">[[#top|▲]]</font> | |
− | |||
== Systemtextur(en) == | == Systemtextur(en) == | ||
− | + | <br> | |
− | + | Beim Export eines Modells als *.3dm-Kapsel werden mehrere Einzel-Texturen zu einer großen Systemtextur verbunden. Das ist deshalb bedeutsam, weil die Anzahl der Texturen ein Multiplikator der Rendering-Pipeline ist und deshalb möglichst klein gehalten werden sollte. Mit Rücksicht auf den Rechenaufwand und die Adressierung ist eine einzige Textur für das gesamte Modell die optimale und allzeit anzustrebende Lösung.<br> | |
− | + | Um das Optimum einer solchen Systemtextur zu erreichen, darf sich eine Textur nicht mehr als 15 mal in den Dimensionen "u" und "v" wiederholen. Wird eine wiederholbare Textur öfter als 15 mal gekachelt, kann sie nicht in die sogenannte Systemtextur eingebunden, sondern muss ausgelagert, also "verbannt" werden, was den Renderingsprozess wiederum verlangsamt. Beim Aufbau von Modellen, die viele Wiederholungen des Texturmotivs erfordern, sollte die Kachelung gleich in der einen Haupttextur berücksichtigt und angewendet werden. Damit wird die Textur in ihren Dimensionen zwar größer, doch im Blick auf die Rendering-Geschwindigkeit ist es vorteilhafter, nicht mehrere, sondern eine einzige, wenn auch größere Textur zu verwenden. | |
− | Beim Export eines Modells als | + | <br><br> |
− | + | <font size="5">[[#top|▲]]</font> | |
− | + | == Smooth-Shading == | |
− | + | <br> | |
− | + | Der Home-Nostruktor interpoliert standardmäßig die Farbwerte der Vertices und wendet ausschließlich [https://en.wikipedia.org/wiki/Shading Smooth-Shading] an. Wenn Vertices unterschiedliche Farbwerte aufweisen (grundsätzlich wird ein einheitlicher Farbwert von R=200, G=200, B=200 empfohlen), müssen Sie das Drahtgitter, separiert nach den Farbwerten, auf mehrere KON-Dateien aufteilen, sodass jede KON-Datei nur eine separierte Farbe speichert. Eine homogene Farbe ist nur durch die Aufteilung der Konstruktion in mehrere Zeichnungen zu erzeugen, da bei gleichfarbigen Vertices kein sichtbarer Farbverlauf entstehen kann: Aus der Interpolation "Rot" zu "Rot" kann nichts anderes als "Rot" entstehen. | |
− | + | <br><br> | |
− | + | <font size="5">[[#top|▲]]</font> | |
− | |||
== Bestimmung der Materialfarbe aus der Farbe der Texel == | == Bestimmung der Materialfarbe aus der Farbe der Texel == | ||
− | + | <br> | |
− | + | Für eine korrekte und bei allen Modellen identische Ausleuchtung des Drahtgitters ist es notwendig, dass möglichst alle Vertices den gleichen Farbwert aufweisen, und zwar den <b>RGB-Wert <font color="red">200</font>, <font color="green">200</font>, <font color="blue">200</font></b>. Dieser relativ helle Grauton, der keine Buntheit, sondern nur einen Farbreiz vermittelt, eignet sich hervorragend für die Modulation durch das ambiente oder gerichtete Licht, da er abgedunkelt und vor allem auch aufgehellt werden kann.<br> | |
− | + | Würde ein Vertex den RGB-Farbwert 255, 255, 255, d.h. Weiß aufweisen, könnte er durch das Licht nicht mehr aufgehellt werden, da reines Weiß nicht noch weißer werden kann. Sinngemäß trifft dieser Sachverhalt auch auf andere Vertex-Farben zu, beispielsweise auf die Farbe Blau. Geht man davon aus, dass diese Farbe aus den Werten: R=0, G=0, B=255 besteht, kann das Licht lediglich den roten und grünen Kanal aufhellen, da der Blau-Kanal seinen Endwert von 255 bereits erreicht hat. Damit würde sich die Ausleuchtung verändern, was auch zwangsläufig eine veränderte Farbwirkung zur Folge hätte. | |
− | + | <br><br> | |
− | + | <font size="5">[[#top|▲]]</font> | |
− | |||
− | |||
− | |||
− | |||
== Verzicht auf Untermodelle mit unbeweglichen Achsen == | == Verzicht auf Untermodelle mit unbeweglichen Achsen == | ||
+ | <br> | ||
+ | [[Datei: signal_gelb.png|50px]] | ||
− | + | Immobilien, Gleisobjekte und Landschaftselemente mit Achsen, die keinen Bewegungsbereich aufweisen oder deren Achsen nur einmal (beim Einsetzen) aktiviert werden, sollen begründete Ausnahme sein. Der Grund dafür liegt im erheblich erhöhten Renderingsaufwand in EEP selbst. | |
− | |||
− | |||
− | |||
<center>[[Datei:22achsen.jpg]]</center> | <center>[[Datei:22achsen.jpg]]</center> | ||
− | + | Die Anzahl der Achsenmodelle sind ein Multiplikator der Rendering-Pipeline; die Auswirkungen auf die Rechengeschwindigkeit können erheblich sein. Ein Modell muss die Pipeline so viele Male durchqueren, wie es Achsenmodelle besitzt – ganz gleich, ob diese sich bewegen oder nicht. Hat ein Bahnhof z.B. zweiundzwanzig Untermodelle auf unbeweglichen Achsen aufzuweisen, läuft das Modell mindestens zweiundzwanzig Mal durch die Rendering-Pipeline, bis es diese fertig gerendert verlassen kann. Ein derartiges Konstruktionsprinzip lässt der Home-Nostruktor nicht kommentarlos zu. Versucht man, ein so konstruiertes Modell zu exportieren, erscheint beim Export eine entsprechende Performance-Warnung. | |
− | |||
− | |||
<center>[[Datei:export_knuffingen.jpg]]</center> | <center>[[Datei:export_knuffingen.jpg]]</center> | ||
− | + | Statt komplexe Modelle unter Verwendung von unbeweglichen Achsen aufzubauen, lässt sich – nicht weniger komfortabel – die Import-Funktion von Objekten in andere Objekte (z.B. das Basis-Objekt) nutzen. | |
− | Statt komplexe Modelle unter Verwendung von unbeweglichen Achsen aufzubauen, lässt sich | + | <br><br> |
− | + | <font size="5">[[#top|▲]]</font> | |
== Bestimmung der Achsenorientierung durch Eingaben == | == Bestimmung der Achsenorientierung durch Eingaben == | ||
− | + | <br> | |
− | + | Lage und Orientierung der Achsen im Dialog der Achsenschachtelung werden über die Schaltfläche "Berechne Rotation" bestimmt. Damit bleibt Ihnen eine ständige Konfrontation mit der Eulerschen Winkel-Berechnung erspart. | |
− | |||
− | |||
− | |||
<center>[[Datei:berechne_rotation.jpg]]</center> | <center>[[Datei:berechne_rotation.jpg]]</center> | ||
− | + | Mit diesem Befehl öffnen Sie einen Dialog, in dem Sie den Rotationsgrad (z.B. 22,5°) für eine oder alle Transformationsachsen eingeben können. Damit wird das Winkelmaß automatisch in das Bogenmaß umgerechnet und dieses Ergebnis im jeweiligen Eingabefeld für die Orientierung übernommen. | |
− | Mit diesem Befehl öffnen Sie einen Dialog, in dem Sie den | + | <br><br> |
− | + | <font size="5">[[#top|▲]]</font> | |
− | == | + | == Licht-System == |
− | + | <br> | |
− | + | Das Lichtsystem passt die Intensität des Lichtes dynamisch der Ausleuchtung der Anlage an. So können z.B. Signalbilder – unabhängig von der Tages- und Nachtzeit – auch von weitem abgelesen werden. Durch den Einsatz von [https://de.wikipedia.org/wiki/Lens_Flare Flares], d.h. Linsenlichtreflexen, lässt sich der erzielte Effekt noch steigern.<br> | |
− | + | Bei Rollmaterialien gibt es noch eine weitere Funktion: Die Lichter können so gesteuert werden, dass sie an der gekoppelten Seite von Rollmaterialien automatisch erlöschen, wie dies bei realen Zügen normalerweise der Fall ist. | |
− | + | <br><br> | |
− | + | <font size="5">[[#top|▲]]</font> | |
− | + | == Systemachsen == | |
− | + | <br> | |
− | + | Um bestimmte Funktionsweisen von 3D-Modellen in EEP zu ermöglichen, wurden verschiedene Achsennamen vergeben, die exklusiv dafür reserviert sind und ausschließlich zum Aufruf der betreffenden Funktion benutzt werden dürfen. Da die Funktion und deren Ansteuerung durch das ausführende Programm – Home-Nostruktor bzw. EEP – bereitgestellt wird, werden die reservierten Achsennamen auch "Systemachsen" genannt. Es gibt eine ganze Reihe reservierter Achsennamen wie z.B.: _Nonstop, _1, _2, _3, _4, _5, _Antrieb, _DriveDirF, _DriveDirR, _TimerS, _TimerM, _TimerH, _Velocity. | |
− | + | <br><br> | |
− | + | <font size="5">[[#top|▲]]</font> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | ||
− | |||
− | |||
− | |||
− | Um bestimmte Funktionsweisen von 3D-Modellen in EEP zu ermöglichen, wurden verschiedene Achsennamen vergeben, die exklusiv dafür reserviert sind und ausschließlich | ||
− | |||
== Schreibweise und Aufteilung von Parametern in INI-Einträgen == | == Schreibweise und Aufteilung von Parametern in INI-Einträgen == | ||
+ | <br> | ||
+ | Es gibt eine strikte Trennung zwischen der internen, für die Funktionalität des Modells zuständigen System-INI-Datei und der externen, ausgelagerten Modell-INI-Datei. Die ausgelagerte INI-Datei ist hauptsächlich für die Katalogisierung und Lokalisierung des Modells und die Benennung von Achsen zuständig. Sie ist auch nachträglich änderbar, weil sie mit dem gleichen Dateinamen im selben Ressourcen-Ordner abgespeichert wird wie die .3dm-Datei, in der die interne INI-Datei gekapselt ist. | ||
+ | <br><br> | ||
+ | <font size="5">[[#top|▲]]</font> | ||
+ | == Effekt-Technologien == | ||
+ | <br> | ||
+ | * Reflexion – vertreten durch Glanz und Spiegelung | ||
+ | * Linsenlichtreflexe – vertreten durch Flares | ||
+ | * Randglühen – vertreten durch den [https://de.wikipedia.org/wiki/Blooming Bloom-Effekt] | ||
+ | * Reliefzuordnung – vertreten durch das [https://de.wikipedia.org/wiki/Parallax_Mapping Parallax-Bumpmapping] | ||
+ | * Spekularität – vertreten durch Masken des specularen Lichts | ||
+ | <br> | ||
+ | Die damit verfügbaren Gestaltungsmöglichkeiten sind für das Erscheinungsbild des Modells, hier besonders für die Materialoberfläche, ebenso wichtig wie ein gelungenes Drahtgitter oder eine fotorealistische Textur. | ||
+ | <br><br> | ||
+ | <font size="5">[[#top|▲]]</font> | ||
+ | == Kurztutorium == | ||
+ | <br> | ||
+ | Im [[Kurztutorium Stadthaus|diesem Kurztutorium "Stadthaus"]] lernen Sie, wie Sie | ||
+ | * einzelne Konstruktionsinhalte und deren Instanzen zu Gruppen zusammenfassen,<br> | ||
+ | * Normalvektoren anzeigen und deren Ausrichtung beeinflussen,<br> | ||
+ | * eine Oberfläche mit spezifischen Materialeigenschaften ausstatten.<br> | ||
+ | <br> | ||
− | + | <br><br> | |
− | + | <font size="5">[[#top|▲]]</font> | |
− | + | == Navigation == | |
− | + | {| | |
− | + | !style="text-align:left;width:150px"| | |
− | + | [[HomeNos Wiki - deutsch -|↑ Inhaltsverzeichnis]] | |
− | + | !style="text-align:left;width:300px"| | |
− | + | [[Was ist der Home-Nostruktor?| ← 1.2 Was ist der Home-Nostruktor?]] | |
− | + | !style="text-align:left;width:300px"| | |
− | + | 1.3 Schnelleinstieg (für Fortgeschrittene) | |
− | + | |[[Konzepte: Projekt| 2.1 Was ist ein Projekt? → ]] | |
− | + | |} | |
− | |||
− | |||
− | :: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | :: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Aktuelle Version vom 5. Juni 2021, 20:14 Uhr
Der Schnelleinstieg mit der sich anschließenden praktischen Übung richtet sich in erster Linie an Anwender, die mit den grundlegenden Techniken wie dem Zeichnen von Drahtgittern und dem Auftragen von Texturen (dem sogenannten UV-Mapping) vertraut sind. Auch wenn der Aufbau der Menüs, der Dialogfenster und die Werkzeuge zum Zeichnen des Drahtgitters weitgehend selbsterklärend sind, gibt es doch Besonderheiten und konzeptionelle Anforderungen, die in der folgenden Übersicht aufgelistet und erläutert werden.
Inhaltsverzeichnis
- 1 Unterschiede und Neuerungen im Vergleich zu früheren Programmversionen vom Home-Nostruktor
- 2 Projekte im "Projects"-Ordner
- 3 Speicherung der Fenster in der zuletzt eingestellten Größe und Ansicht
- 4 Vertikale Ausrichtung in der Normalprojektion
- 5 Zeichnen im Raster
- 6 Zeichnen und Abspeichern in 1cm-Rastereinteilung
- 7 Texturabbildung in den Formaten DDS, PNG und TGA
- 8 Texturierung für alle Vertices
- 9 Systemtextur(en)
- 10 Smooth-Shading
- 11 Bestimmung der Materialfarbe aus der Farbe der Texel
- 12 Verzicht auf Untermodelle mit unbeweglichen Achsen
- 13 Bestimmung der Achsenorientierung durch Eingaben
- 14 Licht-System
- 15 Systemachsen
- 16 Schreibweise und Aufteilung von Parametern in INI-Einträgen
- 17 Effekt-Technologien
- 18 Kurztutorium
- 19 Navigation
Unterschiede und Neuerungen im Vergleich zu früheren Programmversionen vom Home-Nostruktor
Da wir versuchen, dieses Wiki aktuell zu halten mit den Funktionen der jeweilig aktuellsten Version, finden Sie hier Neuerungen der einzelnen Versionen. Wenn Sie also (noch) nicht die aktuelle Version besitzen, können Sie hier überprüfen, ob die im Wiki beschriebene Funktion in Ihrer Version bereits enthalten ist.
Neues im Home-Nostruktor 15
- Beschriftungsfunktion für Modelle
- Neue Lichtfunktionen wie Veränderung der Helligkeit beim fertigen Modell
- Neue Systemachsen: PingPong, _DriveDir (Fahrtrichtungsposition) und MoorRPM (Drehzahlmesser, Antriebsableitung)
Projekte im "Projects"-Ordner
Um eine bessere Übersicht und ein möglichst einfaches Verfahren bei der Datensicherung zu gewährleisten, werden 3D-Modelle mitsamt ihren Konstruktionsdateien sowie allen weiteren für den Betrieb notwendigen Komponenten als Projekte im Projects-Ordner gespeichert. Die Konstruktionsdateien entsprechen jeder einzelnen Ansicht, ähnlich wie Layer in anderen Programmen. Die einzelnen Projektordner können auf externe Laufwerke oder USB-Sticks kopiert und auch von dort geöffnet werden.
▲
Speicherung der Fenster in der zuletzt eingestellten Größe und Ansicht
Bei der Speicherung von Projekten wird jedes einzelne Fenster in der jeweiligen Lage, Größe und Ansicht separat mitgespeichert. Wird ein gesichertes Projekt erneut geladen, öffnen sich die einzelnen Fenster automatisch in der zuletzt genutzten Ansicht. Dies ist vor allem bei Projekten mit sehr vielen Konstruktionsdateien zeitsparend und hilfreich, da Sie die Arbeitsoberfläche so wiederfinden, wie Sie diese bei der letzten Sitzung verlassen haben. Die Fenster von neu angelegten und noch nicht gespeicherten Projekten zeigen sich in einer Standardansicht, die Sie nach Belieben verändern und anpassen können.
▲
Vertikale Ausrichtung in der Normalprojektion
Neu erzeugte KON-Dateien der Normalprojektion erhalten automatisch eine Ausgangsdrehung um die X-Achse von 270°, was im Instanzen-Dialog der KON-Dateien zu beachten ist und dort geändert werden kann.
Die gezeichneten Konstruktionen werden also senkrecht aufgerichtet, so dass Sie das Objekt in der 3D-Projektion in seiner (uns natürlich erscheinenden) Ausrichtung betrachten können. Neu angelegte Instanzen, die einer KON-Datei hinzugefügt werden, "erben" automatisch die Parameter der zuletzt aufgerufenen Instanz, d.h. die Position, die Drehung, die Skalierung und alle weiteren Einstellungen wie z.B. das Backface-Culling, die Ausleuchtung und das Z-Offset.
▲
Zeichnen im Raster
Alle Vertices und alle Außen- und Unterteilungslinien werden innerhalb der Kästchen des Rasters gezeichnet.
Dies ist insofern logisch, als ein Vertex – ebenso wie ein Pixel – keine Ausdehnung besitzt und somit unteilbar ist. Dieser Überlegung folgend beschreibt ein Vertex einen ganz bestimmten Punkt und nicht einen Zwischenraum im Koordinatensystem. Ein Vertex liegt also nicht etwa zwischen dem 46. und 47. Punkt des Koordinatensystems, sondern fällt exakt auf einen der beiden Punkte.
▲
Zeichnen und Abspeichern in 1cm-Rastereinteilung
Das Zeichnen und vor allem das Abspeichern der Geometrie in den Konstruktionsdateien wird in 1 cm-Rastereinteilung abgetastet. Wenn eine feinere Teilung im Modell gewünscht wird, kann man ein mehrfaches der Einteilung verwenden und im Instanzen-Dialog um den entsprechenden Faktor wieder herunterskalieren (Beispiel: 10 Rasterpunkte auf der X-Achse sollen 1 cm darstellen, dann wird der Wert der X-Skalierung auf 0.1 gesetzt).
▲
Texturabbildung in den Formaten DDS, PNG und TGA
Für das UV-Mapping , d.h. die Texturabbildung der Modelle, werden im Home-Nostruktor die unkomprimierten Dateiformate DDS-, PNG- oder TGA angewendet. Diese Formate verfügen über einen integrierten Alphakanal, der das Ausblenden der Texel durch Alpha-Werte erheblich vereinfacht und die Anfertigung von Texturen beschleunigt. Die Aktualisierungsfunktion [F5] arbeitet in Echtzeit, so dass Sie das 3D-Modell im Home-Nostruktor und die dazugehörige Textur in Ihrem Grafikbearbeitungsprogramm simultan begutachten und editieren können.
▲
Texturierung für alle Vertices
Bedingt durch die konsequente Arbeitsweise der Pixel-Shader und die Notwendigkeit, eine möglichst hohe Rendering-Geschwindigkeit zu gewährleisten, müssen prinzipiell alle Vertices in den Drahtgittermodellen texturiert sein und damit eine gültige Belegung mit einer Texturen-ID aufweisen. Bliebe in einem Modell nur ein einziger Vertex untexturiert, würde dies zur Bildung eines weiteren RGD, d.h. eines zusätzlichen Konstruktes innerhalb des Objekts, führen. Dies wiederum hätte zur Folge, dass das Rendern des Modells in der Rendering-Pipeline unterbrochen und ein neuer Befehlssatz – speziell für untexturierte Vertices – geladen werden müsste.
Um eine solche Situation zu vermeiden, überwacht der Home-Nostruktor die Belegung aller Vertex-Listen beim Modellexport. Vertices, die keine gültige Textur-ID aufweisen, weil diese vergessen oder übersehen wurden, werden automatisch mit einer Art "Notfall"-Textur überzogen – einer kleinen weißen Textur, die auf die "nackten" Vertices aufgetragen wird, um den Renderingsprozess nicht zu unterbrechen. Auch wenn dieser "Notfalleinsatz" immer greift, sind Sie besser beraten, wenn Sie das Textur-Mapping konsequent und sorgfältig kontrollieren.
▲
Systemtextur(en)
Beim Export eines Modells als *.3dm-Kapsel werden mehrere Einzel-Texturen zu einer großen Systemtextur verbunden. Das ist deshalb bedeutsam, weil die Anzahl der Texturen ein Multiplikator der Rendering-Pipeline ist und deshalb möglichst klein gehalten werden sollte. Mit Rücksicht auf den Rechenaufwand und die Adressierung ist eine einzige Textur für das gesamte Modell die optimale und allzeit anzustrebende Lösung.
Um das Optimum einer solchen Systemtextur zu erreichen, darf sich eine Textur nicht mehr als 15 mal in den Dimensionen "u" und "v" wiederholen. Wird eine wiederholbare Textur öfter als 15 mal gekachelt, kann sie nicht in die sogenannte Systemtextur eingebunden, sondern muss ausgelagert, also "verbannt" werden, was den Renderingsprozess wiederum verlangsamt. Beim Aufbau von Modellen, die viele Wiederholungen des Texturmotivs erfordern, sollte die Kachelung gleich in der einen Haupttextur berücksichtigt und angewendet werden. Damit wird die Textur in ihren Dimensionen zwar größer, doch im Blick auf die Rendering-Geschwindigkeit ist es vorteilhafter, nicht mehrere, sondern eine einzige, wenn auch größere Textur zu verwenden.
▲
Smooth-Shading
Der Home-Nostruktor interpoliert standardmäßig die Farbwerte der Vertices und wendet ausschließlich Smooth-Shading an. Wenn Vertices unterschiedliche Farbwerte aufweisen (grundsätzlich wird ein einheitlicher Farbwert von R=200, G=200, B=200 empfohlen), müssen Sie das Drahtgitter, separiert nach den Farbwerten, auf mehrere KON-Dateien aufteilen, sodass jede KON-Datei nur eine separierte Farbe speichert. Eine homogene Farbe ist nur durch die Aufteilung der Konstruktion in mehrere Zeichnungen zu erzeugen, da bei gleichfarbigen Vertices kein sichtbarer Farbverlauf entstehen kann: Aus der Interpolation "Rot" zu "Rot" kann nichts anderes als "Rot" entstehen.
▲
Bestimmung der Materialfarbe aus der Farbe der Texel
Für eine korrekte und bei allen Modellen identische Ausleuchtung des Drahtgitters ist es notwendig, dass möglichst alle Vertices den gleichen Farbwert aufweisen, und zwar den RGB-Wert 200, 200, 200. Dieser relativ helle Grauton, der keine Buntheit, sondern nur einen Farbreiz vermittelt, eignet sich hervorragend für die Modulation durch das ambiente oder gerichtete Licht, da er abgedunkelt und vor allem auch aufgehellt werden kann.
Würde ein Vertex den RGB-Farbwert 255, 255, 255, d.h. Weiß aufweisen, könnte er durch das Licht nicht mehr aufgehellt werden, da reines Weiß nicht noch weißer werden kann. Sinngemäß trifft dieser Sachverhalt auch auf andere Vertex-Farben zu, beispielsweise auf die Farbe Blau. Geht man davon aus, dass diese Farbe aus den Werten: R=0, G=0, B=255 besteht, kann das Licht lediglich den roten und grünen Kanal aufhellen, da der Blau-Kanal seinen Endwert von 255 bereits erreicht hat. Damit würde sich die Ausleuchtung verändern, was auch zwangsläufig eine veränderte Farbwirkung zur Folge hätte.
▲
Verzicht auf Untermodelle mit unbeweglichen Achsen
Immobilien, Gleisobjekte und Landschaftselemente mit Achsen, die keinen Bewegungsbereich aufweisen oder deren Achsen nur einmal (beim Einsetzen) aktiviert werden, sollen begründete Ausnahme sein. Der Grund dafür liegt im erheblich erhöhten Renderingsaufwand in EEP selbst.
Die Anzahl der Achsenmodelle sind ein Multiplikator der Rendering-Pipeline; die Auswirkungen auf die Rechengeschwindigkeit können erheblich sein. Ein Modell muss die Pipeline so viele Male durchqueren, wie es Achsenmodelle besitzt – ganz gleich, ob diese sich bewegen oder nicht. Hat ein Bahnhof z.B. zweiundzwanzig Untermodelle auf unbeweglichen Achsen aufzuweisen, läuft das Modell mindestens zweiundzwanzig Mal durch die Rendering-Pipeline, bis es diese fertig gerendert verlassen kann. Ein derartiges Konstruktionsprinzip lässt der Home-Nostruktor nicht kommentarlos zu. Versucht man, ein so konstruiertes Modell zu exportieren, erscheint beim Export eine entsprechende Performance-Warnung.
Statt komplexe Modelle unter Verwendung von unbeweglichen Achsen aufzubauen, lässt sich – nicht weniger komfortabel – die Import-Funktion von Objekten in andere Objekte (z.B. das Basis-Objekt) nutzen.
▲
Bestimmung der Achsenorientierung durch Eingaben
Lage und Orientierung der Achsen im Dialog der Achsenschachtelung werden über die Schaltfläche "Berechne Rotation" bestimmt. Damit bleibt Ihnen eine ständige Konfrontation mit der Eulerschen Winkel-Berechnung erspart.
Mit diesem Befehl öffnen Sie einen Dialog, in dem Sie den Rotationsgrad (z.B. 22,5°) für eine oder alle Transformationsachsen eingeben können. Damit wird das Winkelmaß automatisch in das Bogenmaß umgerechnet und dieses Ergebnis im jeweiligen Eingabefeld für die Orientierung übernommen.
▲
Licht-System
Das Lichtsystem passt die Intensität des Lichtes dynamisch der Ausleuchtung der Anlage an. So können z.B. Signalbilder – unabhängig von der Tages- und Nachtzeit – auch von weitem abgelesen werden. Durch den Einsatz von Flares, d.h. Linsenlichtreflexen, lässt sich der erzielte Effekt noch steigern.
Bei Rollmaterialien gibt es noch eine weitere Funktion: Die Lichter können so gesteuert werden, dass sie an der gekoppelten Seite von Rollmaterialien automatisch erlöschen, wie dies bei realen Zügen normalerweise der Fall ist.
▲
Systemachsen
Um bestimmte Funktionsweisen von 3D-Modellen in EEP zu ermöglichen, wurden verschiedene Achsennamen vergeben, die exklusiv dafür reserviert sind und ausschließlich zum Aufruf der betreffenden Funktion benutzt werden dürfen. Da die Funktion und deren Ansteuerung durch das ausführende Programm – Home-Nostruktor bzw. EEP – bereitgestellt wird, werden die reservierten Achsennamen auch "Systemachsen" genannt. Es gibt eine ganze Reihe reservierter Achsennamen wie z.B.: _Nonstop, _1, _2, _3, _4, _5, _Antrieb, _DriveDirF, _DriveDirR, _TimerS, _TimerM, _TimerH, _Velocity.
▲
Schreibweise und Aufteilung von Parametern in INI-Einträgen
Es gibt eine strikte Trennung zwischen der internen, für die Funktionalität des Modells zuständigen System-INI-Datei und der externen, ausgelagerten Modell-INI-Datei. Die ausgelagerte INI-Datei ist hauptsächlich für die Katalogisierung und Lokalisierung des Modells und die Benennung von Achsen zuständig. Sie ist auch nachträglich änderbar, weil sie mit dem gleichen Dateinamen im selben Ressourcen-Ordner abgespeichert wird wie die .3dm-Datei, in der die interne INI-Datei gekapselt ist.
▲
Effekt-Technologien
- Reflexion – vertreten durch Glanz und Spiegelung
- Linsenlichtreflexe – vertreten durch Flares
- Randglühen – vertreten durch den Bloom-Effekt
- Reliefzuordnung – vertreten durch das Parallax-Bumpmapping
- Spekularität – vertreten durch Masken des specularen Lichts
Die damit verfügbaren Gestaltungsmöglichkeiten sind für das Erscheinungsbild des Modells, hier besonders für die Materialoberfläche, ebenso wichtig wie ein gelungenes Drahtgitter oder eine fotorealistische Textur.
▲
Kurztutorium
Im diesem Kurztutorium "Stadthaus" lernen Sie, wie Sie
- einzelne Konstruktionsinhalte und deren Instanzen zu Gruppen zusammenfassen,
- Normalvektoren anzeigen und deren Ausrichtung beeinflussen,
- eine Oberfläche mit spezifischen Materialeigenschaften ausstatten.
1.3 Schnelleinstieg (für Fortgeschrittene) |
2.1 Was ist ein Projekt? → |
---|