Jump to content

Erweiterung am Höhenmodus


wopitir

Empfohlene Beiträge

Hallo Neo,

nachdem ich nun auch in der Lage bin auf meiner Anlage Hügel und Berge zu erstellen, möchte ich eine Verbesserung am Höhenmodus vorschlagen.
Immer wieder ärgere ich mich darüber, dass ein angelegter, farbiger Pixel-Auswahlsatz nicht editierbar ist. So ist es mit einfachen Mitteln kaum möglich ein Gelände nach meinen Vorstellungen anzulegen und zu formen, auch wenn ich alle Möglichkeiten im Eigenschaftsfeld ausnutze. Vielleicht kann mein Vorschlag etwas abhelfen.

Vorschlag:
Bei aktivierter Bodenplatte in den Eigenschaften neben dem Button „Höhenmodus“ einen Button „+“ und einen Button „-“ hinzufügen. Beim Wechsel in den „Höhenmodus bleiben beide vorerst inaktiv.

Denkansatz:
Ist nur der Button „Höhenmodus“ aktiviert, bleiben alle Funktionen so wie sie derzeit sind.

  • Nur bei aktivem „Höhenmodus“ kann zusätzlich der Button „+“ oder Button „-“ aktiviert werden (beide gleichzeitig darf nicht möglich sein). Deaktivieren des Buttons „+“ oder „-“ durch erneutes Anklicken.
  • Bei aktiviertem Button „+“ oder „-“ bleibt ein vorher angelegter, farbiger Pixel-Auswahlsatz erhalten, wenn die linke Maustaste erneut gerückt wird.
  • Bei aktiviertem Button „+“ oder „-“ werden die Werte im Eingabefeld für Verlauf ignoriert (entspricht Wert=0).
  • Bei aktiviertem Button „+“ oder „-“ können die Eigenschaften für Pinselgröße und -form verändert werden.
  • Bei aktiviertem Button „+“ und gedrückter linker Maustaste werden angewählte oder "überfahrene" farbige Pixel (je nach Einstellung der Pinselgröße um eine Farbstufe erhöht (vom Farbspektrum rot nach grün). Bei wiederholtem „überfahren“der Pixel kann so von rot nach grün manipuliert werden, je nachdem wie oft ich anklicke oder darüber fahre. Der maximale Wert grün kann nicht weiter erhöht werden. War vorher kein Pixel-Auswahlsatz angelegt, werden inaktive Pixel (grau) entsprechend der eingestellten Pixelgröße einheitlich beginnend mit rot aktiviert. Weitere Manipulation wie oben beschrieben.
  • Bei aktiviertem Button „-“ werden die gleichen Funktionen wie beim Button „+“ definiert, nur das angeklickte oder überfahrene Pixel um eine Farbstufe vermindert werden. Farbspektrum wechselt von grün nach rot, bzw. bis grau (inaktiv).
  • „Hochziehen bzw. Absenken“ der farbigen Pixel wie bisher mit gedrückter Shift-Taste und linker, gedrückter Maustaste — auch bei aktiviertem Button „+“ oder „-“. Manipulation nach „Hochziehen“ sollte weiter möglich bleiben.
  • Erst wenn beide Buttons „+“ und „-“ deaktiviert sind, wird der Auswahlsatz nach Klick mit der linken Maustaste gelöscht bzw. ein neuer angelegt (Funktion wie bisher).

Vorteile:

  • Die Gestaltung des Geländes kann einfacher an die Vorstellungen des Nutzers angepasst werden.
  • Besserer homogener Geländeverlauf steuerbar.
  • Nicht erwünschte Pixel können gelöscht werden.
  • Bereits angelegtes Gelände kann einfacher nachbearbeitet werden. Es muss nicht Pixel für Pixel verschoben werden.

Ich weiß nicht ob dieser Denkansatz realisiert werden kann. Jedoch könnte diese Erweiterung so manchen unschönen Wortausdruck verhindern.

Gruß
Wolfgang

Link zu diesem Kommentar
Auf anderen Seiten teilen

Super Idee,

ich würde sie aber eventuell insoweit abändern, dass bei gedrücktem "+" lediglich weitere Auswahlsätze dem vorhergehenden hinzugefügt werden können bzw. bei "-" eben abgezogen. Dabei kann in allen Fällen die bisherriegen Funktionen (auch der Verlauf) so bleiben wie er derzeit ist. Wenn man dabei gleichzeitig alle Eingabefelder aktiv läßt, kann man sich nicht gewollte überschneidene Verläufe mit einem kleineren Radius und ohne Verlauf ebenfalls hinzufügen bzw. abziehen.

Ich schätze das würde für Neo weniger Programmieraufwand bedeuten und bietet die gleichen Möglichkeiten.

 

Gruß

MarkoP

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo MarkoP,

das ist ja gerade das Problem. Wenn ich einen farbigen Auswahlsatz definiert habe und an einer Stelle zu viele grüne Pixel sind, so ergibt das beim Hochziehen eine unschöne Form. Könnte man das Farbspektrum vor dem Hochziehen oder oder auch danach noch manipulieren, würde die Bergform in sanfteren Abstufungen verlaufen.  Dabei muss aber der Wert vom eingestelltem Verlauf ignoriert werden. Auch zuviel markierte Pixel sollten aus dem Auswahlsatz entfernt werden können.

Gruß
Wolfgang

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich das jetzt richtig verstehe, geht es dir um die Vermeidung eines Plateau's.

Das wirst du bei jedem Auswahlsatz der nicht exakt rund ist nicht vermeiden können, da ein Verlauf ja gleichmäßig ist. Wenn auf einer Seite also mehr Pixel von Rand zur Mitte vorhanden sind als an einer anderen Seite, ist es unumgänglich. Auch sollte selbstverständlich berücksichtigt werden welcher programmiertechnische Aufwand für Neo darauf resultieren würde und diesen ggf. zu minimieren.

 

Ich könnte mir daher z.B. auch vorstellen einen bestehenden Auswahlsatz mit den von die beschreibenen "+" und "-" Buttons vergößern oder verkleinern zu können.

Dabei wäre es dann denkbar, den Verlauf komplett zu ignorieren und erst nach Festlegung des kompletten Auswahlbereichs anzugeben und dieses in jede Richtung des Auswahlbereichs dann gleichmäßig anzuwenden. Also bei 100% in der Mitte beginnend bis zum äußersten Rand, bei 50% eben auf halber Strecke zwieschen Mitte und Rand beginnend bis zum äußeren Rand etc.. Damit ließe sich zumindestens eine gleichmäßigere Verlaufsdarstellung erschaffen.

 

Gruß

MarkoP

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Wolfgang,

ich danke dafür gibt es keine automatische Lösung.

So wie ich es erkenne wird der Verlauf immer gleichmäßig an allen Seiten berechnet und nicht für jede Richtung (Gradzahl) von Mitte zum Rand einzeln. (Falls das nicht korrekt ist sollte Neo es richtigstellen).

Du kannst also einzig das sich ergebende Plateau in einem zweiten Schritt neu auswählen und dann weiter anheben. Dann hast du zwar nicht genau den gleichen Verlauf wie weiter unten aber ist ja auch in der Realität selten, dass eine Steigung sich im gesamten Verlauf nicht verändert.

 

Gruß

MarkoP

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Wolfgang und Marko,

ich war eigentlich nie wirklich zufrieden mit der aktuellen Lösung bezüglich der Höhenanpassung. Das war mehr ein Kompromiss da viel Code aus dem Texturbereich wiederverwendet werden konnte. Ich denke dass viele Leute ein Problem damit haben erst bestimmte Rasterpunkte zu selektieren und dann erst in der Höhe anzupassen. Andere Programm gehen hier einen völlig anderen Weg, und zwar wird hier direkt beim Drücken der Maustaste das Gelände manipuliert. Je länger ich die Taste drücke, desto weiter wächst oder schrumpft das Gelände.

Was wäre also mit folgendem Ansatz:

  • Keine Selektion von Rasterpunkten mehr, sondern direkte Manipulation des Geländes durch Drücken und Halten der linken Maustaste
  • Visualisierung des Einflussbereiches durch einen grafischen "Cursor" auf der Platte
  • Zwei Modi: Aktuelle Geländehöhe erhöhen oder verringern
  • Limitierung der Auswirkungen auf einen minimalen und maximalen Bereich, um Plateaus zu ermöglichen

Ich denke die Mehrzahl der Nutzer wollen "einfach nur Berge". Für präzise Höhenangaben könnte man womöglich den Selektionsmodus auch als Zusatz beibehalten, dann mit den von Wolfgang angesprochen Additions- und Subtraktionswerkzeugen, aber ohne Verlauf. Der Selektionsmodus würde dann nur noch verwendet werden, um einzelne Rasterpunkte gezielt zu korrigieren.

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Neo,

Wenn ich es richtig verstehe, wird quasi in Echtzeit ein Bereich markiert und sobald man die Maustaste festhält durch hoch- bzw. runterschieben der Maus erhöht oder vertieft.

Das hätte zur Folge, dass man nur vorgegebene Formen als Einflussbereich editieren kann (z.B. Kreis, Quadrat etc.). Eine Bergkette mit einem "Ausbruch" in einer 3. Achse wäre demnach nur mit unzähligen einzelnen Aktionen realisierbar. Bitte korrigier mich falls mein Gedankengang nicht korrekt ist.

Wäre es dann noch möglich eine präzise Höhe per Tastatur einzugeben? Muss dann bei gedrückte Maustaste die Höhe eingetippt werden? Wie willst du verhindern, dass nach der Eingabe sich eine Mausbewegung noch auf den Einflussbereich auswirkt (so schnell kann man ja nicht gleichzeitig Enter drücken und die Maustaste loslassen)?

 

Gruß
MarkoP

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Neo,

Deinen Ansatz finde ich sehr gut.
Das Gelände an einer Stelle anzuheben, solange die Maustaste gedrückt wird, ist Klasse!
Die Geländehöhe sollte auch über die Verweildauer an der entsprechenden Stelle bei gedrückter Maustaste steuerbar sein (vielleicht die Hebegeschwindigkeit vorher über einen Schieberegler einstellbar machen?). Bewege ich den grafischen Cursor mit gedrückter Maustaste, wird einfach ein breiterer Berg in der Form der Cursorbewegung generiert. Fahre ich öfter über die gleiche Stelle, wird der Berg an dieser Stelle höher. Super! Wenn die Form und Größe des grafischen Cursors noch verändert werden kann (so wie beim derzeitigen Modus), glaube ich schöne Berge einfach formen zu können.
Auch die andern Punkte finde ich gut, das mit Erhöhen und Verringer zu trennen ist sinnvoll. Auch sollten einzelne Rasterpunkte gezielt manipuliert werden können um unschöne, scharkantige Einschnitte, die durch "Terrain anpassen" entstehen, korrigieren zu können. Plateaus werden häufig benötigt und sollten auch machbar sein, so wie in deinem Vorschlag angedacht.
Ich hoffe meine Vorstellungen decken sich mit deinen, freue mich schon auf die neue Überarbeitung und verbleibe mit einem Gruß

Wolfgang

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

egal, mit welchen "Varianten" die Berge erzeugt werden, ich habe bisher häufig die Erfahrung gemacht, dass man nach dem Manipulieren irgendwelche Kanten und Stufen hat, die man durch Korrekturen einfach nicht mehr heraus bekommt. Und da dann jeden einzelnen Rasterpunkt separat zu behandeln, kann eine sehr mühsame Arbeit sein, die möglicherweise trotzdem nicht "zufriedenstellend" ist. Ich plädiere daher sehr stark für eine zusätzliche "Glättungsfunktion", bei der zu Bestimmung der Höhen der einzelnen Rasterpunkte die Höhen der Nachbarpunkte zu einem gewissen Grad mit berücksichtigt werden (möglicherweise kann man dann ja den Berücksichtigungsgrad sogar einstellen).

Viele Grüße
BahnLand
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...