Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 08:12

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Einen "Weg" auf uneben untergrund..
BeitragVerfasst: Mi Jul 09, 2008 02:02 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich bin zerbreche mir seit gestern den kopf darüber wie ich einen simplen weg auf einer graslandschaft erstellen kann.. aber ich beschreib mal meine rahmenbedingungen:

Ich habe ein Spielfeld mit der größe x*y (ob Quadratisch, Karos, Hexagons etc ist noch nicht festgelegt - mehr dazu später).
Man kann nun jedes feld der map in der höhe verändern um berge und täler zu schaffen.

Jetzt möchte ich eine möglichkeit einen steinweg auf dieser landschaft zu zeichnen, ABER.. nicht einfach vonwegen "Feld XY ist Steinweg" sondern komplett variabel das man alle möglichen formen mit dem weg hinbekommt.

Also angefangen von einfach schnurgeraden wegen über enge und weite kurven bis zu einfach kreis runden stein-flächen á la marktplatz..

Mein problem an der geschichte ist, wie mach ich das? :P
Jedem feld der map einfach zuweisen "Graß" oder "Stein" geht nicht, denn dann könnte ich bei quadratischen feldern nur 90° kurven machen, bzw bei Hexagonalen 45° kurven..

Eine andere möglichkeit wäre den Steinweg als eigene ebene darüber zu legen in frei wählbarer form, bei ebenem boden noch sehr simpel.. wenn es an schrägen etc gemacht werden soll schon sehr viel schwieriger..

Möglichkeit 3 wäre eine Textur zu painten in realtime, also man pinselt mit seinem weg werkzeug eine Alphamaske. Das würde zwar funktionieren und jede erdenkliche art des weges zulassen, aber:

1) Es würde bedeuten das ich viele texturen habe und die ganzen texturen für die weg-masken nicht mehrfach verwenden kann
2) Ich möchte am rand der wege einen abschluss haben, also wenn der weg an sich aus lauter steinen ist, soll der rand ein schönen abschluss haben, bzw einen übergang zum restlichen daneben.. das wäre extrem schwer zu implementieren auf diese art und weise :/


Letzte möglichkeit wäre vorgegebene weg-elemente zu benutzen.. also es gibt eien haufen vorgefertigter kurven etc die dann einfach platziert werden können, aber hier wäre der nachteil das man wieder stark eingeschränlt wäre... dann gäbe es z.B. einen geraden weg in 10 verschiedenen ausrichtungen, aber was wenn ich was dazwischen haben will?


Ihr seht, das ganze ist leider echt kompliziert... hat irgendwer eine idee wie man das gescheit angehen könnte?

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 09, 2008 07:52 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 16, 2008 20:26
Beiträge: 158
Wohnort: Berlin
Programmiersprache: c++,c#,java,ruby,php
Also mich erinnert das ein bisschen an ein Bildbearbeitungsprogramm.. dort kann man sich Pfade vorzeichnen und so jegliche Form erschaffen und wenn man fertig ist und bestätigt, dann rendert das Programm mit den ausgewählten Eigenschaften das 2d/3d Model.
Also über eine Art Zwischenschritt Konturen aufbringen und dann ausrechnen was was ist und in einem geeigneten Format speichern vll.
Weiß zwar nicht ob das so Performant ist, aber ich find es leichter, als das in Realtime zu machen.
Ich kenne auch kaum Spiele/Programme in denen man so was machen kann, obwohls natürlich nett wäre.
Ist nur ne Idee :O
mfg revolte

_________________
System: Phenom XII X4 955 3,21Ghz , GTX 560 TI, 4GB-Ram, Windows 7 64x


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 09, 2008 08:26 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 06, 2005 18:34
Beiträge: 362
Wohnort: Hamburg
Hi ...

also mir ist spontan auch die Lösung mit einer Alpha Maske eingefallen, die du dynamisch erstellen kannst.
Vorausgesetzt du hast deine Heightmap (oder was auch immer) schon, kannst du doch versuchen irgendwie abzuschätzen, was für ein Terrain an der Stelle ist, an der du gerade deinen Weg "zeichnen" möchtest. Dann kannst du z.B. Einschränkungen machen wie: Ebene: alles geht, Bergauf: nur gerader Weg nach oben/unten etc. Schwieriger wirds natürlich bei Wegen um einen Berg u.ä.

Dazu könntest du dir immer einen gewissen Bereich der Felder ansehen und versuchen die gesammte Beschaffenheit dieses Bereiches über das Mittel der einzelnen Normalenvektoren der Felder abzuschätzen.

Gruß
Shai

_________________
Der Mensch hat neben dem Trieb der Fortpflanzung und dem zu essen und zu trinken zwei Leidenschaften: Krach zu machen und nicht zuzuhören. (Kurt Tucholsky)
Schwabbeldiwapp, hier kommt die Grütze. (Der Quästor)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 09, 2008 12:22 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich versteh nicht ganz das Problem. Du kannst du z.B. per Multitexturing (oder Blending) eine Strassenebene draufzeichnen. Wenn du genügend verschiedene Formen hast, dann sollte der Weg auch sehr "organisch" wirken.

Das Problem ist eher die "Kante" im Weg die an den Rändern der Flächen entsteht.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 09, 2008 17:29 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 31, 2007 18:32
Beiträge: 150
Programmiersprache: Pascal
Wenn du Einschränkungen verhindern willst dann gieb dem Anwender doch die Möglichkeit sebsterstelte "Weg Masken" hinzuzufügen


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]