Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

07.09.2004, 09:53

Planetenmodell mit Terrain

Hy!

ich bin auf die idee gekommen ein Terrain auf eine Kugel "aufzukleben" :-D und jetz weiß ich nur nicht so recht wie ich das machen soll (vom theoretischen her) ...

ich danke schon jetzt für eure Antworten

mfg Triac

2

07.09.2004, 12:26

lol


Die einfachste Methode ist sicherlich mit Parallax-Mapping ;) Wenn du aber noch drauf rumfahren willst, solltes du einfach mal eine Height-Map auf die Kugel kleben und anhand der Texel (nicht Pixel) die höhe ausrechnen. Dabei ist die Höhe des Texel's == dem Radius ;)
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

3

07.09.2004, 16:15

Triac, schreib mal etwas genauer was Du willst. Willst Du landen können (schwer!)? Willst Du nur Texturen oder auch Erhebungen?

Eine Textur, d.h. ein "flaches 2D Bild" auf eine Kugel zu mappen ist nicht verzerrungsfrei möglich, wie die Kartographen schon seit Jahrhunderten wissen. Daher auch die ganzen Projektionsarten, Zylindrisch, Lambert etc etc.

Wenn Du Terrain Tiles auf ne Kugel packen willst, kannst Du evtl bei FlightGear nachfragen, die machen das schon seit langem.

Diese Lösung ist sicher nicht perfekt, aber IMHO machbar:
- Für die Textur nimmst Du Zylinderprojektion und texturierst alles mit einer Textur. Die Pole sind halt verzerrt, darauf muss der Texturen "maler" aufpassen. Vielleicht findest Du ja sogar eine fertige Textur irgendwo.
- Die Erhebungen machst Du wie Dragonmaster geschrieben hat und gehst nicht ganz bis zu den Polen. Die Pole haben immer einen Standardradius. Dies ist nicht schlimm, da Du ja alle anderen Radii beeinflussen kannst. Wenn also z.B. an dem Nordpol eine Senke sein soll, machst Du alle anderen Punkte, vor allem auf der Nordhalbkugel, etwas höher als Standard.
"Games are algorithmic entertainment."

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

4

07.09.2004, 17:07

Es kommt drauf an was Du genau machen willst,

Willst du mit nem Raumschiff von Planet zu Planet fliegen, wird es sehr komplex.

Anonymous

unregistriert

5

07.09.2004, 18:51

also ... ich möchte schon Erhebungen haben .... mich darauf (rundherum! - wie eben auf einem Planeten (Kugel)) bewegen können ...
und das noch dazu mehrmals (z.B.: unser Sonnensystem nachbasteln und von Planet zu Planet fliegen) - und wenn möglich das ganze so riesig gestalten, dass ich noch darauf ohne! Zwischensequenzen landen kann...

mfg Triac

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

6

07.09.2004, 19:02

Also erstmal solltest du von Detailebene zu Detailebene gehen, wenn schon:

Nehmen wir X Detailebenen:

Ebene 1:
Riesiege Sphere (ganz normale) für die Planeten (Hügel sieht man ja bekanntlich nicht aus einem Raumschiff, auch wenn man im tiefen Orbit ist)
Ebene 2:
Ab hier sollte man das Terrain in einen Octree laden, dabei das Terrain effektiv einsetzen (evtl. 8 Hightmaps für einen Planeten benutzen, also Oben Links, Oben Rechts, Oben Hinten, Oben Voren, Unten Links usw.) und dann in jede diese Hightmap soll dann 1/8 Planet repräsentieren und einen eigenen Octree bekommen. Daraus machste dann ne Kugel.

Die Hightmaps sollten auch diverse Lod-Stufen haben z.B. 4 Stück (Kein ROAM sondern CLOD).

Ebene 3:
Hochdetailiertes Terrain darstellen.

Also in der Theorie gehts so :)

Anonymous

unregistriert

7

07.09.2004, 19:11

interessant ... ich muss mich endlich einmal durchs Buch ackern
das war eben eine Frage die mich wirklich interessiert hat ...

danke für die Antworten natürlich wärs mir nur recht wenn ich einmal ein Beispiel seh aber egal ...
wie schon gesagt - zuerst durchs Buch ackern und dann mal schaun

thanX

mfg Triac

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

8

07.09.2004, 19:17

Ich weiss dass sich etliche Profis daran die Zähne ausgebissen haben.
Es gibt ganz wenige Spiele/Sims, die das können.

Wenns halbwegs aussehen soll und wenn Du keine 3 Stunden echtzeit für den Flug in den Orbit brauchen willst, dann ist ein Problem, die Texturen schnell genug von Platte zu bekommen. Du solltest mal ausrechnen, wieviel Bandbreite Du da brauchst!

Ehrlich gesagt ist IMHO der beste Rat, den man Dir geben kann wenn Du nicht schon etwas ähnliches gemacht hast, such Dir ein anderes Problem.
"Games are algorithmic entertainment."

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

9

07.09.2004, 19:39

ich würd erstmal sagen versuch erstmal 10 Spheren zu machen und die rotieren zu lassen um eine Sphere welche die Sonne darstellen soll und die so groß sind, das du schon ne lange zeit brauchst zum reisen :D

10

07.09.2004, 21:12

Bei diesem Problem könnten Lade Thread's sehr hilfreich sein.

Nehmen wir mal an du machst besagte Ebenen. Schon bei drei Ebenen bei 8 Planeten (oder waren es 9 ??? ) ist der Speicher schnell voll. Du must die Daten also vorausberechnen und Temporär auf der Platte speichern.

Wenn du dann dabei bist von einer Ebene zur anderen zu wechseln, setzt du deinen Lade Thread in bewegung und läst die nächste Ebene aus der Temporären Datei laden. Dieser Ladevorgang wird dann in einem separaten Thread (dem Lade Thread) bewerckstelligt. Dann stöhrt dieser Ladevorgang auch nicht ;)

Denn wenn du das alles in einem Single Thread System machst, wirst du beim wechsel eine Ladepause habe. Und in anbetracht dessen, das die neue CPU Generationen mit Hyper Threading oder Dual-Core ausgestattet sind, wirst du von dem Ladevorgang überhaupt nichts mitbekommen.

Wenn der Ladevorgang dann abgeschlossen ist, kann dann eben schnell die Ebene gewechselt werden. Das entfernen der alten Ebene kann dann ebenfalls in einem anderen Thread bewerckstelligt werden. Das muss dann aber nicht sein. Da das recht schnell gehen sollte.


Na dann. Herzlich willkommen in der Multi Threading Welt ;D
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige